From b8cf34c691623e4ec329053cbbf68522a855882d Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Thu, 5 Dec 2019 15:12:59 +0900 Subject: Imported Upstream version 1.67.0 --- doc/html/BOOST_CB_ASSER_idp14364704.html | 50 - doc/html/BOOST_CB_ASSER_idp33239264.html | 50 + doc/html/BOOST_CB_IS_CONVERTIBLE.html | 6 +- doc/html/BOOST_DLL_ALIAS.html | 2 +- doc/html/BOOST_DLL_ALIAS_SECTIONED.html | 2 +- doc/html/BOOST_DLL_AUTO_ALIAS.html | 2 +- doc/html/BOOST_DLL_FORC_idp27662112.html | 54 - doc/html/BOOST_DLL_FORC_idp27664016.html | 54 - doc/html/BOOST_DLL_FORC_idp36961376.html | 54 + doc/html/BOOST_DLL_FORC_idp36963232.html | 54 + doc/html/BOOST_DLL_SECTION.html | 2 +- doc/html/BOOST_DLL_SELECTANY.html | 8 +- doc/html/BOOST_INTRUSIV_idp55099840.html | 73 - doc/html/BOOST_INTRUSIV_idp55106064.html | 73 - doc/html/BOOST_INTRUSIV_idp55880560.html | 73 + doc/html/BOOST_INTRUSIV_idp55886784.html | 73 + doc/html/BOOST_IS_MPI_DATATYPE.html | 10 +- doc/html/BOOST_MPI_BCA_1_3_26_6_6_7.html | 56 - doc/html/BOOST_MPI_CAL_1_3_26_6_6_6.html | 56 - doc/html/BOOST_MPI_CHECK_RESULT.html | 10 +- doc/html/BOOST_MPI_DECL.html | 10 +- doc/html/BOOST_MPI_HAS_1_3_26_6_6_4.html | 56 - doc/html/BOOST_MPI_HAS_1_3_26_6_6_5.html | 56 - doc/html/BOOST_MPI_HOMOGENEOUS.html | 12 +- doc/html/BOOST_MPI__1_3_26_5_14_7_4.html | 56 + doc/html/BOOST_MPI__1_3_26_5_14_7_5.html | 56 + doc/html/BOOST_MPI__1_3_26_5_14_7_6.html | 56 + doc/html/BOOST_MPI__1_3_26_5_14_7_7.html | 56 + doc/html/BOOST_SER_1_3_12_15_5_16_1.html | 53 - doc/html/BOOST_SER_1_3_13_15_5_16_1.html | 53 + doc/html/BOOST_TYPE_ERASURE_FREE.html | 25 +- doc/html/BOOST_TYPE_ERASURE_MEMBER.html | 43 +- doc/html/MPICH_IGNORE_CXX_SEEK.html | 10 +- doc/html/accumulators.html | 2 +- doc/html/align.html | 2 +- doc/html/asio_HTML.manifest | 30 + doc/html/atomic.html | 4 +- doc/html/atomic/interface.html | 708 ++- doc/html/atomic/limitations.html | 77 +- doc/html/atomic/porting.html | 2 +- doc/html/atomic/thread_coordination.html | 2 +- doc/html/atomic/usage_examples.html | 2 +- doc/html/bbv2/overview.html | 26 +- doc/html/bbv2/reference.html | 144 +- doc/html/boost/CV/constrained_value.html | 46 +- doc/html/boost/CV/simple_exception_policy.html | 24 +- .../simple_exception_policy/exception_wrapper.html | 18 +- doc/html/boost/bad_function_call.html | 8 +- doc/html/boost/circular_buffe_idp24565232.html | 2828 ------------ doc/html/boost/circular_buffe_idp43443760.html | 2828 ++++++++++++ doc/html/boost/circular_buffer.html | 568 +-- doc/html/boost/container/adaptive_pool.html | 127 +- doc/html/boost/container/adaptive_pool/rebind.html | 11 +- doc/html/boost/container/allocator.html | 117 +- doc/html/boost/container/allocator/rebind.html | 11 +- doc/html/boost/container/allocator_arg.html | 5 +- doc/html/boost/container/allocator_arg_t.html | 5 +- doc/html/boost/container/allocator_traits.html | 61 +- .../allocator_traits/portable_rebind_alloc.html | 11 +- doc/html/boost/container/basic_string.html | 663 +-- .../container/constructible__idp60397280.html | 67 + .../container/constructible__idp60406672.html | 69 + .../container/constructible__idp67492240.html | 66 - .../container/constructible__idp67501632.html | 68 - doc/html/boost/container/default_init.html | 5 +- doc/html/boost/container/default_init_t.html | 11 +- doc/html/boost/container/deque.html | 345 +- doc/html/boost/container/erased_type.html | 5 +- doc/html/boost/container/flat_map.html | 449 +- doc/html/boost/container/flat_multimap.html | 401 +- doc/html/boost/container/flat_multiset.html | 389 +- doc/html/boost/container/flat_set.html | 389 +- doc/html/boost/container/growth_factor.html | 72 + doc/html/boost/container/growth_factor_100.html | 57 + doc/html/boost/container/growth_factor_50.html | 57 + doc/html/boost/container/growth_factor_60.html | 57 + .../boost/container/insert_return_type_base.html | 23 +- doc/html/boost/container/list.html | 368 +- doc/html/boost/container/map.html | 425 +- doc/html/boost/container/multimap.html | 373 +- doc/html/boost/container/multiset.html | 353 +- doc/html/boost/container/new_allocator.html | 67 +- doc/html/boost/container/new_allocator/rebind.html | 11 +- .../container/new_allocator__idp55809792.html | 118 + .../new_allocator__idp55809792/rebind.html | 60 + .../container/new_allocator__idp62944752.html | 117 - .../new_allocator__idp62944752/rebind.html | 59 - doc/html/boost/container/node_allocator.html | 131 +- .../boost/container/node_allocator/rebind.html | 11 +- doc/html/boost/container/node_handle.html | 93 +- .../boost/container/operator___idp59193360.html | 94 + .../boost/container/operator___idp59203376.html | 94 + .../boost/container/operator___idp59233376.html | 94 + .../boost/container/operator___idp59243360.html | 94 + .../boost/container/operator___idp66288880.html | 93 - .../boost/container/operator___idp66298896.html | 93 - .../boost/container/operator___idp66328896.html | 93 - .../boost/container/operator___idp66338880.html | 93 - doc/html/boost/container/operator_idp59213408.html | 94 + doc/html/boost/container/operator_idp59223392.html | 94 + doc/html/boost/container/operator_idp66308928.html | 93 - doc/html/boost/container/operator_idp66318912.html | 93 - doc/html/boost/container/optimize_size.html | 5 +- doc/html/boost/container/ordered_range.html | 11 +- doc/html/boost/container/ordered_range_t.html | 5 +- doc/html/boost/container/ordered_unique_range.html | 5 +- .../boost/container/ordered_unique_range_t.html | 5 +- doc/html/boost/container/pmr/basic_string_of.html | 5 +- doc/html/boost/container/pmr/deque_of.html | 5 +- doc/html/boost/container/pmr/flat_map_of.html | 8 +- doc/html/boost/container/pmr/flat_multimap_of.html | 8 +- doc/html/boost/container/pmr/flat_multiset_of.html | 8 +- doc/html/boost/container/pmr/flat_set_of.html | 8 +- .../boost/container/pmr/get_default_resource.html | 5 +- doc/html/boost/container/pmr/list_of.html | 5 +- doc/html/boost/container/pmr/map_of.html | 7 +- doc/html/boost/container/pmr/memory_resource.html | 61 +- .../container/pmr/monotonic_buffer_resource.html | 81 +- doc/html/boost/container/pmr/multimap_of.html | 13 +- doc/html/boost/container/pmr/multiset_of.html | 7 +- .../boost/container/pmr/new_delete_resource.html | 11 +- .../boost/container/pmr/null_memory_resource.html | 5 +- doc/html/boost/container/pmr/operator__.html | 5 +- .../boost/container/pmr/polymorphic_allocator.html | 57 +- doc/html/boost/container/pmr/pool_options.html | 11 +- doc/html/boost/container/pmr/resource_adaptor.html | 5 +- .../boost/container/pmr/resource_adaptor_imp.html | 67 +- .../boost/container/pmr/set_default_resource.html | 5 +- doc/html/boost/container/pmr/set_of.html | 7 +- doc/html/boost/container/pmr/slist_of.html | 11 +- doc/html/boost/container/pmr/small_vector_of.html | 5 +- doc/html/boost/container/pmr/stable_vector_of.html | 5 +- .../container/pmr/synchronized_pool_resource.html | 99 +- .../container/pmr/unsynchronized_idp56479344.html | 195 + .../container/pmr/unsynchronized_idp63576512.html | 194 - doc/html/boost/container/pmr/vector_of.html | 5 +- .../boost/container/scoped_allocator_adaptor.html | 131 +- .../container/scoped_allocator_adaptor/rebind.html | 11 +- doc/html/boost/container/set.html | 370 +- doc/html/boost/container/slist.html | 402 +- doc/html/boost/container/small_vector.html | 103 +- .../boost/container/small_vector_allocator.html | 93 +- .../container/small_vector_allocator/rebind.html | 11 +- doc/html/boost/container/small_vector_base.html | 25 +- doc/html/boost/container/stable_vector.html | 329 +- doc/html/boost/container/static_vector.html | 314 +- doc/html/boost/container/stored_size.html | 69 + doc/html/boost/container/string.html | 5 +- doc/html/boost/container/swap_idp59253344.html | 87 + doc/html/boost/container/swap_idp66348864.html | 86 - doc/html/boost/container/throw_bad_alloc.html | 5 +- doc/html/boost/container/throw_length_error.html | 5 +- doc/html/boost/container/throw_logic_error.html | 5 +- doc/html/boost/container/throw_out_of_range.html | 5 +- doc/html/boost/container/throw_runtime_error.html | 11 +- doc/html/boost/container/tree_assoc_defaults.html | 61 - doc/html/boost/container/tree_assoc_options.html | 11 +- doc/html/boost/container/tree_assoc_options_t.html | 56 + doc/html/boost/container/tree_type.html | 5 +- doc/html/boost/container/tree_type_enum.html | 17 +- doc/html/boost/container/uses_allocator.html | 13 +- doc/html/boost/container/vector.html | 360 +- doc/html/boost/container/vector_options.html | 59 + doc/html/boost/container/vector_options_t.html | 56 + doc/html/boost/container/wstring.html | 5 +- doc/html/boost/date_time/acst_dst_trait.html | 44 +- doc/html/boost/date_time/all_date_names_put.html | 76 +- doc/html/boost/date_time/bad_field_count.html | 8 +- doc/html/boost/date_time/base_time.html | 108 +- doc/html/boost/date_time/c_local_adjustor.html | 12 +- doc/html/boost/date_time/c_time.html | 24 +- doc/html/boost/date_time/convert_string_type.html | 2 +- doc/html/boost/date_time/convert_to_lower.html | 2 +- doc/html/boost/date_time/counted_time_rep.html | 68 +- doc/html/boost/date_time/counted_time_system.html | 60 +- doc/html/boost/date_time/data_not_accessible.html | 12 +- doc/html/boost/date_time/date.html | 102 +- doc/html/boost/date_time/date_duration.html | 74 +- doc/html/boost/date_time/date_facet.html | 142 +- doc/html/boost/date_time/date_formatter.html | 16 +- .../boost/date_time/date_generator_formatter.html | 56 +- .../boost/date_time/date_generator_parser.html | 60 +- doc/html/boost/date_time/date_input_facet.html | 130 +- doc/html/boost/date_time/date_itr.html | 22 +- doc/html/boost/date_time/date_itr_base.html | 66 +- doc/html/boost/date_time/date_names_put.html | 120 +- doc/html/boost/date_time/day_calc_dst_rule.html | 30 +- doc/html/boost/date_time/day_clock.html | 38 +- doc/html/boost/date_time/day_functor.html | 22 +- doc/html/boost/date_time/days_before_weekday.html | 2 +- doc/html/boost/date_time/days_until_weekday.html | 2 +- .../boost/date_time/dst_adjustment_offsets.html | 8 +- doc/html/boost/date_time/dst_calc_engine.html | 28 +- doc/html/boost/date_time/dst_calculator.html | 30 +- doc/html/boost/date_time/dst_day_calc_rule.html | 30 +- .../boost/date_time/duration_traits_adapted.html | 12 +- doc/html/boost/date_time/duration_traits_long.html | 12 +- .../date_time/dynam_1_3_12_15_3_30_2_1_2.html | 76 - .../date_time/dynam_1_3_13_15_3_30_2_1_2.html | 76 + doc/html/boost/date_time/eu_dst_trait.html | 44 +- doc/html/boost/date_time/find_match.html | 2 +- doc/html/boost/date_time/first_kday_after.html | 22 +- doc/html/boost/date_time/first_kday_before.html | 22 +- doc/html/boost/date_time/first_kday_of_month.html | 30 +- .../date_time/fixed_1_3_12_15_3_26_2_1_2.html | 57 - .../date_time/fixed_1_3_12_15_3_26_2_1_3.html | 57 - .../date_time/fixed_1_3_13_15_3_26_2_1_2.html | 57 + .../date_time/fixed_1_3_13_15_3_26_2_1_3.html | 57 + doc/html/boost/date_time/format_date_parser.html | 96 +- .../date_time/from__1_3_12_15_3_22_1_1_6.html | 55 - .../date_time/from__1_3_12_15_3_22_1_1_7.html | 55 - .../date_time/from__1_3_12_15_3_22_1_1_8.html | 55 - .../date_time/from__1_3_12_15_3_22_1_1_9.html | 55 - .../date_time/from__1_3_13_15_3_22_1_1_6.html | 55 + .../date_time/from__1_3_13_15_3_22_1_1_7.html | 55 + .../date_time/from__1_3_13_15_3_22_1_1_8.html | 55 + .../date_time/from__1_3_13_15_3_22_1_1_9.html | 55 + doc/html/boost/date_time/gather_month_strings.html | 2 +- .../boost/date_time/gather_weekday_strings.html | 2 +- .../boost/date_time/gregorian_calendar_base.html | 56 +- doc/html/boost/date_time/int_adapter.html | 192 +- doc/html/boost/date_time/iso_extended_format.html | 12 +- .../date_time/iso_f_1_3_12_15_3_29_1_1_2.html | 118 - .../date_time/iso_f_1_3_13_15_3_29_1_1_2.html | 118 + doc/html/boost/date_time/iso_format.html | 18 +- doc/html/boost/date_time/iso_format_base.html | 100 +- doc/html/boost/date_time/last_kday_of_month.html | 30 +- doc/html/boost/date_time/local_adjustor.html | 16 +- doc/html/boost/date_time/microsec_clock.html | 34 +- doc/html/boost/date_time/month_formatter.html | 22 +- doc/html/boost/date_time/month_functor.html | 22 +- doc/html/boost/date_time/months_duration.html | 86 +- doc/html/boost/date_time/next_weekday.html | 2 +- doc/html/boost/date_time/nth_kday_of_month.html | 38 +- doc/html/boost/date_time/null_dst_rules.html | 24 +- .../date_time/opera_1_3_12_15_3_28_1_1_2.html | 57 - .../date_time/opera_1_3_13_15_3_28_1_1_2.html | 57 + .../date_time/ostre_1_3_12_15_3_49_1_1_1.html | 66 - .../date_time/ostre_1_3_12_15_3_49_1_1_3.html | 67 - .../date_time/ostre_1_3_13_15_3_49_1_1_1.html | 66 + .../date_time/ostre_1_3_13_15_3_49_1_1_3.html | 67 + .../boost/date_time/ostream_date_formatter.html | 16 +- .../boost/date_time/ostream_month_formatter.html | 12 +- .../boost/date_time/ostream_time_formatter.html | 22 +- .../boost/date_time/ostream_weekday_formatter.html | 12 +- .../boost/date_time/ostream_ymd_formatter.html | 12 +- .../date_time/parse_1_3_12_15_3_51_1_1_3.html | 55 - .../date_time/parse_1_3_13_15_3_51_1_1_3.html | 55 + doc/html/boost/date_time/parse_date.html | 8 +- doc/html/boost/date_time/parse_match_result.html | 26 +- doc/html/boost/date_time/partial_date.html | 46 +- doc/html/boost/date_time/period.html | 90 +- doc/html/boost/date_time/period_formatter.html | 47 +- doc/html/boost/date_time/period_parser.html | 48 +- doc/html/boost/date_time/previous_weekday.html | 2 +- doc/html/boost/date_time/second_clock.html | 30 +- .../date_time/simpl_1_3_12_15_3_13_1_1_2.html | 97 - .../date_time/simpl_1_3_13_15_3_13_1_1_2.html | 97 + doc/html/boost/date_time/simple_format.html | 66 +- .../boost/date_time/special_values_formatter.html | 26 +- .../boost/date_time/special_values_parser.html | 128 +- .../boost/date_time/split_timedate_system.html | 66 +- .../date_time/static_local_time_adjustor.html | 22 +- .../date_time/str_f_1_3_12_15_3_51_1_1_2.html | 56 - .../date_time/str_f_1_3_13_15_3_51_1_1_2.html | 56 + doc/html/boost/date_time/string_parse_tree.html | 42 +- doc/html/boost/date_time/subsecond_duration.html | 26 +- .../date_time/time__1_3_12_15_3_52_1_1_1.html | 69 - .../date_time/time__1_3_12_15_3_52_1_1_2.html | 69 - .../date_time/time__1_3_12_15_3_52_1_1_3.html | 69 - .../date_time/time__1_3_12_15_3_52_1_1_4.html | 69 - .../date_time/time__1_3_13_15_3_52_1_1_1.html | 69 + .../date_time/time__1_3_13_15_3_52_1_1_2.html | 69 + .../date_time/time__1_3_13_15_3_52_1_1_3.html | 69 + .../date_time/time__1_3_13_15_3_52_1_1_4.html | 69 + doc/html/boost/date_time/time_duration.html | 162 +- doc/html/boost/date_time/time_facet.html | 70 +- doc/html/boost/date_time/time_from_ftime.html | 2 +- doc/html/boost/date_time/time_input_facet.html | 84 +- doc/html/boost/date_time/time_itr.html | 62 +- .../boost/date_time/time_resolution_traits.html | 55 +- doc/html/boost/date_time/time_zone_base.html | 58 +- doc/html/boost/date_time/time_zone_names_base.html | 34 +- doc/html/boost/date_time/tz_db_base.html | 56 +- doc/html/boost/date_time/uk_dst_trait.html | 20 +- doc/html/boost/date_time/us_dst_rules.html | 28 +- doc/html/boost/date_time/us_dst_trait.html | 44 +- doc/html/boost/date_time/utc_adjustment.html | 22 +- doc/html/boost/date_time/var_string_to_int.html | 8 +- doc/html/boost/date_time/week_functor.html | 22 +- doc/html/boost/date_time/weeks_duration.html | 12 +- doc/html/boost/date_time/wrapping_int.html | 50 +- doc/html/boost/date_time/wrapping_int2.html | 54 +- doc/html/boost/date_time/year_based_generator.html | 26 +- doc/html/boost/date_time/year_functor.html | 22 +- doc/html/boost/date_time/year_month_day_base.html | 8 +- doc/html/boost/date_time/ymd_formatter.html | 16 +- doc/html/boost/date_time/ymd_order_spec.html | 2 +- .../boost/dll/experimental/get_idp28753888.html | 89 - .../boost/dll/experimental/get_idp28770608.html | 89 - .../boost/dll/experimental/get_idp38057568.html | 89 + .../boost/dll/experimental/get_idp38074288.html | 89 + .../dll/experimental/import_class_idp28282208.html | 130 - .../dll/experimental/import_class_idp37573920.html | 130 + .../boost/dll/experimental/import_mangled.html | 8 +- .../boost/dll/experimental/imported_class.html | 148 +- doc/html/boost/dll/experimental/smart_library.html | 136 +- doc/html/boost/dll/import.html | 8 +- doc/html/boost/dll/import_alias.html | 2 +- doc/html/boost/dll/library_info.html | 34 +- doc/html/boost/dll/load_mode/type.html | 2 +- doc/html/boost/dll/program_location.html | 2 +- doc/html/boost/dll/shared_library.html | 148 +- doc/html/boost/dll/symbol_location.html | 2 +- doc/html/boost/dll/symbol_location_ptr.html | 2 +- doc/html/boost/dll/this_line_location.html | 2 +- doc/html/boost/function.html | 202 +- doc/html/boost/function/sig.html | 6 +- doc/html/boost/functionN.html | 178 +- doc/html/boost/functionN/sig.html | 6 +- doc/html/boost/function_base.html | 38 +- doc/html/boost/function_equal.html | 2 +- doc/html/boost/graph_t_1_3_26_5_14_12_2_1.html | 79 + doc/html/boost/graph_trai_1_3_26_6_11_2_1.html | 79 - doc/html/boost/gregorian/bad_day_of_month.html | 12 +- doc/html/boost/gregorian/bad_day_of_year.html | 8 +- doc/html/boost/gregorian/bad_month.html | 14 +- doc/html/boost/gregorian/bad_weekday.html | 14 +- doc/html/boost/gregorian/bad_year.html | 8 +- doc/html/boost/gregorian/date.html | 58 +- doc/html/boost/gregorian/date_duration.html | 76 +- doc/html/boost/gregorian/greg_day.html | 22 +- doc/html/boost/gregorian/greg_facet_config.html | 6 +- doc/html/boost/gregorian/greg_month.html | 72 +- doc/html/boost/gregorian/greg_weekday.html | 38 +- doc/html/boost/gregorian/greg_year.html | 22 +- .../gregorian/opera_1_3_12_15_4_11_1_1_3.html | 63 - .../gregorian/opera_1_3_12_15_4_11_1_1_4.html | 55 - .../gregorian/opera_1_3_12_15_4_11_1_1_5.html | 56 - .../gregorian/opera_1_3_12_15_4_11_1_1_6.html | 55 - .../gregorian/opera_1_3_13_15_4_11_1_1_3.html | 63 + .../gregorian/opera_1_3_13_15_4_11_1_1_4.html | 55 + .../gregorian/opera_1_3_13_15_4_11_1_1_5.html | 56 + .../gregorian/opera_1_3_13_15_4_11_1_1_6.html | 55 + .../boost/gregorian/special_value_from_string.html | 2 +- doc/html/boost/gregorian/weeks_duration.html | 12 +- doc/html/boost/gregorian/year_based_generator.html | 2 +- doc/html/boost/hash.html | 24 +- doc/html/boost/hash_T_1_3_11_11_2_2_24.html | 74 + doc/html/boost/hash_T_1_3_16_11_2_2_24.html | 74 - doc/html/boost/hash_bool_1_3_11_11_2_2_2.html | 77 + doc/html/boost/hash_bool_1_3_16_11_2_2_2.html | 77 - doc/html/boost/hash_char1_1_3_11_11_2_2_7.html | 77 + doc/html/boost/hash_char1_1_3_16_11_2_2_7.html | 77 - doc/html/boost/hash_char3_1_3_11_11_2_2_8.html | 77 + doc/html/boost/hash_char3_1_3_16_11_2_2_8.html | 77 - doc/html/boost/hash_char_1_3_11_11_2_2_3.html | 77 + doc/html/boost/hash_char_1_3_16_11_2_2_3.html | 77 - doc/html/boost/hash_doub_1_3_11_11_2_2_18.html | 77 + doc/html/boost/hash_doub_1_3_16_11_2_2_18.html | 77 - doc/html/boost/hash_floa_1_3_11_11_2_2_17.html | 77 + doc/html/boost/hash_floa_1_3_16_11_2_2_17.html | 77 - doc/html/boost/hash_int_1_3_11_11_2_2_11.html | 77 + doc/html/boost/hash_int_1_3_16_11_2_2_11.html | 77 - doc/html/boost/hash_long_1_3_11_11_2_2_13.html | 77 + doc/html/boost/hash_long_1_3_11_11_2_2_15.html | 77 + doc/html/boost/hash_long_1_3_11_11_2_2_19.html | 77 + doc/html/boost/hash_long_1_3_16_11_2_2_13.html | 77 - doc/html/boost/hash_long_1_3_16_11_2_2_15.html | 77 - doc/html/boost/hash_long_1_3_16_11_2_2_19.html | 77 - doc/html/boost/hash_short_1_3_11_11_2_2_9.html | 77 + doc/html/boost/hash_short_1_3_16_11_2_2_9.html | 77 - doc/html/boost/hash_signe_1_3_11_11_2_2_4.html | 77 + doc/html/boost/hash_signe_1_3_16_11_2_2_4.html | 77 - doc/html/boost/hash_std__1_3_11_11_2_2_20.html | 77 + doc/html/boost/hash_std__1_3_11_11_2_2_21.html | 77 + doc/html/boost/hash_std__1_3_11_11_2_2_22.html | 77 + doc/html/boost/hash_std__1_3_11_11_2_2_23.html | 77 + doc/html/boost/hash_std__1_3_11_11_2_2_25.html | 74 + doc/html/boost/hash_std__1_3_16_11_2_2_20.html | 77 - doc/html/boost/hash_std__1_3_16_11_2_2_21.html | 77 - doc/html/boost/hash_std__1_3_16_11_2_2_22.html | 77 - doc/html/boost/hash_std__1_3_16_11_2_2_23.html | 77 - doc/html/boost/hash_std__1_3_16_11_2_2_25.html | 74 - doc/html/boost/hash_unsi_1_3_11_11_2_2_10.html | 77 + doc/html/boost/hash_unsi_1_3_11_11_2_2_12.html | 77 + doc/html/boost/hash_unsi_1_3_11_11_2_2_14.html | 77 + doc/html/boost/hash_unsi_1_3_11_11_2_2_16.html | 77 + doc/html/boost/hash_unsi_1_3_16_11_2_2_10.html | 77 - doc/html/boost/hash_unsi_1_3_16_11_2_2_12.html | 77 - doc/html/boost/hash_unsi_1_3_16_11_2_2_14.html | 77 - doc/html/boost/hash_unsi_1_3_16_11_2_2_16.html | 77 - doc/html/boost/hash_unsig_1_3_11_11_2_2_5.html | 77 + doc/html/boost/hash_unsig_1_3_16_11_2_2_5.html | 77 - doc/html/boost/hash_wchar_1_3_11_11_2_2_6.html | 77 + doc/html/boost/hash_wchar_1_3_16_11_2_2_6.html | 77 - doc/html/boost/heap/skew_heap.html | 220 +- .../heap/skew_heap/implementation_defined.html | 20 +- doc/html/boost/heap/skew_heap/push_handle.html | 75 + doc/html/boost/heap/skew_heap/push_void.html | 74 + doc/html/boost/interprocess/adaptive_pool.html | 100 +- .../boost/interprocess/adaptive_pool/rebind.html | 6 +- doc/html/boost/interprocess/allocator.html | 98 +- doc/html/boost/interprocess/allocator/rebind.html | 6 +- .../interprocess/anonymous_shared_memory.html | 6 +- doc/html/boost/interprocess/bad_alloc.html | 12 +- doc/html/boost/interprocess/basic_bufferbuf.html | 24 +- .../boost/interprocess/basic_bufferstream.html | 28 +- .../boost/interprocess/basic_ibufferstream.html | 28 +- .../boost/interprocess/basic_ivectorstream.html | 32 +- .../interprocess/basic_managed__idp39474400.html | 103 + .../interprocess/basic_managed__idp39582912.html | 156 + .../interprocess/basic_managed__idp39640656.html | 143 + .../interprocess/basic_managed__idp39689376.html | 150 + .../interprocess/basic_managed__idp55379840.html | 103 - .../interprocess/basic_managed__idp55488352.html | 156 - .../interprocess/basic_managed__idp55546096.html | 143 - .../interprocess/basic_managed__idp55594816.html | 150 - .../interprocess/basic_managed_heap_memory.html | 32 +- .../interprocess/basic_managed_mapped_file.html | 60 +- .../boost/interprocess/basic_obufferstream.html | 28 +- .../boost/interprocess/basic_ovectorstream.html | 28 +- doc/html/boost/interprocess/basic_vectorbuf.html | 28 +- .../boost/interprocess/basic_vectorstream.html | 32 +- .../boost/interprocess/cached_adaptive_pool.html | 126 +- .../interprocess/cached_adaptive_pool/rebind.html | 6 +- .../boost/interprocess/cached_node_allocator.html | 126 +- .../interprocess/cached_node_allocator/rebind.html | 6 +- doc/html/boost/interprocess/defer_lock_type.html | 6 +- doc/html/boost/interprocess/deleter.html | 12 +- .../interprocess/enable_shared_from_this.html | 18 +- doc/html/boost/interprocess/file_lock.html | 60 +- doc/html/boost/interprocess/file_mapping.html | 48 +- .../interprocess/fixed_managed__idp39630976.html | 55 + .../interprocess/fixed_managed__idp55536416.html | 55 - doc/html/boost/interprocess/flat_map_index.html | 16 +- .../boost/interprocess/interprocess_condition.html | 36 +- .../interprocess/interprocess_condition_any.html | 36 +- .../boost/interprocess/interprocess_exception.html | 28 +- .../boost/interprocess/interprocess_mutex.html | 34 +- .../interprocess/interprocess_r_idp40896864.html | 104 + .../interprocess/interprocess_r_idp56793568.html | 104 - .../interprocess/interprocess_s_idp40942256.html | 128 + .../interprocess/interprocess_s_idp56838960.html | 128 - .../boost/interprocess/interprocess_semaphore.html | 36 +- .../interprocess/interprocess_u_idp40973072.html | 190 + .../interprocess/interprocess_u_idp56869776.html | 190 - doc/html/boost/interprocess/intrusive_ptr.html | 92 +- doc/html/boost/interprocess/iset_index.html | 28 +- .../boost/interprocess/iunordered_set_index.html | 36 +- doc/html/boost/interprocess/lock_exception.html | 12 +- .../interprocess/make_managed_s_idp40508976.html | 58 + .../interprocess/make_managed_s_idp40513488.html | 59 + .../interprocess/make_managed_s_idp56405680.html | 58 - .../interprocess/make_managed_s_idp56410192.html | 59 - .../interprocess/managed_external_buffer.html | 10 +- .../boost/interprocess/managed_shared_memory.html | 10 +- .../boost/interprocess/managed_shared_ptr.html | 6 +- .../boost/interprocess/managed_unique_ptr.html | 6 +- .../interprocess/managed_window_idp39679728.html | 55 + .../interprocess/managed_window_idp55585168.html | 55 - .../interprocess/managed_xsi_shared_memory.html | 10 +- doc/html/boost/interprocess/map_index.html | 16 +- doc/html/boost/interprocess/mapped_region.html | 60 +- doc/html/boost/interprocess/message_queue.html | 6 +- doc/html/boost/interprocess/message_queue_t.html | 66 +- doc/html/boost/interprocess/mutex_family.html | 2 +- doc/html/boost/interprocess/named_condition.html | 52 +- .../boost/interprocess/named_condition_any.html | 52 +- doc/html/boost/interprocess/named_mutex.html | 44 +- .../boost/interprocess/named_recursive_mutex.html | 44 +- doc/html/boost/interprocess/named_semaphore.html | 44 +- .../boost/interprocess/named_sharable_mutex.html | 60 +- .../boost/interprocess/named_upgradable_mutex.html | 108 +- doc/html/boost/interprocess/node_allocator.html | 114 +- .../boost/interprocess/node_allocator/rebind.html | 6 +- doc/html/boost/interprocess/null_index.html | 24 +- doc/html/boost/interprocess/null_mutex.html | 92 +- doc/html/boost/interprocess/offset_ptr.html | 158 +- .../boost/interprocess/operator___idp38496176.html | 58 + .../boost/interprocess/operator___idp38504448.html | 58 + .../boost/interprocess/operator___idp38584608.html | 57 + .../boost/interprocess/operator___idp38589584.html | 57 + .../boost/interprocess/operator___idp38691552.html | 58 + .../boost/interprocess/operator___idp38699840.html | 58 + .../boost/interprocess/operator___idp38798784.html | 57 + .../boost/interprocess/operator___idp38805344.html | 57 + .../boost/interprocess/operator___idp38898704.html | 57 + .../boost/interprocess/operator___idp38905248.html | 57 + .../boost/interprocess/operator___idp39004656.html | 58 + .../boost/interprocess/operator___idp39012944.html | 58 + .../boost/interprocess/operator___idp39109776.html | 58 + .../boost/interprocess/operator___idp39118064.html | 58 + .../boost/interprocess/operator___idp40278064.html | 57 + .../boost/interprocess/operator___idp40283280.html | 57 + .../boost/interprocess/operator___idp40288496.html | 57 + .../boost/interprocess/operator___idp40293296.html | 57 + .../boost/interprocess/operator___idp40298096.html | 57 + .../boost/interprocess/operator___idp40302896.html | 57 + .../boost/interprocess/operator___idp54401248.html | 58 - .../boost/interprocess/operator___idp54409520.html | 58 - .../boost/interprocess/operator___idp54489968.html | 57 - .../boost/interprocess/operator___idp54494944.html | 57 - .../boost/interprocess/operator___idp54596912.html | 58 - .../boost/interprocess/operator___idp54605200.html | 58 - .../boost/interprocess/operator___idp54704144.html | 57 - .../boost/interprocess/operator___idp54710704.html | 57 - .../boost/interprocess/operator___idp54804064.html | 57 - .../boost/interprocess/operator___idp54810608.html | 57 - .../boost/interprocess/operator___idp54910016.html | 58 - .../boost/interprocess/operator___idp54918304.html | 58 - .../boost/interprocess/operator___idp55015136.html | 58 - .../boost/interprocess/operator___idp55023424.html | 58 - .../boost/interprocess/operator___idp56174768.html | 57 - .../boost/interprocess/operator___idp56179984.html | 57 - .../boost/interprocess/operator___idp56185200.html | 57 - .../boost/interprocess/operator___idp56190000.html | 57 - .../boost/interprocess/operator___idp56194800.html | 57 - .../boost/interprocess/operator___idp56199600.html | 57 - .../boost/interprocess/operator_idp39971568.html | 59 + .../boost/interprocess/operator_idp39978480.html | 58 + .../boost/interprocess/operator_idp40307696.html | 57 + .../boost/interprocess/operator_idp55877088.html | 59 - .../boost/interprocess/operator_idp55884000.html | 58 - .../boost/interprocess/operator_idp56204400.html | 57 - doc/html/boost/interprocess/permissions.html | 34 +- .../boost/interprocess/private_adaptive_pool.html | 118 +- .../interprocess/private_adaptive_pool/rebind.html | 6 +- .../boost/interprocess/private_node_allocator.html | 118 +- .../private_node_allocator/rebind.html | 6 +- doc/html/boost/interprocess/rbtree_best_fit.html | 74 +- doc/html/boost/interprocess/scoped_lock.html | 92 +- doc/html/boost/interprocess/scoped_ptr.html | 64 +- doc/html/boost/interprocess/segment_manager.html | 128 +- .../boost/interprocess/segment_manager_base.html | 68 +- doc/html/boost/interprocess/sharable_lock.html | 84 +- .../boost/interprocess/shared_memory_object.html | 64 +- doc/html/boost/interprocess/shared_ptr.html | 84 +- doc/html/boost/interprocess/simple_seq_fit.html | 4 +- doc/html/boost/interprocess/swap_idp40312352.html | 56 + doc/html/boost/interprocess/swap_idp40362672.html | 56 + doc/html/boost/interprocess/swap_idp56209056.html | 56 - doc/html/boost/interprocess/swap_idp56259376.html | 56 - .../interprocess/to_raw_pointer_idp40322096.html | 57 + .../interprocess/to_raw_pointer_idp40368064.html | 56 + .../interprocess/to_raw_pointer_idp56218800.html | 57 - .../interprocess/to_raw_pointer_idp56264768.html | 56 - .../boost/interprocess/unordered_map_index.html | 16 +- doc/html/boost/interprocess/upgradable_lock.html | 84 +- doc/html/boost/interprocess/weak_ptr.html | 44 +- .../interprocess/wfixed_managed_idp39634704.html | 55 + .../interprocess/wfixed_managed_idp55540144.html | 55 - .../boost/interprocess/windows_shared_memory.html | 52 +- .../interprocess/wmanaged_external_buffer.html | 4 +- .../boost/interprocess/wmanaged_mapped_file.html | 6 +- .../boost/interprocess/wmanaged_shared_memory.html | 10 +- .../interprocess/wmanaged_windo_idp39683440.html | 55 + .../interprocess/wmanaged_windo_idp55588880.html | 55 - .../interprocess/wmanaged_xsi_shared_memory.html | 4 +- doc/html/boost/interprocess/xsi_key.html | 20 +- doc/html/boost/interprocess/xsi_shared_memory.html | 56 +- doc/html/boost/intrusive/any_base_hook.html | 24 +- doc/html/boost/intrusive/any_member_hook.html | 24 +- doc/html/boost/intrusive/avl_multiset.html | 328 +- doc/html/boost/intrusive/avl_set.html | 348 +- doc/html/boost/intrusive/avl_set_base_hook.html | 32 +- doc/html/boost/intrusive/avl_set_member_hook.html | 32 +- doc/html/boost/intrusive/avltree.html | 360 +- doc/html/boost/intrusive/avltree_algorithms.html | 152 +- doc/html/boost/intrusive/bs_multiset.html | 328 +- doc/html/boost/intrusive/bs_set.html | 348 +- doc/html/boost/intrusive/bs_set_base_hook.html | 32 +- doc/html/boost/intrusive/bs_set_member_hook.html | 32 +- doc/html/boost/intrusive/bstree.html | 384 +- doc/html/boost/intrusive/bstree_algorithms.html | 304 +- .../boost/intrusive/circular_list_algorithms.html | 84 +- .../boost/intrusive/circular_slist_algorithms.html | 80 +- .../boost/intrusive/derivation_value_traits.html | 20 +- .../intrusive/get_parent_fro_idp55114128.html | 57 - .../intrusive/get_parent_fro_idp55118400.html | 58 - .../intrusive/get_parent_fro_idp55894848.html | 57 + .../intrusive/get_parent_fro_idp55899120.html | 58 + doc/html/boost/intrusive/hashtable.html | 284 +- .../boost/intrusive/linear_slist_algorithms.html | 60 +- doc/html/boost/intrusive/list.html | 288 +- doc/html/boost/intrusive/list_base_hook.html | 32 +- doc/html/boost/intrusive/list_member_hook.html | 32 +- .../intrusive/make_unordered_idp65807072.html | 58 - .../intrusive/make_unordered_idp65862816.html | 58 - .../intrusive/make_unordered_idp66587792.html | 58 + .../intrusive/make_unordered_idp66643536.html | 58 + .../boost/intrusive/make_unordered_multiset.html | 6 +- .../intrusive/max_pointer_pl_idp55128640.html | 59 - .../intrusive/max_pointer_pl_idp55909360.html | 59 + .../boost/intrusive/max_pointer_plus_bits.html | 8 +- doc/html/boost/intrusive/member_value_traits.html | 20 +- doc/html/boost/intrusive/multiset.html | 328 +- doc/html/boost/intrusive/pack_options.html | 6 +- doc/html/boost/intrusive/pointer_has_rebind.html | 20 +- .../boost/intrusive/pointer_has_rebind/any.html | 4 +- .../boost/intrusive/pointer_has_rebind_other.html | 14 +- .../intrusive/pointer_has_rebind_other/any.html | 4 +- .../intrusive/pointer_plus_b_idp55135712.html | 77 - .../intrusive/pointer_plus_b_idp55916432.html | 77 + doc/html/boost/intrusive/pointer_plus_bits.html | 8 +- doc/html/boost/intrusive/pointer_rebind.html | 8 +- .../intrusive/pointer_rebind_idp55187168.html | 54 - .../intrusive/pointer_rebind_idp55190832.html | 54 - .../intrusive/pointer_rebind_idp55194496.html | 55 - .../intrusive/pointer_rebind_idp55200144.html | 54 - .../intrusive/pointer_rebind_idp55207392.html | 54 - .../intrusive/pointer_rebind_idp55967888.html | 54 + .../intrusive/pointer_rebind_idp55971552.html | 54 + .../intrusive/pointer_rebind_idp55975216.html | 55 + .../intrusive/pointer_rebind_idp55980864.html | 54 + .../intrusive/pointer_rebind_idp55988112.html | 54 + doc/html/boost/intrusive/pointer_rebinder.html | 6 +- doc/html/boost/intrusive/pointer_traits.html | 28 +- .../intrusive/pointer_traits_idp55252544.html | 110 - .../pointer_traits_idp55252544/rebind_pointer.html | 55 - .../intrusive/pointer_traits_idp56033264.html | 110 + .../pointer_traits_idp56033264/rebind_pointer.html | 55 + .../intrusive/priority_compa_idp55286240.html | 64 - .../intrusive/priority_compa_idp56066960.html | 64 + doc/html/boost/intrusive/priority_compare.html | 16 +- doc/html/boost/intrusive/rbtree.html | 370 +- doc/html/boost/intrusive/rbtree_algorithms.html | 152 +- doc/html/boost/intrusive/set.html | 348 +- doc/html/boost/intrusive/set_base_hook.html | 32 +- doc/html/boost/intrusive/set_member_hook.html | 32 +- doc/html/boost/intrusive/sg_multiset.html | 344 +- doc/html/boost/intrusive/sg_set.html | 364 +- doc/html/boost/intrusive/sgtree.html | 384 +- doc/html/boost/intrusive/sgtree_algorithms.html | 152 +- doc/html/boost/intrusive/slist.html | 396 +- doc/html/boost/intrusive/slist_base_hook.html | 32 +- doc/html/boost/intrusive/slist_member_hook.html | 32 +- doc/html/boost/intrusive/splay_multiset.html | 348 +- doc/html/boost/intrusive/splay_set.html | 376 +- doc/html/boost/intrusive/splaytree.html | 388 +- doc/html/boost/intrusive/splaytree_algorithms.html | 200 +- doc/html/boost/intrusive/treap.html | 408 +- doc/html/boost/intrusive/treap_algorithms.html | 152 +- doc/html/boost/intrusive/treap_multiset.html | 356 +- doc/html/boost/intrusive/treap_set.html | 376 +- doc/html/boost/intrusive/trivial_value_traits.html | 20 +- doc/html/boost/intrusive/unordered_multiset.html | 264 +- doc/html/boost/intrusive/unordered_set.html | 276 +- .../boost/intrusive/unordered_set_base_hook.html | 40 +- .../boost/intrusive/unordered_set_member_hook.html | 38 +- doc/html/boost/local_time/ambiguous_result.html | 8 +- doc/html/boost/local_time/bad_adjustment.html | 8 +- doc/html/boost/local_time/bad_offset.html | 8 +- .../boost/local_time/custom_time_zone_base.html | 66 +- doc/html/boost/local_time/dst_not_valid.html | 8 +- .../boost/local_time/local_date_time_base.html | 154 +- .../local_time/operat_1_3_12_15_6_4_2_1_1.html | 54 - .../local_time/operat_1_3_12_15_6_4_2_1_2.html | 54 - .../local_time/operat_1_3_12_15_6_4_2_1_3.html | 54 - .../local_time/operat_1_3_12_15_6_4_2_1_4.html | 54 - .../local_time/operat_1_3_12_15_6_4_2_1_5.html | 54 - .../local_time/operat_1_3_12_15_6_4_2_1_6.html | 54 - .../local_time/operat_1_3_12_15_6_4_2_1_7.html | 54 - .../local_time/operat_1_3_12_15_6_4_2_1_8.html | 54 - .../local_time/operat_1_3_13_15_6_4_2_1_1.html | 54 + .../local_time/operat_1_3_13_15_6_4_2_1_2.html | 54 + .../local_time/operat_1_3_13_15_6_4_2_1_3.html | 54 + .../local_time/operat_1_3_13_15_6_4_2_1_4.html | 54 + .../local_time/operat_1_3_13_15_6_4_2_1_5.html | 54 + .../local_time/operat_1_3_13_15_6_4_2_1_6.html | 54 + .../local_time/operat_1_3_13_15_6_4_2_1_7.html | 54 + .../local_time/operat_1_3_13_15_6_4_2_1_8.html | 54 + .../boost/local_time/partial_date_rule_spec.html | 6 +- .../boost/local_time/posix_time_zone_base.html | 94 +- doc/html/boost/local_time/time_label_invalid.html | 8 +- doc/html/boost/local_time/tz_database.html | 4 +- doc/html/boost/lockfree/spsc_queue.html | 116 +- .../spsc_queue/implementation_defined.html | 57 + doc/html/boost/lockfree/stack.html | 6 +- .../boost/logic/get_default_in_idp31765120.html | 54 + .../boost/logic/get_default_in_idp39719728.html | 54 - doc/html/boost/logic/indeterminate_name.html | 22 +- doc/html/boost/logic/operator_idp31661568.html | 114 + doc/html/boost/logic/operator_idp31770720.html | 71 + doc/html/boost/logic/operator_idp31779280.html | 68 + doc/html/boost/logic/operator_idp31785552.html | 69 + doc/html/boost/logic/operator_idp39616176.html | 114 - doc/html/boost/logic/operator_idp39725328.html | 71 - doc/html/boost/logic/operator_idp39733888.html | 68 - doc/html/boost/logic/operator_idp39740160.html | 69 - doc/html/boost/logic/tribool.html | 20 +- doc/html/boost/mpi/all_gather.html | 12 +- doc/html/boost/mpi/all_reduce.html | 10 +- doc/html/boost/mpi/all_to_all.html | 10 +- doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2.html | 70 + .../mpi/alloca_1_3_26_5_14_2_2_1_2/rebind.html | 57 + doc/html/boost/mpi/allocator.html | 68 +- doc/html/boost/mpi/allocator/rebind.html | 10 +- doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2.html | 70 - .../mpi/allocator_1_3_26_6_2_2_1_2/rebind.html | 57 - doc/html/boost/mpi/any_source.html | 10 +- doc/html/boost/mpi/any_tag.html | 12 +- doc/html/boost/mpi/bitwise_and.html | 26 +- doc/html/boost/mpi/bitwise_or.html | 26 +- doc/html/boost/mpi/bitwise_xor.html | 26 +- doc/html/boost/mpi/broadcast.html | 10 +- doc/html/boost/mpi/cartesian_communicator.html | 263 ++ doc/html/boost/mpi/cartesian_dimension.html | 96 + doc/html/boost/mpi/cartesian_dimensions.html | 84 + doc/html/boost/mpi/cartesian_topology.html | 182 + doc/html/boost/mpi/comm_create_kind.html | 10 +- doc/html/boost/mpi/communicator.html | 200 +- doc/html/boost/mpi/content.html | 38 +- doc/html/boost/mpi/environment.html | 84 +- doc/html/boost/mpi/exception.html | 42 +- doc/html/boost/mpi/gather.html | 10 +- doc/html/boost/mpi/gatherv.html | 10 +- doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_11.html | 57 + doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_12.html | 57 + doc/html/boost/mpi/get_1_3_26_6_11_2_2_11.html | 57 - doc/html/boost/mpi/get_1_3_26_6_11_2_2_12.html | 57 - doc/html/boost/mpi/get_content.html | 10 +- doc/html/boost/mpi/get_mp_1_3_26_5_14_8_2_1_8.html | 87 + doc/html/boost/mpi/get_mpi_d_1_3_26_6_7_2_1_8.html | 87 - doc/html/boost/mpi/graph_communicator.html | 26 +- doc/html/boost/mpi/group.html | 58 +- doc/html/boost/mpi/inpla_1_3_26_5_14_14_2_1_2.html | 69 + doc/html/boost/mpi/inplace.html | 12 +- doc/html/boost/mpi/inplace__1_3_26_6_13_2_1_2.html | 69 - doc/html/boost/mpi/inplace_t.html | 18 +- doc/html/boost/mpi/intercommunicator.html | 50 +- doc/html/boost/mpi/is_commutative.html | 10 +- doc/html/boost/mpi/is_mpi_1_3_26_5_14_3_2_1_2.html | 54 + doc/html/boost/mpi/is_mpi_1_3_26_5_14_8_2_1_2.html | 58 + doc/html/boost/mpi/is_mpi_builtin_datatype.html | 12 +- doc/html/boost/mpi/is_mpi_byte_datatype.html | 10 +- doc/html/boost/mpi/is_mpi_complex_datatype.html | 10 +- doc/html/boost/mpi/is_mpi_datatype.html | 12 +- doc/html/boost/mpi/is_mpi_fl_1_3_26_6_7_2_1_2.html | 58 - doc/html/boost/mpi/is_mpi_integer_datatype.html | 12 +- doc/html/boost/mpi/is_mpi_logical_datatype.html | 12 +- doc/html/boost/mpi/is_mpi_op.html | 10 +- doc/html/boost/mpi/logical_xor.html | 26 +- doc/html/boost/mpi/maximum.html | 26 +- doc/html/boost/mpi/minimum.html | 26 +- doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_2.html | 69 + doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_3.html | 69 + doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_4.html | 57 + doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_3.html | 70 + doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_4.html | 70 + doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_5.html | 70 + doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_6.html | 68 + doc/html/boost/mpi/operator-.html | 10 +- doc/html/boost/mpi/operator_.html | 12 +- doc/html/boost/mpi/operator_1_3_26_6_12_2_1_2.html | 69 - doc/html/boost/mpi/operator_1_3_26_6_12_2_1_3.html | 69 - doc/html/boost/mpi/operator_1_3_26_6_12_2_1_4.html | 57 - doc/html/boost/mpi/operator__1_3_26_6_2_2_1_3.html | 70 - doc/html/boost/mpi/operator__1_3_26_6_2_2_1_4.html | 70 - doc/html/boost/mpi/operator__1_3_26_6_5_2_1_5.html | 70 - doc/html/boost/mpi/operator__1_3_26_6_5_2_1_6.html | 68 - doc/html/boost/mpi/packed.html | 8 +- doc/html/boost/mpi/packed_iarchive.html | 58 +- doc/html/boost/mpi/packed_oarchive.html | 54 +- doc/html/boost/mpi/packed_skeleton_iarchive.html | 34 +- doc/html/boost/mpi/packed_skeleton_oarchive.html | 30 +- .../mpi/python/reg_1_3_26_5_14_20_2_1_1_2.html | 86 + .../mpi/python/regist_1_3_26_6_19_2_1_1_2.html | 86 - doc/html/boost/mpi/python/register_serialized.html | 12 +- doc/html/boost/mpi/reduce.html | 10 +- doc/html/boost/mpi/request.html | 36 +- doc/html/boost/mpi/scan.html | 10 +- doc/html/boost/mpi/scatter.html | 10 +- doc/html/boost/mpi/scatterv.html | 10 +- doc/html/boost/mpi/skeleton.html | 10 +- doc/html/boost/mpi/skeleton_proxy.html | 16 +- doc/html/boost/mpi/status.html | 54 +- doc/html/boost/mpi/test_all.html | 10 +- doc/html/boost/mpi/test_any.html | 10 +- doc/html/boost/mpi/test_some.html | 10 +- doc/html/boost/mpi/threading/level.html | 12 +- .../mpi/threading/ope_1_3_26_5_14_10_2_1_2_2.html | 57 + .../mpi/threading/ope_1_3_26_5_14_10_2_1_2_3.html | 57 + .../mpi/threading/operato_1_3_26_6_9_2_1_2_2.html | 57 - .../mpi/threading/operato_1_3_26_6_9_2_1_2_3.html | 57 - doc/html/boost/mpi/timer.html | 50 +- doc/html/boost/mpi/wait_all.html | 10 +- doc/html/boost/mpi/wait_any.html | 10 +- doc/html/boost/mpi/wait_some.html | 10 +- doc/html/boost/operator___idp24460448.html | 101 - doc/html/boost/operator___idp24487216.html | 105 - doc/html/boost/operator___idp24515552.html | 105 - doc/html/boost/operator___idp24529728.html | 105 - doc/html/boost/operator___idp43338976.html | 101 + doc/html/boost/operator___idp43365744.html | 105 + doc/html/boost/operator___idp43394080.html | 105 + doc/html/boost/operator___idp43408256.html | 105 + doc/html/boost/operator_idp24473872.html | 101 - doc/html/boost/operator_idp24501376.html | 105 - doc/html/boost/operator_idp43352400.html | 101 + doc/html/boost/operator_idp43379904.html | 105 + .../boost/posix_time/duration_from_string.html | 8 +- doc/html/boost/posix_time/from_ftime.html | 8 +- doc/html/boost/posix_time/hours.html | 21 +- .../posix_time/millis_1_3_12_15_5_5_1_1_4.html | 70 - .../posix_time/millis_1_3_13_15_5_5_1_1_4.html | 70 + doc/html/boost/posix_time/minutes.html | 15 +- .../posix_time/operat_1_3_12_15_5_3_2_1_1.html | 53 - .../posix_time/operat_1_3_12_15_5_3_2_1_2.html | 53 - .../posix_time/operat_1_3_12_15_5_3_2_1_3.html | 53 - .../posix_time/operat_1_3_12_15_5_3_2_1_4.html | 53 - .../posix_time/operat_1_3_12_15_5_3_2_1_5.html | 53 - .../posix_time/operat_1_3_12_15_5_3_2_1_6.html | 53 - .../posix_time/operat_1_3_12_15_5_3_2_1_7.html | 53 - .../posix_time/operat_1_3_12_15_5_3_2_1_8.html | 53 - .../posix_time/operat_1_3_12_15_5_8_1_1_6.html | 55 - .../posix_time/operat_1_3_13_15_5_3_2_1_1.html | 53 + .../posix_time/operat_1_3_13_15_5_3_2_1_2.html | 53 + .../posix_time/operat_1_3_13_15_5_3_2_1_3.html | 53 + .../posix_time/operat_1_3_13_15_5_3_2_1_4.html | 53 + .../posix_time/operat_1_3_13_15_5_3_2_1_5.html | 53 + .../posix_time/operat_1_3_13_15_5_3_2_1_6.html | 53 + .../posix_time/operat_1_3_13_15_5_3_2_1_7.html | 53 + .../posix_time/operat_1_3_13_15_5_3_2_1_8.html | 53 + .../posix_time/operat_1_3_13_15_5_8_1_1_6.html | 55 + .../boost/posix_time/posix_time_system_config.html | 18 +- doc/html/boost/posix_time/ptime.html | 30 +- doc/html/boost/posix_time/seconds.html | 15 +- doc/html/boost/posix_time/simple_time_rep.html | 30 +- doc/html/boost/posix_time/time_duration.html | 26 +- doc/html/boost/posix_time/wtime_facet.html | 8 +- doc/html/boost/process/async_pipe.html | 132 +- doc/html/boost/process/basic_environment.html | 126 +- .../basic_environment/const_entry_type.html | 20 +- .../process/basic_environment/entry_type.html | 48 +- doc/html/boost/process/basic_ipstream.html | 64 +- .../boost/process/basic_native_environment.html | 114 +- .../basic_native_environment/const_entry_type.html | 20 +- .../basic_native_environment/entry_type.html | 48 +- doc/html/boost/process/basic_opstream.html | 64 +- doc/html/boost/process/basic_pipe.html | 64 +- doc/html/boost/process/basic_pipebuf.html | 80 +- doc/html/boost/process/basic_pstream.html | 64 +- doc/html/boost/process/child.html | 108 +- doc/html/boost/process/extend/handler.html | 28 +- doc/html/boost/process/extend/posix_executor.html | 44 +- .../boost/process/extend/windows_executor.html | 36 +- doc/html/boost/process/group.html | 108 +- doc/html/boost/process/on_exit.html | 2 +- .../boost/process/windows/create_no_window.html | 51 + doc/html/boost/process/windows/show_normal.html | 6 +- .../boost/random/linear_congruential_engine.html | 2 +- .../stacktrace/safe_dump_1_3_38_7_6_2_1_3.html | 2 +- .../stacktrace/safe_dump_1_3_38_7_6_2_1_4.html | 2 +- .../stacktrace/safe_dump_1_3_38_7_6_2_1_5.html | 2 +- .../stacktrace/safe_dump_1_3_38_7_6_2_1_6.html | 2 +- doc/html/boost/swap_idp24543920.html | 105 - doc/html/boost/swap_idp43422448.html | 105 + doc/html/boost/type_erasure/_self.html | 6 +- doc/html/boost/type_erasure/any.html | 106 +- .../type_erasure/any_Conc_1_3_41_13_1_1_1_1.html | 560 --- .../type_erasure/any_Conc_1_3_41_13_1_1_1_2.html | 163 +- .../type_erasure/any_Conc_1_3_41_13_1_1_1_3.html | 213 +- .../type_erasure/any_Conc_1_3_41_13_1_1_1_4.html | 498 ++ doc/html/boost/type_erasure/any_cast.html | 10 +- doc/html/boost/type_erasure/as_param.html | 10 +- doc/html/boost/type_erasure/assignable.html | 12 +- doc/html/boost/type_erasure/binding.html | 54 +- doc/html/boost/type_erasure/binding_of.html | 6 +- doc/html/boost/type_erasure/call.html | 6 +- doc/html/boost/type_erasure/callable.html | 6 +- doc/html/boost/type_erasure/check_match.html | 8 +- doc/html/boost/type_erasure/dynamic_any_cast.html | 2 +- doc/html/boost/type_erasure/is_placeholder.html | 2 +- doc/html/boost/type_erasure/istreamable.html | 6 +- doc/html/boost/type_erasure/param.html | 40 +- doc/html/boost/type_erasure/placeholder_of.html | 10 +- doc/html/boost/type_erasure/rebind_any.html | 9 +- doc/html/boost/type_erasure/register_binding.html | 2 +- doc/html/boost/type_erasure/relaxed.html | 8 +- doc/html/boost/type_erasure/require_match.html | 8 +- doc/html/boost/type_erasure/static_binding.html | 2 + doc/html/boost/type_erasure/typeid_.html | 16 +- doc/html/boost/typeindex/hash_value.html | 2 +- doc/html/boost/typeindex/type_index_facade.html | 2 +- doc/html/boost/units/absolute.html | 16 +- .../boost/units/ba_1_3_44_10_10_5_10_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_5_11_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_5_12_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_5_13_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_5_16_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_5_17_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_5_18_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_5_19_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_5_20_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_6_10_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_6_13_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_6_14_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_6_16_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_6_17_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_6_19_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_10_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_11_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_12_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_13_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_14_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_15_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_19_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_20_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_21_1_1_1.html | 8 +- .../boost/units/ba_1_3_44_10_10_9_22_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_2_2_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_2_3_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_2_7_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_3_3_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_3_4_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_3_5_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_3_7_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_5_2_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_5_3_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_5_4_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_5_5_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_5_6_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_5_7_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_5_8_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_5_9_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_6_2_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_6_7_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_6_8_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_9_2_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_9_3_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_9_4_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_9_5_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_9_6_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_9_7_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_9_8_1_1_1.html | 8 +- .../boost/units/bas_1_3_44_10_10_9_9_1_1_1.html | 8 +- doc/html/boost/units/conversion_helper.html | 4 +- doc/html/boost/units/pow_1_3_44_10_2_5_3_1_29.html | 2 +- .../boost/units/power_1_3_44_10_2_42_1_1_3.html | 4 +- doc/html/boost/units/power_typeof_helper.html | 4 +- .../boost/units/quant_1_3_44_10_2_36_1_1_2.html | 44 +- doc/html/boost/units/quantity.html | 55 +- .../boost/units/root__1_3_44_10_2_42_1_1_4.html | 4 +- doc/html/boost/units/root_typeof_helper.html | 4 +- doc/html/boost/units/scale.html | 6 +- doc/html/boost/units/static_rational.html | 12 +- doc/html/boost/units/unit.html | 4 +- doc/html/boost_asio.html | 4 +- .../boost_asio/example/cpp03/allocation/server.cpp | 2 +- .../example/cpp03/buffers/reference_counted.cpp | 2 +- .../boost_asio/example/cpp03/chat/chat_client.cpp | 2 +- .../boost_asio/example/cpp03/chat/chat_message.hpp | 2 +- .../boost_asio/example/cpp03/chat/chat_server.cpp | 2 +- .../example/cpp03/chat/posix_chat_client.cpp | 2 +- .../example/cpp03/echo/async_tcp_echo_server.cpp | 2 +- .../example/cpp03/echo/async_udp_echo_server.cpp | 2 +- .../cpp03/echo/blocking_tcp_echo_client.cpp | 2 +- .../cpp03/echo/blocking_tcp_echo_server.cpp | 2 +- .../cpp03/echo/blocking_udp_echo_client.cpp | 2 +- .../cpp03/echo/blocking_udp_echo_server.cpp | 2 +- doc/html/boost_asio/example/cpp03/fork/daemon.cpp | 2 +- .../example/cpp03/fork/process_per_connection.cpp | 2 +- .../example/cpp03/http/client/async_client.cpp | 2 +- .../example/cpp03/http/client/sync_client.cpp | 2 +- .../example/cpp03/http/server/connection.cpp | 2 +- .../example/cpp03/http/server/connection.hpp | 2 +- .../cpp03/http/server/connection_manager.cpp | 2 +- .../cpp03/http/server/connection_manager.hpp | 2 +- .../example/cpp03/http/server/header.hpp | 2 +- .../boost_asio/example/cpp03/http/server/main.cpp | 2 +- .../example/cpp03/http/server/mime_types.cpp | 2 +- .../example/cpp03/http/server/mime_types.hpp | 2 +- .../boost_asio/example/cpp03/http/server/reply.cpp | 2 +- .../boost_asio/example/cpp03/http/server/reply.hpp | 2 +- .../example/cpp03/http/server/request.hpp | 2 +- .../example/cpp03/http/server/request_handler.cpp | 2 +- .../example/cpp03/http/server/request_handler.hpp | 2 +- .../example/cpp03/http/server/request_parser.cpp | 2 +- .../example/cpp03/http/server/request_parser.hpp | 2 +- .../example/cpp03/http/server/server.cpp | 2 +- .../example/cpp03/http/server/server.hpp | 2 +- .../example/cpp03/http/server2/connection.cpp | 2 +- .../example/cpp03/http/server2/connection.hpp | 2 +- .../example/cpp03/http/server2/header.hpp | 2 +- .../example/cpp03/http/server2/io_context_pool.cpp | 2 +- .../example/cpp03/http/server2/io_context_pool.hpp | 2 +- .../boost_asio/example/cpp03/http/server2/main.cpp | 2 +- .../example/cpp03/http/server2/mime_types.cpp | 2 +- .../example/cpp03/http/server2/mime_types.hpp | 2 +- .../example/cpp03/http/server2/reply.cpp | 2 +- .../example/cpp03/http/server2/reply.hpp | 2 +- .../example/cpp03/http/server2/request.hpp | 2 +- .../example/cpp03/http/server2/request_handler.cpp | 2 +- .../example/cpp03/http/server2/request_handler.hpp | 2 +- .../example/cpp03/http/server2/request_parser.cpp | 2 +- .../example/cpp03/http/server2/request_parser.hpp | 2 +- .../example/cpp03/http/server2/server.cpp | 2 +- .../example/cpp03/http/server2/server.hpp | 2 +- .../example/cpp03/http/server3/connection.cpp | 2 +- .../example/cpp03/http/server3/connection.hpp | 2 +- .../example/cpp03/http/server3/header.hpp | 2 +- .../boost_asio/example/cpp03/http/server3/main.cpp | 2 +- .../example/cpp03/http/server3/mime_types.cpp | 2 +- .../example/cpp03/http/server3/mime_types.hpp | 2 +- .../example/cpp03/http/server3/reply.cpp | 2 +- .../example/cpp03/http/server3/reply.hpp | 2 +- .../example/cpp03/http/server3/request.hpp | 2 +- .../example/cpp03/http/server3/request_handler.cpp | 2 +- .../example/cpp03/http/server3/request_handler.hpp | 2 +- .../example/cpp03/http/server3/request_parser.cpp | 2 +- .../example/cpp03/http/server3/request_parser.hpp | 2 +- .../example/cpp03/http/server3/server.cpp | 2 +- .../example/cpp03/http/server3/server.hpp | 2 +- .../example/cpp03/http/server4/file_handler.cpp | 2 +- .../example/cpp03/http/server4/file_handler.hpp | 2 +- .../example/cpp03/http/server4/header.hpp | 2 +- .../boost_asio/example/cpp03/http/server4/main.cpp | 2 +- .../example/cpp03/http/server4/mime_types.cpp | 2 +- .../example/cpp03/http/server4/mime_types.hpp | 2 +- .../example/cpp03/http/server4/reply.cpp | 2 +- .../example/cpp03/http/server4/reply.hpp | 2 +- .../example/cpp03/http/server4/request.hpp | 2 +- .../example/cpp03/http/server4/request_parser.cpp | 2 +- .../example/cpp03/http/server4/request_parser.hpp | 2 +- .../example/cpp03/http/server4/server.cpp | 2 +- .../example/cpp03/http/server4/server.hpp | 2 +- .../boost_asio/example/cpp03/icmp/icmp_header.hpp | 2 +- .../boost_asio/example/cpp03/icmp/ipv4_header.hpp | 2 +- doc/html/boost_asio/example/cpp03/icmp/ping.cpp | 22 +- .../cpp03/invocation/prioritised_handlers.cpp | 6 +- .../example/cpp03/iostreams/daytime_client.cpp | 2 +- .../example/cpp03/iostreams/daytime_server.cpp | 2 +- .../example/cpp03/iostreams/http_client.cpp | 4 +- .../example/cpp03/local/connect_pair.cpp | 2 +- .../example/cpp03/local/iostream_client.cpp | 2 +- .../example/cpp03/local/stream_client.cpp | 2 +- .../example/cpp03/local/stream_server.cpp | 2 +- .../example/cpp03/multicast/receiver.cpp | 2 +- .../boost_asio/example/cpp03/multicast/sender.cpp | 7 +- .../example/cpp03/nonblocking/third_party_lib.cpp | 2 +- .../boost_asio/example/cpp03/porthopper/client.cpp | 2 +- .../example/cpp03/porthopper/protocol.hpp | 2 +- .../boost_asio/example/cpp03/porthopper/server.cpp | 14 +- .../example/cpp03/serialization/client.cpp | 2 +- .../example/cpp03/serialization/connection.hpp | 2 +- .../example/cpp03/serialization/server.cpp | 2 +- .../example/cpp03/serialization/stock.hpp | 2 +- .../example/cpp03/services/basic_logger.hpp | 2 +- .../example/cpp03/services/daytime_client.cpp | 2 +- .../boost_asio/example/cpp03/services/logger.hpp | 2 +- .../example/cpp03/services/logger_service.cpp | 2 +- .../example/cpp03/services/logger_service.hpp | 2 +- .../boost_asio/example/cpp03/socks4/socks4.hpp | 2 +- .../example/cpp03/socks4/sync_client.cpp | 2 +- .../boost_asio/example/cpp03/spawn/echo_server.cpp | 10 +- .../example/cpp03/spawn/parallel_grep.cpp | 2 +- doc/html/boost_asio/example/cpp03/ssl/client.cpp | 2 +- doc/html/boost_asio/example/cpp03/ssl/server.cpp | 2 +- .../example/cpp03/timeouts/async_tcp_client.cpp | 44 +- .../example/cpp03/timeouts/blocking_tcp_client.cpp | 206 +- .../cpp03/timeouts/blocking_token_tcp_client.cpp | 198 + .../example/cpp03/timeouts/blocking_udp_client.cpp | 103 +- .../boost_asio/example/cpp03/timeouts/server.cpp | 60 +- .../example/cpp03/timers/tick_count_timer.cpp | 123 - .../example/cpp03/timers/time_t_timer.cpp | 83 +- .../example/cpp03/windows/transmit_file.cpp | 2 +- .../boost_asio/example/cpp11/allocation/server.cpp | 2 +- .../example/cpp11/buffers/reference_counted.cpp | 3 +- .../boost_asio/example/cpp11/chat/chat_client.cpp | 2 +- .../boost_asio/example/cpp11/chat/chat_message.hpp | 2 +- .../boost_asio/example/cpp11/chat/chat_server.cpp | 2 +- .../example/cpp11/echo/async_tcp_echo_server.cpp | 2 +- .../example/cpp11/echo/async_udp_echo_server.cpp | 2 +- .../cpp11/echo/blocking_tcp_echo_client.cpp | 2 +- .../cpp11/echo/blocking_tcp_echo_server.cpp | 2 +- .../cpp11/echo/blocking_udp_echo_client.cpp | 2 +- .../cpp11/echo/blocking_udp_echo_server.cpp | 2 +- .../example/cpp11/executors/fork_join.cpp | 1 + .../example/cpp11/executors/pipeline.cpp | 1 + doc/html/boost_asio/example/cpp11/fork/daemon.cpp | 2 +- .../example/cpp11/fork/process_per_connection.cpp | 2 +- .../example/cpp11/futures/daytime_client.cpp | 2 +- .../handler_tracking/async_tcp_echo_server.cpp | 2 +- .../cpp11/handler_tracking/custom_tracking.hpp | 2 +- .../example/cpp11/http/server/connection.cpp | 2 +- .../example/cpp11/http/server/connection.hpp | 2 +- .../cpp11/http/server/connection_manager.cpp | 2 +- .../cpp11/http/server/connection_manager.hpp | 2 +- .../example/cpp11/http/server/header.hpp | 2 +- .../boost_asio/example/cpp11/http/server/main.cpp | 2 +- .../example/cpp11/http/server/mime_types.cpp | 2 +- .../example/cpp11/http/server/mime_types.hpp | 2 +- .../boost_asio/example/cpp11/http/server/reply.cpp | 2 +- .../boost_asio/example/cpp11/http/server/reply.hpp | 2 +- .../example/cpp11/http/server/request.hpp | 2 +- .../example/cpp11/http/server/request_handler.cpp | 2 +- .../example/cpp11/http/server/request_handler.hpp | 2 +- .../example/cpp11/http/server/request_parser.cpp | 2 +- .../example/cpp11/http/server/request_parser.hpp | 2 +- .../example/cpp11/http/server/server.cpp | 2 +- .../example/cpp11/http/server/server.hpp | 2 +- .../cpp11/invocation/prioritised_handlers.cpp | 2 +- .../example/cpp11/local/connect_pair.cpp | 2 +- .../example/cpp11/local/iostream_client.cpp | 2 +- .../example/cpp11/local/stream_client.cpp | 2 +- .../example/cpp11/local/stream_server.cpp | 2 +- .../example/cpp11/multicast/receiver.cpp | 2 +- .../boost_asio/example/cpp11/multicast/sender.cpp | 2 +- .../boost_asio/example/cpp11/spawn/echo_server.cpp | 2 +- .../example/cpp11/spawn/parallel_grep.cpp | 2 +- .../example/cpp17/coroutines_ts/chat_server.cpp | 224 + .../coroutines_ts/double_buffered_echo_server.cpp | 97 + .../example/cpp17/coroutines_ts/echo_server.cpp | 82 + .../cpp17/coroutines_ts/range_based_for.cpp | 111 + .../cpp17/coroutines_ts/refactored_echo_server.cpp | 91 + doc/html/boost_asio/examples.html | 7 +- doc/html/boost_asio/examples/cpp03_examples.html | 17 +- doc/html/boost_asio/examples/cpp11_examples.html | 8 +- doc/html/boost_asio/examples/cpp17_examples.html | 69 + doc/html/boost_asio/history.html | 184 +- doc/html/boost_asio/index.html | 1279 +++--- doc/html/boost_asio/net_ts.html | 2 +- doc/html/boost_asio/overview.html | 6 +- doc/html/boost_asio/overview/core.html | 6 +- doc/html/boost_asio/overview/core/allocation.html | 2 +- doc/html/boost_asio/overview/core/async.html | 2 +- doc/html/boost_asio/overview/core/basics.html | 2 +- doc/html/boost_asio/overview/core/buffers.html | 2 +- .../boost_asio/overview/core/concurrency_hint.html | 2 +- doc/html/boost_asio/overview/core/coroutine.html | 2 +- .../boost_asio/overview/core/coroutines_ts.html | 155 + .../boost_asio/overview/core/handler_tracking.html | 2 +- doc/html/boost_asio/overview/core/line_based.html | 2 +- doc/html/boost_asio/overview/core/reactor.html | 2 +- doc/html/boost_asio/overview/core/spawn.html | 8 +- doc/html/boost_asio/overview/core/strands.html | 2 +- doc/html/boost_asio/overview/core/streams.html | 2 +- doc/html/boost_asio/overview/core/threads.html | 2 +- doc/html/boost_asio/overview/cpp2011.html | 2 +- doc/html/boost_asio/overview/cpp2011/array.html | 2 +- doc/html/boost_asio/overview/cpp2011/atomic.html | 2 +- doc/html/boost_asio/overview/cpp2011/chrono.html | 2 +- doc/html/boost_asio/overview/cpp2011/futures.html | 2 +- .../boost_asio/overview/cpp2011/move_handlers.html | 2 +- .../boost_asio/overview/cpp2011/move_objects.html | 2 +- .../boost_asio/overview/cpp2011/shared_ptr.html | 2 +- doc/html/boost_asio/overview/cpp2011/variadic.html | 2 +- doc/html/boost_asio/overview/implementation.html | 2 +- doc/html/boost_asio/overview/networking.html | 8 +- .../overview/networking/bsd_sockets.html | 2 +- .../boost_asio/overview/networking/iostreams.html | 2 +- .../overview/networking/other_protocols.html | 2 +- .../boost_asio/overview/networking/protocols.html | 2 +- doc/html/boost_asio/overview/posix.html | 2 +- doc/html/boost_asio/overview/posix/fork.html | 2 +- doc/html/boost_asio/overview/posix/local.html | 2 +- .../overview/posix/stream_descriptor.html | 2 +- doc/html/boost_asio/overview/rationale.html | 2 +- doc/html/boost_asio/overview/serial_ports.html | 2 +- doc/html/boost_asio/overview/signals.html | 2 +- doc/html/boost_asio/overview/ssl.html | 2 +- doc/html/boost_asio/overview/timers.html | 2 +- doc/html/boost_asio/overview/windows.html | 2 +- .../boost_asio/overview/windows/object_handle.html | 2 +- .../overview/windows/random_access_handle.html | 2 +- .../boost_asio/overview/windows/stream_handle.html | 2 +- doc/html/boost_asio/reference.html | 128 +- doc/html/boost_asio/reference/AcceptHandler.html | 2 +- .../boost_asio/reference/AcceptableProtocol.html | 2 +- .../reference/AsyncRandomAccessReadDevice.html | 2 +- .../reference/AsyncRandomAccessWriteDevice.html | 2 +- doc/html/boost_asio/reference/AsyncReadStream.html | 2 +- .../boost_asio/reference/AsyncWriteStream.html | 2 +- .../reference/BufferedHandshakeHandler.html | 2 +- .../boost_asio/reference/CompletionCondition.html | 2 +- .../boost_asio/reference/CompletionHandler.html | 2 +- .../boost_asio/reference/ConnectCondition.html | 2 +- doc/html/boost_asio/reference/ConnectHandler.html | 2 +- .../boost_asio/reference/ConstBufferSequence.html | 2 +- doc/html/boost_asio/reference/DynamicBuffer.html | 2 +- doc/html/boost_asio/reference/Endpoint.html | 2 +- .../boost_asio/reference/EndpointSequence.html | 2 +- .../boost_asio/reference/ExecutionContext.html | 2 +- doc/html/boost_asio/reference/Executor1.html | 2 +- .../reference/GettableSerialPortOption.html | 2 +- .../boost_asio/reference/GettableSocketOption.html | 2 +- doc/html/boost_asio/reference/Handler.html | 6 +- .../boost_asio/reference/HandshakeHandler.html | 2 +- .../boost_asio/reference/InternetProtocol.html | 2 +- .../boost_asio/reference/IoControlCommand.html | 2 +- doc/html/boost_asio/reference/IoObjectService.html | 2 +- .../reference/IteratorConnectHandler.html | 8 +- .../reference/LegacyCompletionHandler.html | 106 + .../boost_asio/reference/MoveAcceptHandler.html | 8 +- .../reference/MutableBufferSequence.html | 2 +- doc/html/boost_asio/reference/ProtoAllocator.html | 2 +- doc/html/boost_asio/reference/Protocol.html | 2 +- .../boost_asio/reference/RangeConnectHandler.html | 2 +- doc/html/boost_asio/reference/ReadHandler.html | 2 +- doc/html/boost_asio/reference/ResolveHandler.html | 2 +- doc/html/boost_asio/reference/Service.html | 2 +- .../reference/SettableSerialPortOption.html | 2 +- .../boost_asio/reference/SettableSocketOption.html | 2 +- doc/html/boost_asio/reference/ShutdownHandler.html | 2 +- doc/html/boost_asio/reference/SignalHandler.html | 2 +- .../reference/SyncRandomAccessReadDevice.html | 2 +- .../reference/SyncRandomAccessWriteDevice.html | 2 +- doc/html/boost_asio/reference/SyncReadStream.html | 2 +- doc/html/boost_asio/reference/SyncWriteStream.html | 2 +- doc/html/boost_asio/reference/TimeTraits.html | 2 +- doc/html/boost_asio/reference/WaitHandler.html | 2 +- doc/html/boost_asio/reference/WaitTraits.html | 2 +- doc/html/boost_asio/reference/WriteHandler.html | 2 +- doc/html/boost_asio/reference/add_service.html | 2 +- .../reference/asio_handler_allocate.html | 2 +- .../reference/asio_handler_deallocate.html | 2 +- .../boost_asio/reference/asio_handler_invoke.html | 2 +- .../reference/asio_handler_invoke/overload1.html | 2 +- .../reference/asio_handler_invoke/overload2.html | 2 +- .../reference/asio_handler_is_continuation.html | 2 +- .../boost_asio/reference/associated_allocator.html | 2 +- .../reference/associated_allocator/get.html | 2 +- .../reference/associated_allocator/type.html | 2 +- .../boost_asio/reference/associated_executor.html | 2 +- .../reference/associated_executor/get.html | 2 +- .../reference/associated_executor/type.html | 2 +- .../boost_asio/reference/async_completion.html | 2 +- .../async_completion/async_completion.html | 2 +- .../async_completion/completion_handler.html | 2 +- .../async_completion/completion_handler_type.html | 2 +- .../reference/async_completion/result.html | 2 +- doc/html/boost_asio/reference/async_connect.html | 2 +- .../reference/async_connect/overload1.html | 2 +- .../reference/async_connect/overload2.html | 2 +- .../reference/async_connect/overload3.html | 2 +- .../reference/async_connect/overload4.html | 2 +- .../reference/async_connect/overload5.html | 2 +- .../reference/async_connect/overload6.html | 2 +- doc/html/boost_asio/reference/async_read.html | 6 +- .../boost_asio/reference/async_read/overload1.html | 2 +- .../boost_asio/reference/async_read/overload2.html | 2 +- .../boost_asio/reference/async_read/overload3.html | 4 +- .../boost_asio/reference/async_read/overload4.html | 4 +- .../boost_asio/reference/async_read/overload5.html | 2 +- .../boost_asio/reference/async_read/overload6.html | 2 +- doc/html/boost_asio/reference/async_read_at.html | 2 +- .../reference/async_read_at/overload1.html | 2 +- .../reference/async_read_at/overload2.html | 2 +- .../reference/async_read_at/overload3.html | 2 +- .../reference/async_read_at/overload4.html | 2 +- .../boost_asio/reference/async_read_until.html | 2 +- .../reference/async_read_until/overload1.html | 2 +- .../reference/async_read_until/overload2.html | 2 +- .../reference/async_read_until/overload3.html | 2 +- .../reference/async_read_until/overload4.html | 2 +- .../reference/async_read_until/overload5.html | 2 +- .../reference/async_read_until/overload6.html | 2 +- .../reference/async_read_until/overload7.html | 2 +- .../reference/async_read_until/overload8.html | 2 +- doc/html/boost_asio/reference/async_result.html | 2 +- .../reference/async_result/async_result.html | 2 +- .../async_result/completion_handler_type.html | 2 +- .../boost_asio/reference/async_result/get.html | 2 +- .../reference/async_result/return_type.html | 2 +- .../reference/async_result_lt__Handler__gt_.html | 2 +- .../async_result.html | 2 +- .../async_result_lt__Handler__gt_/get.html | 2 +- .../async_result_lt__Handler__gt_/type.html | 2 +- ...gs_ellipsis__rp__gt__comma__Signature__gt_.html | 2 +- .../async_result.html | 2 +- .../completion_handler_type.html | 2 +- .../get.html | 2 +- .../return_type.html | 2 +- doc/html/boost_asio/reference/async_write.html | 6 +- .../reference/async_write/overload1.html | 2 +- .../reference/async_write/overload2.html | 2 +- .../reference/async_write/overload3.html | 4 +- .../reference/async_write/overload4.html | 4 +- .../reference/async_write/overload5.html | 2 +- .../reference/async_write/overload6.html | 2 +- doc/html/boost_asio/reference/async_write_at.html | 2 +- .../reference/async_write_at/overload1.html | 2 +- .../reference/async_write_at/overload2.html | 2 +- .../reference/async_write_at/overload3.html | 2 +- .../reference/async_write_at/overload4.html | 2 +- .../reference/asynchronous_operations.html | 2 +- .../allocation_of_intermediate_storage.html | 2 +- .../associated_executor.html | 2 +- ...duction_of_initiating_function_return_type.html | 2 +- .../completion_handler_executor.html | 2 +- .../completion_handlers_and_exceptions.html | 2 +- .../asynchronous_operations/completion_token.html | 2 +- ...er_on_completion_of_asynchronous_operation.html | 2 +- .../general_asynchronous_operation_concepts.html | 2 +- .../asynchronous_operations/i_o_executor.html | 2 +- .../lifetime_of_initiating_function_arguments.html | 2 +- ...cking_requirements_on_initiating_functions.html | 2 +- .../asynchronous_operations/outstanding_work.html | 2 +- ...uction_of_initiating_function_return_value.html | 2 +- .../reference/asynchronous_socket_operations.html | 2 +- doc/html/boost_asio/reference/bad_executor.html | 2 +- .../reference/bad_executor/bad_executor.html | 2 +- .../boost_asio/reference/bad_executor/what.html | 2 +- .../reference/basic_datagram_socket.html | 2 +- .../_basic_datagram_socket.html | 2 +- .../reference/basic_datagram_socket/assign.html | 2 +- .../basic_datagram_socket/assign/overload1.html | 2 +- .../basic_datagram_socket/assign/overload2.html | 2 +- .../basic_datagram_socket/async_connect.html | 2 +- .../basic_datagram_socket/async_receive.html | 2 +- .../async_receive/overload1.html | 2 +- .../async_receive/overload2.html | 2 +- .../basic_datagram_socket/async_receive_from.html | 2 +- .../async_receive_from/overload1.html | 2 +- .../async_receive_from/overload2.html | 2 +- .../basic_datagram_socket/async_send.html | 2 +- .../async_send/overload1.html | 2 +- .../async_send/overload2.html | 2 +- .../basic_datagram_socket/async_send_to.html | 2 +- .../async_send_to/overload1.html | 2 +- .../async_send_to/overload2.html | 2 +- .../basic_datagram_socket/async_wait.html | 2 +- .../reference/basic_datagram_socket/at_mark.html | 2 +- .../basic_datagram_socket/at_mark/overload1.html | 2 +- .../basic_datagram_socket/at_mark/overload2.html | 2 +- .../reference/basic_datagram_socket/available.html | 2 +- .../basic_datagram_socket/available/overload1.html | 2 +- .../basic_datagram_socket/available/overload2.html | 2 +- .../basic_datagram_socket.html | 2 +- .../basic_datagram_socket/overload1.html | 2 +- .../basic_datagram_socket/overload2.html | 2 +- .../basic_datagram_socket/overload3.html | 2 +- .../basic_datagram_socket/overload4.html | 2 +- .../basic_datagram_socket/overload5.html | 2 +- .../basic_datagram_socket/overload6.html | 2 +- .../reference/basic_datagram_socket/bind.html | 2 +- .../basic_datagram_socket/bind/overload1.html | 2 +- .../basic_datagram_socket/bind/overload2.html | 2 +- .../reference/basic_datagram_socket/broadcast.html | 2 +- .../basic_datagram_socket/bytes_readable.html | 2 +- .../reference/basic_datagram_socket/cancel.html | 2 +- .../basic_datagram_socket/cancel/overload1.html | 2 +- .../basic_datagram_socket/cancel/overload2.html | 2 +- .../reference/basic_datagram_socket/close.html | 2 +- .../basic_datagram_socket/close/overload1.html | 2 +- .../basic_datagram_socket/close/overload2.html | 2 +- .../reference/basic_datagram_socket/connect.html | 2 +- .../basic_datagram_socket/connect/overload1.html | 2 +- .../basic_datagram_socket/connect/overload2.html | 2 +- .../reference/basic_datagram_socket/debug.html | 2 +- .../basic_datagram_socket/do_not_route.html | 2 +- .../enable_connection_aborted.html | 2 +- .../basic_datagram_socket/endpoint_type.html | 2 +- .../basic_datagram_socket/executor_type.html | 2 +- .../basic_datagram_socket/get_executor.html | 2 +- .../basic_datagram_socket/get_io_context.html | 2 +- .../basic_datagram_socket/get_io_service.html | 2 +- .../basic_datagram_socket/get_option.html | 2 +- .../get_option/overload1.html | 2 +- .../get_option/overload2.html | 2 +- .../basic_datagram_socket/io_control.html | 2 +- .../io_control/overload1.html | 2 +- .../io_control/overload2.html | 2 +- .../reference/basic_datagram_socket/is_open.html | 2 +- .../basic_datagram_socket/keep_alive.html | 2 +- .../reference/basic_datagram_socket/linger.html | 2 +- .../basic_datagram_socket/local_endpoint.html | 2 +- .../local_endpoint/overload1.html | 2 +- .../local_endpoint/overload2.html | 2 +- .../basic_datagram_socket/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../basic_datagram_socket/lowest_layer_type.html | 2 +- .../basic_datagram_socket/max_connections.html | 2 +- .../max_listen_connections.html | 2 +- .../message_do_not_route.html | 2 +- .../message_end_of_record.html | 2 +- .../basic_datagram_socket/message_flags.html | 2 +- .../basic_datagram_socket/message_out_of_band.html | 2 +- .../basic_datagram_socket/message_peek.html | 2 +- .../basic_datagram_socket/native_handle.html | 2 +- .../basic_datagram_socket/native_handle_type.html | 2 +- .../basic_datagram_socket/native_non_blocking.html | 2 +- .../native_non_blocking/overload1.html | 2 +- .../native_non_blocking/overload2.html | 2 +- .../native_non_blocking/overload3.html | 2 +- .../basic_datagram_socket/non_blocking.html | 2 +- .../non_blocking/overload1.html | 2 +- .../non_blocking/overload2.html | 2 +- .../non_blocking/overload3.html | 2 +- .../reference/basic_datagram_socket/open.html | 2 +- .../basic_datagram_socket/open/overload1.html | 2 +- .../basic_datagram_socket/open/overload2.html | 2 +- .../basic_datagram_socket/operator_eq_.html | 2 +- .../operator_eq_/overload1.html | 2 +- .../operator_eq_/overload2.html | 2 +- .../basic_datagram_socket/out_of_band_inline.html | 2 +- .../basic_datagram_socket/protocol_type.html | 2 +- .../reference/basic_datagram_socket/receive.html | 2 +- .../basic_datagram_socket/receive/overload1.html | 2 +- .../basic_datagram_socket/receive/overload2.html | 2 +- .../basic_datagram_socket/receive/overload3.html | 2 +- .../basic_datagram_socket/receive_buffer_size.html | 2 +- .../basic_datagram_socket/receive_from.html | 2 +- .../receive_from/overload1.html | 2 +- .../receive_from/overload2.html | 2 +- .../receive_from/overload3.html | 2 +- .../receive_low_watermark.html | 2 +- .../reference/basic_datagram_socket/release.html | 2 +- .../basic_datagram_socket/release/overload1.html | 2 +- .../basic_datagram_socket/release/overload2.html | 2 +- .../basic_datagram_socket/remote_endpoint.html | 2 +- .../remote_endpoint/overload1.html | 2 +- .../remote_endpoint/overload2.html | 2 +- .../basic_datagram_socket/reuse_address.html | 2 +- .../reference/basic_datagram_socket/send.html | 2 +- .../basic_datagram_socket/send/overload1.html | 2 +- .../basic_datagram_socket/send/overload2.html | 2 +- .../basic_datagram_socket/send/overload3.html | 2 +- .../basic_datagram_socket/send_buffer_size.html | 2 +- .../basic_datagram_socket/send_low_watermark.html | 2 +- .../reference/basic_datagram_socket/send_to.html | 2 +- .../basic_datagram_socket/send_to/overload1.html | 2 +- .../basic_datagram_socket/send_to/overload2.html | 2 +- .../basic_datagram_socket/send_to/overload3.html | 2 +- .../basic_datagram_socket/set_option.html | 2 +- .../set_option/overload1.html | 2 +- .../set_option/overload2.html | 2 +- .../reference/basic_datagram_socket/shutdown.html | 2 +- .../basic_datagram_socket/shutdown/overload1.html | 2 +- .../basic_datagram_socket/shutdown/overload2.html | 2 +- .../basic_datagram_socket/shutdown_type.html | 2 +- .../reference/basic_datagram_socket/wait.html | 2 +- .../basic_datagram_socket/wait/overload1.html | 2 +- .../basic_datagram_socket/wait/overload2.html | 2 +- .../reference/basic_datagram_socket/wait_type.html | 2 +- .../boost_asio/reference/basic_deadline_timer.html | 2 +- .../_basic_deadline_timer.html | 2 +- .../reference/basic_deadline_timer/async_wait.html | 2 +- .../basic_deadline_timer/basic_deadline_timer.html | 2 +- .../basic_deadline_timer/overload1.html | 2 +- .../basic_deadline_timer/overload2.html | 2 +- .../basic_deadline_timer/overload3.html | 2 +- .../basic_deadline_timer/overload4.html | 2 +- .../reference/basic_deadline_timer/cancel.html | 2 +- .../basic_deadline_timer/cancel/overload1.html | 2 +- .../basic_deadline_timer/cancel/overload2.html | 2 +- .../reference/basic_deadline_timer/cancel_one.html | 2 +- .../basic_deadline_timer/cancel_one/overload1.html | 2 +- .../basic_deadline_timer/cancel_one/overload2.html | 2 +- .../basic_deadline_timer/duration_type.html | 2 +- .../basic_deadline_timer/executor_type.html | 2 +- .../reference/basic_deadline_timer/expires_at.html | 2 +- .../basic_deadline_timer/expires_at/overload1.html | 2 +- .../basic_deadline_timer/expires_at/overload2.html | 2 +- .../basic_deadline_timer/expires_at/overload3.html | 2 +- .../basic_deadline_timer/expires_from_now.html | 2 +- .../expires_from_now/overload1.html | 2 +- .../expires_from_now/overload2.html | 2 +- .../expires_from_now/overload3.html | 2 +- .../basic_deadline_timer/get_executor.html | 2 +- .../basic_deadline_timer/get_io_context.html | 2 +- .../basic_deadline_timer/get_io_service.html | 2 +- .../basic_deadline_timer/operator_eq_.html | 2 +- .../reference/basic_deadline_timer/time_type.html | 2 +- .../basic_deadline_timer/traits_type.html | 2 +- .../reference/basic_deadline_timer/wait.html | 2 +- .../basic_deadline_timer/wait/overload1.html | 2 +- .../basic_deadline_timer/wait/overload2.html | 2 +- doc/html/boost_asio/reference/basic_io_object.html | 2 +- .../basic_io_object/_basic_io_object.html | 2 +- .../reference/basic_io_object/basic_io_object.html | 2 +- .../basic_io_object/basic_io_object/overload1.html | 2 +- .../basic_io_object/basic_io_object/overload2.html | 2 +- .../basic_io_object/basic_io_object/overload3.html | 2 +- .../reference/basic_io_object/executor_type.html | 2 +- .../reference/basic_io_object/get_executor.html | 2 +- .../basic_io_object/get_implementation.html | 2 +- .../get_implementation/overload1.html | 2 +- .../get_implementation/overload2.html | 2 +- .../reference/basic_io_object/get_io_context.html | 2 +- .../reference/basic_io_object/get_io_service.html | 2 +- .../reference/basic_io_object/get_service.html | 2 +- .../basic_io_object/get_service/overload1.html | 2 +- .../basic_io_object/get_service/overload2.html | 2 +- .../basic_io_object/implementation_type.html | 2 +- .../reference/basic_io_object/operator_eq_.html | 2 +- .../reference/basic_io_object/service_type.html | 2 +- .../boost_asio/reference/basic_raw_socket.html | 2 +- .../basic_raw_socket/_basic_raw_socket.html | 2 +- .../reference/basic_raw_socket/assign.html | 2 +- .../basic_raw_socket/assign/overload1.html | 2 +- .../basic_raw_socket/assign/overload2.html | 2 +- .../reference/basic_raw_socket/async_connect.html | 2 +- .../reference/basic_raw_socket/async_receive.html | 2 +- .../basic_raw_socket/async_receive/overload1.html | 2 +- .../basic_raw_socket/async_receive/overload2.html | 2 +- .../basic_raw_socket/async_receive_from.html | 2 +- .../async_receive_from/overload1.html | 2 +- .../async_receive_from/overload2.html | 2 +- .../reference/basic_raw_socket/async_send.html | 2 +- .../basic_raw_socket/async_send/overload1.html | 2 +- .../basic_raw_socket/async_send/overload2.html | 2 +- .../reference/basic_raw_socket/async_send_to.html | 2 +- .../basic_raw_socket/async_send_to/overload1.html | 2 +- .../basic_raw_socket/async_send_to/overload2.html | 2 +- .../reference/basic_raw_socket/async_wait.html | 2 +- .../reference/basic_raw_socket/at_mark.html | 2 +- .../basic_raw_socket/at_mark/overload1.html | 2 +- .../basic_raw_socket/at_mark/overload2.html | 2 +- .../reference/basic_raw_socket/available.html | 2 +- .../basic_raw_socket/available/overload1.html | 2 +- .../basic_raw_socket/available/overload2.html | 2 +- .../basic_raw_socket/basic_raw_socket.html | 2 +- .../basic_raw_socket/overload1.html | 2 +- .../basic_raw_socket/overload2.html | 2 +- .../basic_raw_socket/overload3.html | 2 +- .../basic_raw_socket/overload4.html | 2 +- .../basic_raw_socket/overload5.html | 2 +- .../basic_raw_socket/overload6.html | 2 +- .../reference/basic_raw_socket/bind.html | 2 +- .../reference/basic_raw_socket/bind/overload1.html | 2 +- .../reference/basic_raw_socket/bind/overload2.html | 2 +- .../reference/basic_raw_socket/broadcast.html | 2 +- .../reference/basic_raw_socket/bytes_readable.html | 2 +- .../reference/basic_raw_socket/cancel.html | 2 +- .../basic_raw_socket/cancel/overload1.html | 2 +- .../basic_raw_socket/cancel/overload2.html | 2 +- .../reference/basic_raw_socket/close.html | 2 +- .../basic_raw_socket/close/overload1.html | 2 +- .../basic_raw_socket/close/overload2.html | 2 +- .../reference/basic_raw_socket/connect.html | 2 +- .../basic_raw_socket/connect/overload1.html | 2 +- .../basic_raw_socket/connect/overload2.html | 2 +- .../reference/basic_raw_socket/debug.html | 2 +- .../reference/basic_raw_socket/do_not_route.html | 2 +- .../enable_connection_aborted.html | 2 +- .../reference/basic_raw_socket/endpoint_type.html | 2 +- .../reference/basic_raw_socket/executor_type.html | 2 +- .../reference/basic_raw_socket/get_executor.html | 2 +- .../reference/basic_raw_socket/get_io_context.html | 2 +- .../reference/basic_raw_socket/get_io_service.html | 2 +- .../reference/basic_raw_socket/get_option.html | 2 +- .../basic_raw_socket/get_option/overload1.html | 2 +- .../basic_raw_socket/get_option/overload2.html | 2 +- .../reference/basic_raw_socket/io_control.html | 2 +- .../basic_raw_socket/io_control/overload1.html | 2 +- .../basic_raw_socket/io_control/overload2.html | 2 +- .../reference/basic_raw_socket/is_open.html | 2 +- .../reference/basic_raw_socket/keep_alive.html | 2 +- .../reference/basic_raw_socket/linger.html | 2 +- .../reference/basic_raw_socket/local_endpoint.html | 2 +- .../basic_raw_socket/local_endpoint/overload1.html | 2 +- .../basic_raw_socket/local_endpoint/overload2.html | 2 +- .../reference/basic_raw_socket/lowest_layer.html | 2 +- .../basic_raw_socket/lowest_layer/overload1.html | 2 +- .../basic_raw_socket/lowest_layer/overload2.html | 2 +- .../basic_raw_socket/lowest_layer_type.html | 2 +- .../basic_raw_socket/max_connections.html | 2 +- .../basic_raw_socket/max_listen_connections.html | 2 +- .../basic_raw_socket/message_do_not_route.html | 2 +- .../basic_raw_socket/message_end_of_record.html | 2 +- .../reference/basic_raw_socket/message_flags.html | 2 +- .../basic_raw_socket/message_out_of_band.html | 2 +- .../reference/basic_raw_socket/message_peek.html | 2 +- .../reference/basic_raw_socket/native_handle.html | 2 +- .../basic_raw_socket/native_handle_type.html | 2 +- .../basic_raw_socket/native_non_blocking.html | 2 +- .../native_non_blocking/overload1.html | 2 +- .../native_non_blocking/overload2.html | 2 +- .../native_non_blocking/overload3.html | 2 +- .../reference/basic_raw_socket/non_blocking.html | 2 +- .../basic_raw_socket/non_blocking/overload1.html | 2 +- .../basic_raw_socket/non_blocking/overload2.html | 2 +- .../basic_raw_socket/non_blocking/overload3.html | 2 +- .../reference/basic_raw_socket/open.html | 2 +- .../reference/basic_raw_socket/open/overload1.html | 2 +- .../reference/basic_raw_socket/open/overload2.html | 2 +- .../reference/basic_raw_socket/operator_eq_.html | 2 +- .../basic_raw_socket/operator_eq_/overload1.html | 2 +- .../basic_raw_socket/operator_eq_/overload2.html | 2 +- .../basic_raw_socket/out_of_band_inline.html | 2 +- .../reference/basic_raw_socket/protocol_type.html | 2 +- .../reference/basic_raw_socket/receive.html | 2 +- .../basic_raw_socket/receive/overload1.html | 2 +- .../basic_raw_socket/receive/overload2.html | 2 +- .../basic_raw_socket/receive/overload3.html | 2 +- .../basic_raw_socket/receive_buffer_size.html | 2 +- .../reference/basic_raw_socket/receive_from.html | 2 +- .../basic_raw_socket/receive_from/overload1.html | 2 +- .../basic_raw_socket/receive_from/overload2.html | 2 +- .../basic_raw_socket/receive_from/overload3.html | 2 +- .../basic_raw_socket/receive_low_watermark.html | 2 +- .../reference/basic_raw_socket/release.html | 2 +- .../basic_raw_socket/release/overload1.html | 2 +- .../basic_raw_socket/release/overload2.html | 2 +- .../basic_raw_socket/remote_endpoint.html | 2 +- .../remote_endpoint/overload1.html | 2 +- .../remote_endpoint/overload2.html | 2 +- .../reference/basic_raw_socket/reuse_address.html | 2 +- .../reference/basic_raw_socket/send.html | 2 +- .../reference/basic_raw_socket/send/overload1.html | 2 +- .../reference/basic_raw_socket/send/overload2.html | 2 +- .../reference/basic_raw_socket/send/overload3.html | 2 +- .../basic_raw_socket/send_buffer_size.html | 2 +- .../basic_raw_socket/send_low_watermark.html | 2 +- .../reference/basic_raw_socket/send_to.html | 2 +- .../basic_raw_socket/send_to/overload1.html | 2 +- .../basic_raw_socket/send_to/overload2.html | 2 +- .../basic_raw_socket/send_to/overload3.html | 2 +- .../reference/basic_raw_socket/set_option.html | 2 +- .../basic_raw_socket/set_option/overload1.html | 2 +- .../basic_raw_socket/set_option/overload2.html | 2 +- .../reference/basic_raw_socket/shutdown.html | 2 +- .../basic_raw_socket/shutdown/overload1.html | 2 +- .../basic_raw_socket/shutdown/overload2.html | 2 +- .../reference/basic_raw_socket/shutdown_type.html | 2 +- .../reference/basic_raw_socket/wait.html | 2 +- .../reference/basic_raw_socket/wait/overload1.html | 2 +- .../reference/basic_raw_socket/wait/overload2.html | 2 +- .../reference/basic_raw_socket/wait_type.html | 2 +- .../reference/basic_seq_packet_socket.html | 2 +- .../_basic_seq_packet_socket.html | 2 +- .../reference/basic_seq_packet_socket/assign.html | 2 +- .../basic_seq_packet_socket/assign/overload1.html | 2 +- .../basic_seq_packet_socket/assign/overload2.html | 2 +- .../basic_seq_packet_socket/async_connect.html | 2 +- .../basic_seq_packet_socket/async_receive.html | 2 +- .../async_receive/overload1.html | 2 +- .../async_receive/overload2.html | 2 +- .../basic_seq_packet_socket/async_send.html | 2 +- .../basic_seq_packet_socket/async_wait.html | 2 +- .../reference/basic_seq_packet_socket/at_mark.html | 2 +- .../basic_seq_packet_socket/at_mark/overload1.html | 2 +- .../basic_seq_packet_socket/at_mark/overload2.html | 2 +- .../basic_seq_packet_socket/available.html | 2 +- .../available/overload1.html | 2 +- .../available/overload2.html | 2 +- .../basic_seq_packet_socket.html | 2 +- .../basic_seq_packet_socket/overload1.html | 2 +- .../basic_seq_packet_socket/overload2.html | 2 +- .../basic_seq_packet_socket/overload3.html | 2 +- .../basic_seq_packet_socket/overload4.html | 2 +- .../basic_seq_packet_socket/overload5.html | 2 +- .../basic_seq_packet_socket/overload6.html | 2 +- .../reference/basic_seq_packet_socket/bind.html | 2 +- .../basic_seq_packet_socket/bind/overload1.html | 2 +- .../basic_seq_packet_socket/bind/overload2.html | 2 +- .../basic_seq_packet_socket/broadcast.html | 2 +- .../basic_seq_packet_socket/bytes_readable.html | 2 +- .../reference/basic_seq_packet_socket/cancel.html | 2 +- .../basic_seq_packet_socket/cancel/overload1.html | 2 +- .../basic_seq_packet_socket/cancel/overload2.html | 2 +- .../reference/basic_seq_packet_socket/close.html | 2 +- .../basic_seq_packet_socket/close/overload1.html | 2 +- .../basic_seq_packet_socket/close/overload2.html | 2 +- .../reference/basic_seq_packet_socket/connect.html | 2 +- .../basic_seq_packet_socket/connect/overload1.html | 2 +- .../basic_seq_packet_socket/connect/overload2.html | 2 +- .../reference/basic_seq_packet_socket/debug.html | 2 +- .../basic_seq_packet_socket/do_not_route.html | 2 +- .../enable_connection_aborted.html | 2 +- .../basic_seq_packet_socket/endpoint_type.html | 2 +- .../basic_seq_packet_socket/executor_type.html | 2 +- .../basic_seq_packet_socket/get_executor.html | 2 +- .../basic_seq_packet_socket/get_io_context.html | 2 +- .../basic_seq_packet_socket/get_io_service.html | 2 +- .../basic_seq_packet_socket/get_option.html | 2 +- .../get_option/overload1.html | 2 +- .../get_option/overload2.html | 2 +- .../basic_seq_packet_socket/io_control.html | 2 +- .../io_control/overload1.html | 2 +- .../io_control/overload2.html | 2 +- .../reference/basic_seq_packet_socket/is_open.html | 2 +- .../basic_seq_packet_socket/keep_alive.html | 2 +- .../reference/basic_seq_packet_socket/linger.html | 2 +- .../basic_seq_packet_socket/local_endpoint.html | 2 +- .../local_endpoint/overload1.html | 2 +- .../local_endpoint/overload2.html | 2 +- .../basic_seq_packet_socket/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../basic_seq_packet_socket/lowest_layer_type.html | 2 +- .../basic_seq_packet_socket/max_connections.html | 2 +- .../max_listen_connections.html | 2 +- .../message_do_not_route.html | 2 +- .../message_end_of_record.html | 2 +- .../basic_seq_packet_socket/message_flags.html | 2 +- .../message_out_of_band.html | 2 +- .../basic_seq_packet_socket/message_peek.html | 2 +- .../basic_seq_packet_socket/native_handle.html | 2 +- .../native_handle_type.html | 2 +- .../native_non_blocking.html | 2 +- .../native_non_blocking/overload1.html | 2 +- .../native_non_blocking/overload2.html | 2 +- .../native_non_blocking/overload3.html | 2 +- .../basic_seq_packet_socket/non_blocking.html | 2 +- .../non_blocking/overload1.html | 2 +- .../non_blocking/overload2.html | 2 +- .../non_blocking/overload3.html | 2 +- .../reference/basic_seq_packet_socket/open.html | 2 +- .../basic_seq_packet_socket/open/overload1.html | 2 +- .../basic_seq_packet_socket/open/overload2.html | 2 +- .../basic_seq_packet_socket/operator_eq_.html | 2 +- .../operator_eq_/overload1.html | 2 +- .../operator_eq_/overload2.html | 2 +- .../out_of_band_inline.html | 2 +- .../basic_seq_packet_socket/protocol_type.html | 2 +- .../reference/basic_seq_packet_socket/receive.html | 2 +- .../basic_seq_packet_socket/receive/overload1.html | 2 +- .../basic_seq_packet_socket/receive/overload2.html | 2 +- .../basic_seq_packet_socket/receive/overload3.html | 2 +- .../receive_buffer_size.html | 2 +- .../receive_low_watermark.html | 2 +- .../reference/basic_seq_packet_socket/release.html | 2 +- .../basic_seq_packet_socket/release/overload1.html | 2 +- .../basic_seq_packet_socket/release/overload2.html | 2 +- .../basic_seq_packet_socket/remote_endpoint.html | 2 +- .../remote_endpoint/overload1.html | 2 +- .../remote_endpoint/overload2.html | 2 +- .../basic_seq_packet_socket/reuse_address.html | 2 +- .../reference/basic_seq_packet_socket/send.html | 2 +- .../basic_seq_packet_socket/send/overload1.html | 2 +- .../basic_seq_packet_socket/send/overload2.html | 2 +- .../basic_seq_packet_socket/send_buffer_size.html | 2 +- .../send_low_watermark.html | 2 +- .../basic_seq_packet_socket/set_option.html | 2 +- .../set_option/overload1.html | 2 +- .../set_option/overload2.html | 2 +- .../basic_seq_packet_socket/shutdown.html | 2 +- .../shutdown/overload1.html | 2 +- .../shutdown/overload2.html | 2 +- .../basic_seq_packet_socket/shutdown_type.html | 2 +- .../reference/basic_seq_packet_socket/wait.html | 2 +- .../basic_seq_packet_socket/wait/overload1.html | 2 +- .../basic_seq_packet_socket/wait/overload2.html | 2 +- .../basic_seq_packet_socket/wait_type.html | 2 +- doc/html/boost_asio/reference/basic_socket.html | 2 +- .../reference/basic_socket/_basic_socket.html | 2 +- .../boost_asio/reference/basic_socket/assign.html | 2 +- .../reference/basic_socket/assign/overload1.html | 2 +- .../reference/basic_socket/assign/overload2.html | 2 +- .../reference/basic_socket/async_connect.html | 2 +- .../reference/basic_socket/async_wait.html | 2 +- .../boost_asio/reference/basic_socket/at_mark.html | 2 +- .../reference/basic_socket/at_mark/overload1.html | 2 +- .../reference/basic_socket/at_mark/overload2.html | 2 +- .../reference/basic_socket/available.html | 2 +- .../basic_socket/available/overload1.html | 2 +- .../basic_socket/available/overload2.html | 2 +- .../reference/basic_socket/basic_socket.html | 2 +- .../basic_socket/basic_socket/overload1.html | 2 +- .../basic_socket/basic_socket/overload2.html | 2 +- .../basic_socket/basic_socket/overload3.html | 2 +- .../basic_socket/basic_socket/overload4.html | 2 +- .../basic_socket/basic_socket/overload5.html | 2 +- .../basic_socket/basic_socket/overload6.html | 2 +- .../boost_asio/reference/basic_socket/bind.html | 2 +- .../reference/basic_socket/bind/overload1.html | 2 +- .../reference/basic_socket/bind/overload2.html | 2 +- .../reference/basic_socket/broadcast.html | 2 +- .../reference/basic_socket/bytes_readable.html | 2 +- .../boost_asio/reference/basic_socket/cancel.html | 2 +- .../reference/basic_socket/cancel/overload1.html | 2 +- .../reference/basic_socket/cancel/overload2.html | 2 +- .../boost_asio/reference/basic_socket/close.html | 2 +- .../reference/basic_socket/close/overload1.html | 2 +- .../reference/basic_socket/close/overload2.html | 2 +- .../boost_asio/reference/basic_socket/connect.html | 2 +- .../reference/basic_socket/connect/overload1.html | 2 +- .../reference/basic_socket/connect/overload2.html | 2 +- .../boost_asio/reference/basic_socket/debug.html | 2 +- .../reference/basic_socket/do_not_route.html | 2 +- .../basic_socket/enable_connection_aborted.html | 2 +- .../reference/basic_socket/endpoint_type.html | 2 +- .../reference/basic_socket/executor_type.html | 2 +- .../reference/basic_socket/get_executor.html | 2 +- .../reference/basic_socket/get_io_context.html | 2 +- .../reference/basic_socket/get_io_service.html | 2 +- .../reference/basic_socket/get_option.html | 2 +- .../basic_socket/get_option/overload1.html | 2 +- .../basic_socket/get_option/overload2.html | 2 +- .../reference/basic_socket/io_control.html | 2 +- .../basic_socket/io_control/overload1.html | 2 +- .../basic_socket/io_control/overload2.html | 2 +- .../boost_asio/reference/basic_socket/is_open.html | 2 +- .../reference/basic_socket/keep_alive.html | 2 +- .../boost_asio/reference/basic_socket/linger.html | 2 +- .../reference/basic_socket/local_endpoint.html | 2 +- .../basic_socket/local_endpoint/overload1.html | 2 +- .../basic_socket/local_endpoint/overload2.html | 2 +- .../reference/basic_socket/lowest_layer.html | 2 +- .../basic_socket/lowest_layer/overload1.html | 2 +- .../basic_socket/lowest_layer/overload2.html | 2 +- .../reference/basic_socket/lowest_layer_type.html | 2 +- .../reference/basic_socket/max_connections.html | 2 +- .../basic_socket/max_listen_connections.html | 2 +- .../basic_socket/message_do_not_route.html | 2 +- .../basic_socket/message_end_of_record.html | 2 +- .../reference/basic_socket/message_flags.html | 2 +- .../basic_socket/message_out_of_band.html | 2 +- .../reference/basic_socket/message_peek.html | 2 +- .../reference/basic_socket/native_handle.html | 2 +- .../reference/basic_socket/native_handle_type.html | 2 +- .../basic_socket/native_non_blocking.html | 2 +- .../native_non_blocking/overload1.html | 2 +- .../native_non_blocking/overload2.html | 2 +- .../native_non_blocking/overload3.html | 2 +- .../reference/basic_socket/non_blocking.html | 2 +- .../basic_socket/non_blocking/overload1.html | 2 +- .../basic_socket/non_blocking/overload2.html | 2 +- .../basic_socket/non_blocking/overload3.html | 2 +- .../boost_asio/reference/basic_socket/open.html | 2 +- .../reference/basic_socket/open/overload1.html | 2 +- .../reference/basic_socket/open/overload2.html | 2 +- .../reference/basic_socket/operator_eq_.html | 2 +- .../basic_socket/operator_eq_/overload1.html | 2 +- .../basic_socket/operator_eq_/overload2.html | 2 +- .../reference/basic_socket/out_of_band_inline.html | 2 +- .../reference/basic_socket/protocol_type.html | 2 +- .../basic_socket/receive_buffer_size.html | 2 +- .../basic_socket/receive_low_watermark.html | 2 +- .../boost_asio/reference/basic_socket/release.html | 2 +- .../reference/basic_socket/release/overload1.html | 2 +- .../reference/basic_socket/release/overload2.html | 2 +- .../reference/basic_socket/remote_endpoint.html | 2 +- .../basic_socket/remote_endpoint/overload1.html | 2 +- .../basic_socket/remote_endpoint/overload2.html | 2 +- .../reference/basic_socket/reuse_address.html | 2 +- .../reference/basic_socket/send_buffer_size.html | 2 +- .../reference/basic_socket/send_low_watermark.html | 2 +- .../reference/basic_socket/set_option.html | 2 +- .../basic_socket/set_option/overload1.html | 2 +- .../basic_socket/set_option/overload2.html | 2 +- .../reference/basic_socket/shutdown.html | 2 +- .../reference/basic_socket/shutdown/overload1.html | 2 +- .../reference/basic_socket/shutdown/overload2.html | 2 +- .../reference/basic_socket/shutdown_type.html | 2 +- .../boost_asio/reference/basic_socket/wait.html | 2 +- .../reference/basic_socket/wait/overload1.html | 2 +- .../reference/basic_socket/wait/overload2.html | 2 +- .../reference/basic_socket/wait_type.html | 2 +- .../reference/basic_socket_acceptor.html | 2 +- .../_basic_socket_acceptor.html | 2 +- .../reference/basic_socket_acceptor/accept.html | 2 +- .../basic_socket_acceptor/accept/overload1.html | 2 +- .../basic_socket_acceptor/accept/overload10.html | 2 +- .../basic_socket_acceptor/accept/overload11.html | 2 +- .../basic_socket_acceptor/accept/overload12.html | 2 +- .../basic_socket_acceptor/accept/overload2.html | 2 +- .../basic_socket_acceptor/accept/overload3.html | 2 +- .../basic_socket_acceptor/accept/overload4.html | 2 +- .../basic_socket_acceptor/accept/overload5.html | 2 +- .../basic_socket_acceptor/accept/overload6.html | 2 +- .../basic_socket_acceptor/accept/overload7.html | 2 +- .../basic_socket_acceptor/accept/overload8.html | 2 +- .../basic_socket_acceptor/accept/overload9.html | 2 +- .../reference/basic_socket_acceptor/assign.html | 2 +- .../basic_socket_acceptor/assign/overload1.html | 2 +- .../basic_socket_acceptor/assign/overload2.html | 2 +- .../basic_socket_acceptor/async_accept.html | 2 +- .../async_accept/overload1.html | 2 +- .../async_accept/overload2.html | 2 +- .../async_accept/overload3.html | 2 +- .../async_accept/overload4.html | 2 +- .../async_accept/overload5.html | 2 +- .../async_accept/overload6.html | 2 +- .../basic_socket_acceptor/async_wait.html | 2 +- .../basic_socket_acceptor.html | 2 +- .../basic_socket_acceptor/overload1.html | 2 +- .../basic_socket_acceptor/overload2.html | 2 +- .../basic_socket_acceptor/overload3.html | 2 +- .../basic_socket_acceptor/overload4.html | 2 +- .../basic_socket_acceptor/overload5.html | 2 +- .../basic_socket_acceptor/overload6.html | 2 +- .../reference/basic_socket_acceptor/bind.html | 2 +- .../basic_socket_acceptor/bind/overload1.html | 2 +- .../basic_socket_acceptor/bind/overload2.html | 2 +- .../reference/basic_socket_acceptor/broadcast.html | 2 +- .../basic_socket_acceptor/bytes_readable.html | 2 +- .../reference/basic_socket_acceptor/cancel.html | 2 +- .../basic_socket_acceptor/cancel/overload1.html | 2 +- .../basic_socket_acceptor/cancel/overload2.html | 2 +- .../reference/basic_socket_acceptor/close.html | 2 +- .../basic_socket_acceptor/close/overload1.html | 2 +- .../basic_socket_acceptor/close/overload2.html | 2 +- .../reference/basic_socket_acceptor/debug.html | 2 +- .../basic_socket_acceptor/do_not_route.html | 2 +- .../enable_connection_aborted.html | 2 +- .../basic_socket_acceptor/endpoint_type.html | 2 +- .../basic_socket_acceptor/executor_type.html | 2 +- .../basic_socket_acceptor/get_executor.html | 2 +- .../basic_socket_acceptor/get_io_context.html | 2 +- .../basic_socket_acceptor/get_io_service.html | 2 +- .../basic_socket_acceptor/get_option.html | 6 +- .../get_option/overload1.html | 4 +- .../get_option/overload2.html | 4 +- .../basic_socket_acceptor/io_control.html | 2 +- .../io_control/overload1.html | 2 +- .../io_control/overload2.html | 2 +- .../reference/basic_socket_acceptor/is_open.html | 2 +- .../basic_socket_acceptor/keep_alive.html | 2 +- .../reference/basic_socket_acceptor/linger.html | 2 +- .../reference/basic_socket_acceptor/listen.html | 2 +- .../basic_socket_acceptor/listen/overload1.html | 2 +- .../basic_socket_acceptor/listen/overload2.html | 2 +- .../basic_socket_acceptor/local_endpoint.html | 2 +- .../local_endpoint/overload1.html | 2 +- .../local_endpoint/overload2.html | 2 +- .../basic_socket_acceptor/max_connections.html | 2 +- .../max_listen_connections.html | 2 +- .../message_do_not_route.html | 2 +- .../message_end_of_record.html | 2 +- .../basic_socket_acceptor/message_flags.html | 2 +- .../basic_socket_acceptor/message_out_of_band.html | 2 +- .../basic_socket_acceptor/message_peek.html | 2 +- .../basic_socket_acceptor/native_handle.html | 2 +- .../basic_socket_acceptor/native_handle_type.html | 2 +- .../basic_socket_acceptor/native_non_blocking.html | 2 +- .../native_non_blocking/overload1.html | 2 +- .../native_non_blocking/overload2.html | 2 +- .../native_non_blocking/overload3.html | 2 +- .../basic_socket_acceptor/non_blocking.html | 2 +- .../non_blocking/overload1.html | 2 +- .../non_blocking/overload2.html | 2 +- .../non_blocking/overload3.html | 2 +- .../reference/basic_socket_acceptor/open.html | 2 +- .../basic_socket_acceptor/open/overload1.html | 2 +- .../basic_socket_acceptor/open/overload2.html | 2 +- .../basic_socket_acceptor/operator_eq_.html | 2 +- .../operator_eq_/overload1.html | 2 +- .../operator_eq_/overload2.html | 2 +- .../basic_socket_acceptor/out_of_band_inline.html | 2 +- .../basic_socket_acceptor/protocol_type.html | 2 +- .../basic_socket_acceptor/receive_buffer_size.html | 2 +- .../receive_low_watermark.html | 2 +- .../reference/basic_socket_acceptor/release.html | 2 +- .../basic_socket_acceptor/release/overload1.html | 2 +- .../basic_socket_acceptor/release/overload2.html | 2 +- .../basic_socket_acceptor/reuse_address.html | 2 +- .../basic_socket_acceptor/send_buffer_size.html | 2 +- .../basic_socket_acceptor/send_low_watermark.html | 2 +- .../basic_socket_acceptor/set_option.html | 2 +- .../set_option/overload1.html | 2 +- .../set_option/overload2.html | 2 +- .../basic_socket_acceptor/shutdown_type.html | 2 +- .../reference/basic_socket_acceptor/wait.html | 2 +- .../basic_socket_acceptor/wait/overload1.html | 2 +- .../basic_socket_acceptor/wait/overload2.html | 2 +- .../reference/basic_socket_acceptor/wait_type.html | 2 +- .../reference/basic_socket_iostream.html | 2 +- .../basic_socket_iostream.html | 2 +- .../basic_socket_iostream/overload1.html | 2 +- .../basic_socket_iostream/overload2.html | 2 +- .../basic_socket_iostream/overload3.html | 2 +- .../basic_socket_iostream/overload4.html | 2 +- .../basic_socket_iostream/clock_type.html | 2 +- .../reference/basic_socket_iostream/close.html | 2 +- .../reference/basic_socket_iostream/connect.html | 2 +- .../reference/basic_socket_iostream/duration.html | 2 +- .../basic_socket_iostream/duration_type.html | 2 +- .../basic_socket_iostream/endpoint_type.html | 2 +- .../reference/basic_socket_iostream/error.html | 2 +- .../basic_socket_iostream/expires_after.html | 2 +- .../basic_socket_iostream/expires_at.html | 2 +- .../expires_at/overload1.html | 2 +- .../expires_at/overload2.html | 2 +- .../basic_socket_iostream/expires_from_now.html | 2 +- .../expires_from_now/overload1.html | 2 +- .../expires_from_now/overload2.html | 2 +- .../reference/basic_socket_iostream/expiry.html | 2 +- .../basic_socket_iostream/operator_eq_.html | 2 +- .../basic_socket_iostream/protocol_type.html | 2 +- .../reference/basic_socket_iostream/rdbuf.html | 2 +- .../reference/basic_socket_iostream/socket.html | 2 +- .../basic_socket_iostream/time_point.html | 2 +- .../reference/basic_socket_iostream/time_type.html | 2 +- .../reference/basic_socket_streambuf.html | 2 +- .../_basic_socket_streambuf.html | 2 +- .../basic_socket_streambuf.html | 2 +- .../basic_socket_streambuf/overload1.html | 2 +- .../basic_socket_streambuf/overload2.html | 2 +- .../basic_socket_streambuf/overload3.html | 2 +- .../basic_socket_streambuf/clock_type.html | 2 +- .../reference/basic_socket_streambuf/close.html | 2 +- .../reference/basic_socket_streambuf/connect.html | 2 +- .../basic_socket_streambuf/connect/overload1.html | 2 +- .../basic_socket_streambuf/connect/overload2.html | 2 +- .../reference/basic_socket_streambuf/duration.html | 2 +- .../basic_socket_streambuf/duration_type.html | 2 +- .../basic_socket_streambuf/endpoint_type.html | 2 +- .../reference/basic_socket_streambuf/error.html | 2 +- .../basic_socket_streambuf/expires_after.html | 2 +- .../basic_socket_streambuf/expires_at.html | 2 +- .../expires_at/overload1.html | 2 +- .../expires_at/overload2.html | 2 +- .../basic_socket_streambuf/expires_from_now.html | 2 +- .../expires_from_now/overload1.html | 2 +- .../expires_from_now/overload2.html | 2 +- .../reference/basic_socket_streambuf/expiry.html | 2 +- .../basic_socket_streambuf/operator_eq_.html | 2 +- .../reference/basic_socket_streambuf/overflow.html | 2 +- .../basic_socket_streambuf/protocol_type.html | 2 +- .../reference/basic_socket_streambuf/puberror.html | 2 +- .../reference/basic_socket_streambuf/setbuf.html | 2 +- .../reference/basic_socket_streambuf/socket.html | 2 +- .../reference/basic_socket_streambuf/sync.html | 2 +- .../basic_socket_streambuf/time_point.html | 2 +- .../basic_socket_streambuf/time_type.html | 2 +- .../basic_socket_streambuf/underflow.html | 2 +- .../boost_asio/reference/basic_stream_socket.html | 2 +- .../basic_stream_socket/_basic_stream_socket.html | 2 +- .../reference/basic_stream_socket/assign.html | 2 +- .../basic_stream_socket/assign/overload1.html | 2 +- .../basic_stream_socket/assign/overload2.html | 2 +- .../basic_stream_socket/async_connect.html | 2 +- .../basic_stream_socket/async_read_some.html | 2 +- .../basic_stream_socket/async_receive.html | 2 +- .../async_receive/overload1.html | 2 +- .../async_receive/overload2.html | 2 +- .../reference/basic_stream_socket/async_send.html | 2 +- .../basic_stream_socket/async_send/overload1.html | 2 +- .../basic_stream_socket/async_send/overload2.html | 2 +- .../reference/basic_stream_socket/async_wait.html | 2 +- .../basic_stream_socket/async_write_some.html | 2 +- .../reference/basic_stream_socket/at_mark.html | 2 +- .../basic_stream_socket/at_mark/overload1.html | 2 +- .../basic_stream_socket/at_mark/overload2.html | 2 +- .../reference/basic_stream_socket/available.html | 2 +- .../basic_stream_socket/available/overload1.html | 2 +- .../basic_stream_socket/available/overload2.html | 2 +- .../basic_stream_socket/basic_stream_socket.html | 2 +- .../basic_stream_socket/overload1.html | 2 +- .../basic_stream_socket/overload2.html | 2 +- .../basic_stream_socket/overload3.html | 2 +- .../basic_stream_socket/overload4.html | 2 +- .../basic_stream_socket/overload5.html | 2 +- .../basic_stream_socket/overload6.html | 2 +- .../reference/basic_stream_socket/bind.html | 2 +- .../basic_stream_socket/bind/overload1.html | 2 +- .../basic_stream_socket/bind/overload2.html | 2 +- .../reference/basic_stream_socket/broadcast.html | 2 +- .../basic_stream_socket/bytes_readable.html | 2 +- .../reference/basic_stream_socket/cancel.html | 2 +- .../basic_stream_socket/cancel/overload1.html | 2 +- .../basic_stream_socket/cancel/overload2.html | 2 +- .../reference/basic_stream_socket/close.html | 2 +- .../basic_stream_socket/close/overload1.html | 2 +- .../basic_stream_socket/close/overload2.html | 2 +- .../reference/basic_stream_socket/connect.html | 2 +- .../basic_stream_socket/connect/overload1.html | 2 +- .../basic_stream_socket/connect/overload2.html | 2 +- .../reference/basic_stream_socket/debug.html | 2 +- .../basic_stream_socket/do_not_route.html | 2 +- .../enable_connection_aborted.html | 2 +- .../basic_stream_socket/endpoint_type.html | 2 +- .../basic_stream_socket/executor_type.html | 2 +- .../basic_stream_socket/get_executor.html | 2 +- .../basic_stream_socket/get_io_context.html | 2 +- .../basic_stream_socket/get_io_service.html | 2 +- .../reference/basic_stream_socket/get_option.html | 2 +- .../basic_stream_socket/get_option/overload1.html | 2 +- .../basic_stream_socket/get_option/overload2.html | 2 +- .../reference/basic_stream_socket/io_control.html | 2 +- .../basic_stream_socket/io_control/overload1.html | 2 +- .../basic_stream_socket/io_control/overload2.html | 2 +- .../reference/basic_stream_socket/is_open.html | 2 +- .../reference/basic_stream_socket/keep_alive.html | 2 +- .../reference/basic_stream_socket/linger.html | 2 +- .../basic_stream_socket/local_endpoint.html | 2 +- .../local_endpoint/overload1.html | 2 +- .../local_endpoint/overload2.html | 2 +- .../basic_stream_socket/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../basic_stream_socket/lowest_layer_type.html | 2 +- .../basic_stream_socket/max_connections.html | 2 +- .../max_listen_connections.html | 2 +- .../basic_stream_socket/message_do_not_route.html | 2 +- .../basic_stream_socket/message_end_of_record.html | 2 +- .../basic_stream_socket/message_flags.html | 2 +- .../basic_stream_socket/message_out_of_band.html | 2 +- .../basic_stream_socket/message_peek.html | 2 +- .../basic_stream_socket/native_handle.html | 2 +- .../basic_stream_socket/native_handle_type.html | 2 +- .../basic_stream_socket/native_non_blocking.html | 2 +- .../native_non_blocking/overload1.html | 2 +- .../native_non_blocking/overload2.html | 2 +- .../native_non_blocking/overload3.html | 2 +- .../basic_stream_socket/non_blocking.html | 2 +- .../non_blocking/overload1.html | 2 +- .../non_blocking/overload2.html | 2 +- .../non_blocking/overload3.html | 2 +- .../reference/basic_stream_socket/open.html | 2 +- .../basic_stream_socket/open/overload1.html | 2 +- .../basic_stream_socket/open/overload2.html | 2 +- .../basic_stream_socket/operator_eq_.html | 2 +- .../operator_eq_/overload1.html | 2 +- .../operator_eq_/overload2.html | 2 +- .../basic_stream_socket/out_of_band_inline.html | 2 +- .../basic_stream_socket/protocol_type.html | 2 +- .../reference/basic_stream_socket/read_some.html | 2 +- .../basic_stream_socket/read_some/overload1.html | 2 +- .../basic_stream_socket/read_some/overload2.html | 2 +- .../reference/basic_stream_socket/receive.html | 2 +- .../basic_stream_socket/receive/overload1.html | 2 +- .../basic_stream_socket/receive/overload2.html | 2 +- .../basic_stream_socket/receive/overload3.html | 2 +- .../basic_stream_socket/receive_buffer_size.html | 2 +- .../basic_stream_socket/receive_low_watermark.html | 2 +- .../reference/basic_stream_socket/release.html | 2 +- .../basic_stream_socket/release/overload1.html | 2 +- .../basic_stream_socket/release/overload2.html | 2 +- .../basic_stream_socket/remote_endpoint.html | 2 +- .../remote_endpoint/overload1.html | 2 +- .../remote_endpoint/overload2.html | 2 +- .../basic_stream_socket/reuse_address.html | 2 +- .../reference/basic_stream_socket/send.html | 2 +- .../basic_stream_socket/send/overload1.html | 2 +- .../basic_stream_socket/send/overload2.html | 2 +- .../basic_stream_socket/send/overload3.html | 2 +- .../basic_stream_socket/send_buffer_size.html | 2 +- .../basic_stream_socket/send_low_watermark.html | 2 +- .../reference/basic_stream_socket/set_option.html | 2 +- .../basic_stream_socket/set_option/overload1.html | 2 +- .../basic_stream_socket/set_option/overload2.html | 2 +- .../reference/basic_stream_socket/shutdown.html | 2 +- .../basic_stream_socket/shutdown/overload1.html | 2 +- .../basic_stream_socket/shutdown/overload2.html | 2 +- .../basic_stream_socket/shutdown_type.html | 2 +- .../reference/basic_stream_socket/wait.html | 2 +- .../basic_stream_socket/wait/overload1.html | 2 +- .../basic_stream_socket/wait/overload2.html | 2 +- .../reference/basic_stream_socket/wait_type.html | 2 +- .../reference/basic_stream_socket/write_some.html | 2 +- .../basic_stream_socket/write_some/overload1.html | 2 +- .../basic_stream_socket/write_some/overload2.html | 2 +- doc/html/boost_asio/reference/basic_streambuf.html | 2 +- .../reference/basic_streambuf/basic_streambuf.html | 2 +- .../reference/basic_streambuf/capacity.html | 2 +- .../reference/basic_streambuf/commit.html | 2 +- .../basic_streambuf/const_buffers_type.html | 2 +- .../reference/basic_streambuf/consume.html | 2 +- .../boost_asio/reference/basic_streambuf/data.html | 2 +- .../reference/basic_streambuf/max_size.html | 2 +- .../basic_streambuf/mutable_buffers_type.html | 2 +- .../reference/basic_streambuf/overflow.html | 2 +- .../reference/basic_streambuf/prepare.html | 2 +- .../reference/basic_streambuf/reserve.html | 2 +- .../boost_asio/reference/basic_streambuf/size.html | 2 +- .../reference/basic_streambuf/underflow.html | 2 +- .../boost_asio/reference/basic_streambuf_ref.html | 2 +- .../basic_streambuf_ref/basic_streambuf_ref.html | 2 +- .../basic_streambuf_ref/overload1.html | 2 +- .../basic_streambuf_ref/overload2.html | 2 +- .../basic_streambuf_ref/overload3.html | 2 +- .../reference/basic_streambuf_ref/capacity.html | 2 +- .../reference/basic_streambuf_ref/commit.html | 2 +- .../basic_streambuf_ref/const_buffers_type.html | 2 +- .../reference/basic_streambuf_ref/consume.html | 2 +- .../reference/basic_streambuf_ref/data.html | 2 +- .../reference/basic_streambuf_ref/max_size.html | 2 +- .../basic_streambuf_ref/mutable_buffers_type.html | 2 +- .../reference/basic_streambuf_ref/prepare.html | 2 +- .../reference/basic_streambuf_ref/size.html | 2 +- .../boost_asio/reference/basic_waitable_timer.html | 2 +- .../_basic_waitable_timer.html | 2 +- .../reference/basic_waitable_timer/async_wait.html | 2 +- .../basic_waitable_timer/basic_waitable_timer.html | 2 +- .../basic_waitable_timer/overload1.html | 2 +- .../basic_waitable_timer/overload2.html | 2 +- .../basic_waitable_timer/overload3.html | 2 +- .../basic_waitable_timer/overload4.html | 2 +- .../reference/basic_waitable_timer/cancel.html | 2 +- .../basic_waitable_timer/cancel/overload1.html | 2 +- .../basic_waitable_timer/cancel/overload2.html | 2 +- .../reference/basic_waitable_timer/cancel_one.html | 2 +- .../basic_waitable_timer/cancel_one/overload1.html | 2 +- .../basic_waitable_timer/cancel_one/overload2.html | 2 +- .../reference/basic_waitable_timer/clock_type.html | 2 +- .../reference/basic_waitable_timer/duration.html | 2 +- .../basic_waitable_timer/executor_type.html | 2 +- .../basic_waitable_timer/expires_after.html | 2 +- .../reference/basic_waitable_timer/expires_at.html | 2 +- .../basic_waitable_timer/expires_at/overload1.html | 2 +- .../basic_waitable_timer/expires_at/overload2.html | 2 +- .../basic_waitable_timer/expires_at/overload3.html | 2 +- .../basic_waitable_timer/expires_from_now.html | 2 +- .../expires_from_now/overload1.html | 2 +- .../expires_from_now/overload2.html | 2 +- .../expires_from_now/overload3.html | 2 +- .../reference/basic_waitable_timer/expiry.html | 2 +- .../basic_waitable_timer/get_executor.html | 2 +- .../basic_waitable_timer/get_io_context.html | 2 +- .../basic_waitable_timer/get_io_service.html | 2 +- .../basic_waitable_timer/operator_eq_.html | 2 +- .../reference/basic_waitable_timer/time_point.html | 2 +- .../basic_waitable_timer/traits_type.html | 2 +- .../reference/basic_waitable_timer/wait.html | 2 +- .../basic_waitable_timer/wait/overload1.html | 2 +- .../basic_waitable_timer/wait/overload2.html | 2 +- .../boost_asio/reference/basic_yield_context.html | 2 +- .../basic_yield_context/basic_yield_context.html | 2 +- .../basic_yield_context/overload1.html | 2 +- .../basic_yield_context/overload2.html | 2 +- .../reference/basic_yield_context/callee_type.html | 2 +- .../reference/basic_yield_context/caller_type.html | 2 +- .../basic_yield_context/operator_lb__rb_.html | 2 +- doc/html/boost_asio/reference/bind_executor.html | 2 +- .../reference/bind_executor/overload1.html | 2 +- .../reference/bind_executor/overload2.html | 2 +- doc/html/boost_asio/reference/buffer.html | 2 +- .../boost_asio/reference/buffer/overload1.html | 2 +- .../boost_asio/reference/buffer/overload10.html | 2 +- .../boost_asio/reference/buffer/overload11.html | 2 +- .../boost_asio/reference/buffer/overload12.html | 2 +- .../boost_asio/reference/buffer/overload13.html | 2 +- .../boost_asio/reference/buffer/overload14.html | 2 +- .../boost_asio/reference/buffer/overload15.html | 2 +- .../boost_asio/reference/buffer/overload16.html | 2 +- .../boost_asio/reference/buffer/overload17.html | 2 +- .../boost_asio/reference/buffer/overload18.html | 2 +- .../boost_asio/reference/buffer/overload19.html | 2 +- .../boost_asio/reference/buffer/overload2.html | 2 +- .../boost_asio/reference/buffer/overload20.html | 2 +- .../boost_asio/reference/buffer/overload21.html | 2 +- .../boost_asio/reference/buffer/overload22.html | 2 +- .../boost_asio/reference/buffer/overload23.html | 2 +- .../boost_asio/reference/buffer/overload24.html | 2 +- .../boost_asio/reference/buffer/overload25.html | 2 +- .../boost_asio/reference/buffer/overload26.html | 2 +- .../boost_asio/reference/buffer/overload27.html | 2 +- .../boost_asio/reference/buffer/overload28.html | 2 +- .../boost_asio/reference/buffer/overload29.html | 2 +- .../boost_asio/reference/buffer/overload3.html | 2 +- .../boost_asio/reference/buffer/overload30.html | 2 +- .../boost_asio/reference/buffer/overload31.html | 2 +- .../boost_asio/reference/buffer/overload32.html | 2 +- .../boost_asio/reference/buffer/overload4.html | 2 +- .../boost_asio/reference/buffer/overload5.html | 2 +- .../boost_asio/reference/buffer/overload6.html | 2 +- .../boost_asio/reference/buffer/overload7.html | 2 +- .../boost_asio/reference/buffer/overload8.html | 2 +- .../boost_asio/reference/buffer/overload9.html | 2 +- doc/html/boost_asio/reference/buffer_cast.html | 2 +- .../reference/buffer_cast/overload1.html | 2 +- .../reference/buffer_cast/overload2.html | 2 +- doc/html/boost_asio/reference/buffer_copy.html | 2 +- .../reference/buffer_copy/overload1.html | 2 +- .../reference/buffer_copy/overload2.html | 2 +- .../reference/buffer_sequence_begin.html | 2 +- .../reference/buffer_sequence_begin/overload1.html | 2 +- .../reference/buffer_sequence_begin/overload2.html | 2 +- .../reference/buffer_sequence_begin/overload3.html | 2 +- .../reference/buffer_sequence_begin/overload4.html | 2 +- .../boost_asio/reference/buffer_sequence_end.html | 2 +- .../reference/buffer_sequence_end/overload1.html | 2 +- .../reference/buffer_sequence_end/overload2.html | 2 +- .../reference/buffer_sequence_end/overload3.html | 2 +- .../reference/buffer_sequence_end/overload4.html | 2 +- doc/html/boost_asio/reference/buffer_size.html | 2 +- .../boost_asio/reference/buffered_read_stream.html | 2 +- .../reference/buffered_read_stream/async_fill.html | 2 +- .../buffered_read_stream/async_read_some.html | 2 +- .../buffered_read_stream/async_write_some.html | 2 +- .../buffered_read_stream/buffered_read_stream.html | 2 +- .../buffered_read_stream/overload1.html | 2 +- .../buffered_read_stream/overload2.html | 2 +- .../reference/buffered_read_stream/close.html | 2 +- .../buffered_read_stream/close/overload1.html | 2 +- .../buffered_read_stream/close/overload2.html | 2 +- .../buffered_read_stream/default_buffer_size.html | 2 +- .../buffered_read_stream/executor_type.html | 2 +- .../reference/buffered_read_stream/fill.html | 2 +- .../buffered_read_stream/fill/overload1.html | 2 +- .../buffered_read_stream/fill/overload2.html | 2 +- .../buffered_read_stream/get_executor.html | 2 +- .../buffered_read_stream/get_io_context.html | 2 +- .../buffered_read_stream/get_io_service.html | 2 +- .../reference/buffered_read_stream/in_avail.html | 2 +- .../buffered_read_stream/in_avail/overload1.html | 2 +- .../buffered_read_stream/in_avail/overload2.html | 2 +- .../buffered_read_stream/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../buffered_read_stream/lowest_layer_type.html | 2 +- .../reference/buffered_read_stream/next_layer.html | 2 +- .../buffered_read_stream/next_layer_type.html | 2 +- .../reference/buffered_read_stream/peek.html | 2 +- .../buffered_read_stream/peek/overload1.html | 2 +- .../buffered_read_stream/peek/overload2.html | 2 +- .../reference/buffered_read_stream/read_some.html | 2 +- .../buffered_read_stream/read_some/overload1.html | 2 +- .../buffered_read_stream/read_some/overload2.html | 2 +- .../reference/buffered_read_stream/write_some.html | 2 +- .../buffered_read_stream/write_some/overload1.html | 2 +- .../buffered_read_stream/write_some/overload2.html | 2 +- doc/html/boost_asio/reference/buffered_stream.html | 2 +- .../reference/buffered_stream/async_fill.html | 2 +- .../reference/buffered_stream/async_flush.html | 2 +- .../reference/buffered_stream/async_read_some.html | 2 +- .../buffered_stream/async_write_some.html | 2 +- .../reference/buffered_stream/buffered_stream.html | 2 +- .../buffered_stream/buffered_stream/overload1.html | 2 +- .../buffered_stream/buffered_stream/overload2.html | 2 +- .../reference/buffered_stream/close.html | 2 +- .../reference/buffered_stream/close/overload1.html | 2 +- .../reference/buffered_stream/close/overload2.html | 2 +- .../reference/buffered_stream/executor_type.html | 2 +- .../boost_asio/reference/buffered_stream/fill.html | 2 +- .../reference/buffered_stream/fill/overload1.html | 2 +- .../reference/buffered_stream/fill/overload2.html | 2 +- .../reference/buffered_stream/flush.html | 2 +- .../reference/buffered_stream/flush/overload1.html | 2 +- .../reference/buffered_stream/flush/overload2.html | 2 +- .../reference/buffered_stream/get_executor.html | 2 +- .../reference/buffered_stream/get_io_context.html | 2 +- .../reference/buffered_stream/get_io_service.html | 2 +- .../reference/buffered_stream/in_avail.html | 2 +- .../buffered_stream/in_avail/overload1.html | 2 +- .../buffered_stream/in_avail/overload2.html | 2 +- .../reference/buffered_stream/lowest_layer.html | 2 +- .../buffered_stream/lowest_layer/overload1.html | 2 +- .../buffered_stream/lowest_layer/overload2.html | 2 +- .../buffered_stream/lowest_layer_type.html | 2 +- .../reference/buffered_stream/next_layer.html | 2 +- .../reference/buffered_stream/next_layer_type.html | 2 +- .../boost_asio/reference/buffered_stream/peek.html | 2 +- .../reference/buffered_stream/peek/overload1.html | 2 +- .../reference/buffered_stream/peek/overload2.html | 2 +- .../reference/buffered_stream/read_some.html | 2 +- .../buffered_stream/read_some/overload1.html | 2 +- .../buffered_stream/read_some/overload2.html | 2 +- .../reference/buffered_stream/write_some.html | 2 +- .../buffered_stream/write_some/overload1.html | 2 +- .../buffered_stream/write_some/overload2.html | 2 +- .../reference/buffered_write_stream.html | 2 +- .../buffered_write_stream/async_flush.html | 2 +- .../buffered_write_stream/async_read_some.html | 2 +- .../buffered_write_stream/async_write_some.html | 2 +- .../buffered_write_stream.html | 2 +- .../buffered_write_stream/overload1.html | 2 +- .../buffered_write_stream/overload2.html | 2 +- .../reference/buffered_write_stream/close.html | 2 +- .../buffered_write_stream/close/overload1.html | 2 +- .../buffered_write_stream/close/overload2.html | 2 +- .../buffered_write_stream/default_buffer_size.html | 2 +- .../buffered_write_stream/executor_type.html | 2 +- .../reference/buffered_write_stream/flush.html | 2 +- .../buffered_write_stream/flush/overload1.html | 2 +- .../buffered_write_stream/flush/overload2.html | 2 +- .../buffered_write_stream/get_executor.html | 2 +- .../buffered_write_stream/get_io_context.html | 2 +- .../buffered_write_stream/get_io_service.html | 2 +- .../reference/buffered_write_stream/in_avail.html | 2 +- .../buffered_write_stream/in_avail/overload1.html | 2 +- .../buffered_write_stream/in_avail/overload2.html | 2 +- .../buffered_write_stream/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../buffered_write_stream/lowest_layer_type.html | 2 +- .../buffered_write_stream/next_layer.html | 2 +- .../buffered_write_stream/next_layer_type.html | 2 +- .../reference/buffered_write_stream/peek.html | 2 +- .../buffered_write_stream/peek/overload1.html | 2 +- .../buffered_write_stream/peek/overload2.html | 2 +- .../reference/buffered_write_stream/read_some.html | 2 +- .../buffered_write_stream/read_some/overload1.html | 2 +- .../buffered_write_stream/read_some/overload2.html | 2 +- .../buffered_write_stream/write_some.html | 2 +- .../write_some/overload1.html | 2 +- .../write_some/overload2.html | 2 +- doc/html/boost_asio/reference/buffers_begin.html | 2 +- doc/html/boost_asio/reference/buffers_end.html | 2 +- .../boost_asio/reference/buffers_iterator.html | 2 +- .../reference/buffers_iterator/begin.html | 2 +- .../buffers_iterator/buffers_iterator.html | 2 +- .../buffers_iterator/difference_type.html | 2 +- .../boost_asio/reference/buffers_iterator/end.html | 2 +- .../buffers_iterator/iterator_category.html | 2 +- .../buffers_iterator/operator__star_.html | 2 +- .../buffers_iterator/operator_arrow_.html | 2 +- .../buffers_iterator/operator_eq__eq_.html | 2 +- .../reference/buffers_iterator/operator_gt_.html | 2 +- .../buffers_iterator/operator_gt__eq_.html | 2 +- .../buffers_iterator/operator_lb__rb_.html | 2 +- .../reference/buffers_iterator/operator_lt_.html | 2 +- .../buffers_iterator/operator_lt__eq_.html | 2 +- .../buffers_iterator/operator_minus_.html | 2 +- .../operator_minus_/overload1.html | 2 +- .../operator_minus_/overload2.html | 2 +- .../buffers_iterator/operator_minus__eq_.html | 2 +- .../buffers_iterator/operator_minus__minus_.html | 2 +- .../operator_minus__minus_/overload1.html | 2 +- .../operator_minus__minus_/overload2.html | 2 +- .../buffers_iterator/operator_not__eq_.html | 2 +- .../reference/buffers_iterator/operator_plus_.html | 2 +- .../buffers_iterator/operator_plus_/overload1.html | 2 +- .../buffers_iterator/operator_plus_/overload2.html | 2 +- .../buffers_iterator/operator_plus__eq_.html | 2 +- .../buffers_iterator/operator_plus__plus_.html | 2 +- .../operator_plus__plus_/overload1.html | 2 +- .../operator_plus__plus_/overload2.html | 2 +- .../reference/buffers_iterator/pointer.html | 2 +- .../reference/buffers_iterator/reference.html | 2 +- .../reference/buffers_iterator/value_type.html | 2 +- doc/html/boost_asio/reference/connect.html | 2 +- .../boost_asio/reference/connect/overload1.html | 2 +- .../boost_asio/reference/connect/overload10.html | 2 +- .../boost_asio/reference/connect/overload11.html | 2 +- .../boost_asio/reference/connect/overload12.html | 2 +- .../boost_asio/reference/connect/overload2.html | 2 +- .../boost_asio/reference/connect/overload3.html | 2 +- .../boost_asio/reference/connect/overload4.html | 2 +- .../boost_asio/reference/connect/overload5.html | 2 +- .../boost_asio/reference/connect/overload6.html | 2 +- .../boost_asio/reference/connect/overload7.html | 2 +- .../boost_asio/reference/connect/overload8.html | 2 +- .../boost_asio/reference/connect/overload9.html | 2 +- doc/html/boost_asio/reference/const_buffer.html | 2 +- .../reference/const_buffer/const_buffer.html | 2 +- .../const_buffer/const_buffer/overload1.html | 2 +- .../const_buffer/const_buffer/overload2.html | 2 +- .../const_buffer/const_buffer/overload3.html | 2 +- .../boost_asio/reference/const_buffer/data.html | 2 +- .../reference/const_buffer/operator_plus_.html | 2 +- .../const_buffer/operator_plus_/overload1.html | 2 +- .../const_buffer/operator_plus_/overload2.html | 2 +- .../reference/const_buffer/operator_plus__eq_.html | 2 +- .../boost_asio/reference/const_buffer/size.html | 2 +- doc/html/boost_asio/reference/const_buffers_1.html | 2 +- .../reference/const_buffers_1/begin.html | 2 +- .../reference/const_buffers_1/const_buffers_1.html | 2 +- .../const_buffers_1/const_buffers_1/overload1.html | 2 +- .../const_buffers_1/const_buffers_1/overload2.html | 2 +- .../reference/const_buffers_1/const_iterator.html | 2 +- .../boost_asio/reference/const_buffers_1/data.html | 2 +- .../boost_asio/reference/const_buffers_1/end.html | 2 +- .../reference/const_buffers_1/operator_plus_.html | 2 +- .../const_buffers_1/operator_plus_/overload1.html | 2 +- .../const_buffers_1/operator_plus_/overload2.html | 2 +- .../const_buffers_1/operator_plus__eq_.html | 2 +- .../boost_asio/reference/const_buffers_1/size.html | 2 +- .../reference/const_buffers_1/value_type.html | 2 +- doc/html/boost_asio/reference/coroutine.html | 2 +- .../boost_asio/reference/coroutine/coroutine.html | 2 +- .../boost_asio/reference/coroutine/is_child.html | 2 +- .../reference/coroutine/is_complete.html | 2 +- .../boost_asio/reference/coroutine/is_parent.html | 2 +- doc/html/boost_asio/reference/deadline_timer.html | 2 +- doc/html/boost_asio/reference/defer.html | 2 +- doc/html/boost_asio/reference/defer/overload1.html | 2 +- doc/html/boost_asio/reference/defer/overload2.html | 2 +- doc/html/boost_asio/reference/defer/overload3.html | 2 +- doc/html/boost_asio/reference/dispatch.html | 2 +- .../boost_asio/reference/dispatch/overload1.html | 2 +- .../boost_asio/reference/dispatch/overload2.html | 2 +- .../boost_asio/reference/dispatch/overload3.html | 2 +- doc/html/boost_asio/reference/dynamic_buffer.html | 2 +- .../reference/dynamic_buffer/overload1.html | 2 +- .../reference/dynamic_buffer/overload2.html | 2 +- .../reference/dynamic_buffer/overload3.html | 2 +- .../reference/dynamic_buffer/overload4.html | 2 +- .../reference/dynamic_string_buffer.html | 2 +- .../reference/dynamic_string_buffer/capacity.html | 2 +- .../reference/dynamic_string_buffer/commit.html | 2 +- .../dynamic_string_buffer/const_buffers_type.html | 2 +- .../reference/dynamic_string_buffer/consume.html | 2 +- .../reference/dynamic_string_buffer/data.html | 2 +- .../dynamic_string_buffer.html | 2 +- .../dynamic_string_buffer/overload1.html | 2 +- .../dynamic_string_buffer/overload2.html | 2 +- .../reference/dynamic_string_buffer/max_size.html | 2 +- .../mutable_buffers_type.html | 2 +- .../reference/dynamic_string_buffer/prepare.html | 2 +- .../reference/dynamic_string_buffer/size.html | 2 +- .../reference/dynamic_vector_buffer.html | 2 +- .../reference/dynamic_vector_buffer/capacity.html | 2 +- .../reference/dynamic_vector_buffer/commit.html | 2 +- .../dynamic_vector_buffer/const_buffers_type.html | 2 +- .../reference/dynamic_vector_buffer/consume.html | 2 +- .../reference/dynamic_vector_buffer/data.html | 2 +- .../dynamic_vector_buffer.html | 2 +- .../dynamic_vector_buffer/overload1.html | 2 +- .../dynamic_vector_buffer/overload2.html | 2 +- .../reference/dynamic_vector_buffer/max_size.html | 2 +- .../mutable_buffers_type.html | 2 +- .../reference/dynamic_vector_buffer/prepare.html | 2 +- .../reference/dynamic_vector_buffer/size.html | 2 +- .../reference/error__addrinfo_category.html | 2 +- .../reference/error__addrinfo_errors.html | 2 +- .../boost_asio/reference/error__basic_errors.html | 2 +- .../reference/error__get_addrinfo_category.html | 2 +- .../reference/error__get_misc_category.html | 2 +- .../reference/error__get_netdb_category.html | 2 +- .../reference/error__get_ssl_category.html | 2 +- .../reference/error__get_system_category.html | 2 +- .../reference/error__make_error_code.html | 2 +- .../error__make_error_code/overload1.html | 2 +- .../error__make_error_code/overload2.html | 2 +- .../error__make_error_code/overload3.html | 2 +- .../error__make_error_code/overload4.html | 2 +- .../error__make_error_code/overload5.html | 2 +- .../boost_asio/reference/error__misc_category.html | 2 +- .../boost_asio/reference/error__misc_errors.html | 2 +- .../reference/error__netdb_category.html | 2 +- .../boost_asio/reference/error__netdb_errors.html | 2 +- .../boost_asio/reference/error__ssl_category.html | 2 +- .../boost_asio/reference/error__ssl_errors.html | 2 +- .../reference/error__system_category.html | 2 +- .../boost_asio/reference/execution_context.html | 2 +- .../execution_context/_execution_context.html | 2 +- .../reference/execution_context/add_service.html | 2 +- .../reference/execution_context/destroy.html | 2 +- .../execution_context/execution_context.html | 2 +- .../reference/execution_context/fork_event.html | 2 +- .../reference/execution_context/has_service.html | 2 +- .../reference/execution_context/make_service.html | 2 +- .../reference/execution_context/notify_fork.html | 2 +- .../reference/execution_context/shutdown.html | 2 +- .../reference/execution_context/use_service.html | 2 +- .../execution_context/use_service/overload1.html | 2 +- .../execution_context/use_service/overload2.html | 2 +- .../reference/execution_context__id.html | 2 +- .../reference/execution_context__id/id.html | 2 +- .../reference/execution_context__service.html | 2 +- .../execution_context__service/_service.html | 2 +- .../execution_context__service/context.html | 2 +- .../execution_context__service/notify_fork.html | 2 +- .../execution_context__service/service.html | 2 +- .../execution_context__service/shutdown.html | 2 +- doc/html/boost_asio/reference/executor.html | 2 +- .../boost_asio/reference/executor/_executor.html | 2 +- .../boost_asio/reference/executor/context.html | 2 +- doc/html/boost_asio/reference/executor/defer.html | 2 +- .../boost_asio/reference/executor/dispatch.html | 2 +- .../boost_asio/reference/executor/executor.html | 2 +- .../reference/executor/executor/overload1.html | 2 +- .../reference/executor/executor/overload2.html | 2 +- .../reference/executor/executor/overload3.html | 2 +- .../reference/executor/executor/overload4.html | 2 +- .../reference/executor/executor/overload5.html | 2 +- .../reference/executor/executor/overload6.html | 2 +- .../reference/executor/on_work_finished.html | 2 +- .../reference/executor/on_work_started.html | 2 +- .../reference/executor/operator_eq_.html | 2 +- .../reference/executor/operator_eq_/overload1.html | 2 +- .../reference/executor/operator_eq_/overload2.html | 2 +- .../reference/executor/operator_eq_/overload3.html | 2 +- .../reference/executor/operator_eq_/overload4.html | 2 +- .../reference/executor/operator_eq__eq_.html | 2 +- .../reference/executor/operator_not__eq_.html | 2 +- .../executor/operator_unspecified_bool_type.html | 2 +- doc/html/boost_asio/reference/executor/post.html | 2 +- doc/html/boost_asio/reference/executor/target.html | 2 +- .../reference/executor/target/overload1.html | 2 +- .../reference/executor/target/overload2.html | 2 +- .../boost_asio/reference/executor/target_type.html | 2 +- .../reference/executor/unspecified_bool_true.html | 2 +- .../reference/executor/unspecified_bool_type.html | 2 +- .../executor__unspecified_bool_type_t.html | 2 +- doc/html/boost_asio/reference/executor_arg.html | 2 +- doc/html/boost_asio/reference/executor_arg_t.html | 2 +- .../reference/executor_arg_t/executor_arg_t.html | 2 +- doc/html/boost_asio/reference/executor_binder.html | 2 +- .../executor_binder/_executor_binder.html | 2 +- .../reference/executor_binder/argument_type.html | 2 +- .../reference/executor_binder/executor_binder.html | 2 +- .../executor_binder/executor_binder/overload1.html | 2 +- .../executor_binder/executor_binder/overload2.html | 2 +- .../executor_binder/executor_binder/overload3.html | 2 +- .../executor_binder/executor_binder/overload4.html | 2 +- .../executor_binder/executor_binder/overload5.html | 2 +- .../executor_binder/executor_binder/overload6.html | 2 +- .../executor_binder/executor_binder/overload7.html | 2 +- .../executor_binder/executor_binder/overload8.html | 2 +- .../executor_binder/executor_binder/overload9.html | 2 +- .../reference/executor_binder/executor_type.html | 2 +- .../executor_binder/first_argument_type.html | 2 +- .../boost_asio/reference/executor_binder/get.html | 2 +- .../reference/executor_binder/get/overload1.html | 2 +- .../reference/executor_binder/get/overload2.html | 2 +- .../reference/executor_binder/get_executor.html | 2 +- .../executor_binder/operator_lp__rp_.html | 2 +- .../operator_lp__rp_/overload1.html | 2 +- .../operator_lp__rp_/overload2.html | 2 +- .../reference/executor_binder/result_type.html | 2 +- .../executor_binder/second_argument_type.html | 2 +- .../reference/executor_binder/target_type.html | 2 +- .../boost_asio/reference/executor_work_guard.html | 2 +- .../executor_work_guard/_executor_work_guard.html | 8 +- .../executor_work_guard/executor_type.html | 2 +- .../executor_work_guard/executor_work_guard.html | 2 +- .../executor_work_guard/overload1.html | 2 +- .../executor_work_guard/overload2.html | 2 +- .../executor_work_guard/overload3.html | 2 +- .../executor_work_guard/get_executor.html | 2 +- .../reference/executor_work_guard/owns_work.html | 2 +- .../reference/executor_work_guard/reset.html | 2 +- .../reference/experimental__await_token.html | 164 + .../experimental__await_token/await_token.html | 59 + .../await_token/overload1.html | 50 + .../await_token/overload2.html | 50 + .../experimental__await_token/executor_type.html | 60 + .../experimental__await_token/get_executor.html | 50 + .../reference/experimental__awaitable.html | 158 + .../experimental__awaitable/_awaitable.html | 49 + .../experimental__awaitable/awaitable.html | 51 + .../experimental__awaitable/executor_type.html | 60 + .../experimental__awaitable/value_type.html | 60 + .../reference/experimental__co_spawn.html | 90 + .../experimental__co_spawn/overload1.html | 57 + .../experimental__co_spawn/overload2.html | 57 + .../experimental__co_spawn/overload3.html | 56 + .../reference/experimental__detached.html | 64 + .../reference/experimental__detached_t.html | 104 + .../experimental__detached_t/detached_t.html | 49 + .../reference/experimental__redirect_error.html | 64 + .../reference/experimental__redirect_error_t.html | 144 + .../experimental__redirect_error_t/ec_.html | 48 + .../redirect_error_t.html | 53 + .../experimental__redirect_error_t/token_.html | 48 + .../experimental__this_coro__executor.html | 60 + .../experimental__this_coro__executor_t.html | 58 + .../reference/experimental__this_coro__token.html | 60 + .../experimental__this_coro__token_t.html | 58 + .../reference/generic__basic_endpoint.html | 8 +- .../generic__basic_endpoint/basic_endpoint.html | 2 +- .../basic_endpoint/overload1.html | 2 +- .../basic_endpoint/overload2.html | 2 +- .../basic_endpoint/overload3.html | 2 +- .../basic_endpoint/overload4.html | 2 +- .../generic__basic_endpoint/capacity.html | 2 +- .../reference/generic__basic_endpoint/data.html | 2 +- .../generic__basic_endpoint/data/overload1.html | 2 +- .../generic__basic_endpoint/data/overload2.html | 2 +- .../generic__basic_endpoint/data_type.html | 2 +- .../generic__basic_endpoint/operator_eq_.html | 2 +- .../generic__basic_endpoint/operator_eq__eq_.html | 2 +- .../generic__basic_endpoint/operator_gt_.html | 2 +- .../generic__basic_endpoint/operator_gt__eq_.html | 2 +- .../generic__basic_endpoint/operator_lt_.html | 2 +- .../generic__basic_endpoint/operator_lt__eq_.html | 2 +- .../generic__basic_endpoint/operator_not__eq_.html | 2 +- .../generic__basic_endpoint/protocol.html | 2 +- .../generic__basic_endpoint/protocol_type.html | 2 +- .../reference/generic__basic_endpoint/resize.html | 2 +- .../reference/generic__basic_endpoint/size.html | 2 +- .../reference/generic__datagram_protocol.html | 2 +- .../datagram_protocol.html | 2 +- .../datagram_protocol/overload1.html | 2 +- .../datagram_protocol/overload2.html | 2 +- .../generic__datagram_protocol/endpoint.html | 2 +- .../generic__datagram_protocol/family.html | 2 +- .../operator_eq__eq_.html | 2 +- .../operator_not__eq_.html | 2 +- .../generic__datagram_protocol/protocol.html | 2 +- .../generic__datagram_protocol/socket.html | 2 +- .../reference/generic__datagram_protocol/type.html | 2 +- .../reference/generic__raw_protocol.html | 2 +- .../reference/generic__raw_protocol/endpoint.html | 2 +- .../reference/generic__raw_protocol/family.html | 2 +- .../generic__raw_protocol/operator_eq__eq_.html | 2 +- .../generic__raw_protocol/operator_not__eq_.html | 2 +- .../reference/generic__raw_protocol/protocol.html | 2 +- .../generic__raw_protocol/raw_protocol.html | 2 +- .../raw_protocol/overload1.html | 2 +- .../raw_protocol/overload2.html | 2 +- .../reference/generic__raw_protocol/socket.html | 2 +- .../reference/generic__raw_protocol/type.html | 2 +- .../reference/generic__seq_packet_protocol.html | 2 +- .../generic__seq_packet_protocol/endpoint.html | 2 +- .../generic__seq_packet_protocol/family.html | 2 +- .../operator_eq__eq_.html | 2 +- .../operator_not__eq_.html | 2 +- .../generic__seq_packet_protocol/protocol.html | 2 +- .../seq_packet_protocol.html | 2 +- .../seq_packet_protocol/overload1.html | 2 +- .../seq_packet_protocol/overload2.html | 2 +- .../generic__seq_packet_protocol/socket.html | 2 +- .../generic__seq_packet_protocol/type.html | 2 +- .../reference/generic__stream_protocol.html | 2 +- .../generic__stream_protocol/endpoint.html | 2 +- .../reference/generic__stream_protocol/family.html | 2 +- .../generic__stream_protocol/iostream.html | 2 +- .../generic__stream_protocol/operator_eq__eq_.html | 2 +- .../operator_not__eq_.html | 2 +- .../generic__stream_protocol/protocol.html | 2 +- .../reference/generic__stream_protocol/socket.html | 2 +- .../generic__stream_protocol/stream_protocol.html | 2 +- .../stream_protocol/overload1.html | 2 +- .../stream_protocol/overload2.html | 2 +- .../reference/generic__stream_protocol/type.html | 2 +- .../reference/get_associated_allocator.html | 2 +- .../get_associated_allocator/overload1.html | 2 +- .../get_associated_allocator/overload2.html | 2 +- .../reference/get_associated_executor.html | 2 +- .../get_associated_executor/overload1.html | 2 +- .../get_associated_executor/overload2.html | 2 +- .../get_associated_executor/overload3.html | 2 +- doc/html/boost_asio/reference/handler_type.html | 2 +- .../boost_asio/reference/handler_type/type.html | 2 +- doc/html/boost_asio/reference/has_service.html | 2 +- .../reference/high_resolution_timer.html | 2 +- .../reference/invalid_service_owner.html | 2 +- .../invalid_service_owner.html | 2 +- doc/html/boost_asio/reference/io_context.html | 2 +- .../reference/io_context/_io_context.html | 2 +- .../reference/io_context/add_service.html | 2 +- .../reference/io_context/count_type.html | 2 +- .../boost_asio/reference/io_context/destroy.html | 2 +- .../boost_asio/reference/io_context/dispatch.html | 6 +- .../reference/io_context/fork_event.html | 2 +- .../reference/io_context/get_executor.html | 2 +- .../reference/io_context/has_service.html | 2 +- .../reference/io_context/io_context.html | 2 +- .../reference/io_context/io_context/overload1.html | 2 +- .../reference/io_context/io_context/overload2.html | 2 +- .../reference/io_context/make_service.html | 2 +- .../reference/io_context/notify_fork.html | 2 +- doc/html/boost_asio/reference/io_context/poll.html | 2 +- .../reference/io_context/poll/overload1.html | 2 +- .../reference/io_context/poll/overload2.html | 2 +- .../boost_asio/reference/io_context/poll_one.html | 2 +- .../reference/io_context/poll_one/overload1.html | 2 +- .../reference/io_context/poll_one/overload2.html | 2 +- doc/html/boost_asio/reference/io_context/post.html | 6 +- .../boost_asio/reference/io_context/reset.html | 2 +- .../boost_asio/reference/io_context/restart.html | 2 +- doc/html/boost_asio/reference/io_context/run.html | 2 +- .../reference/io_context/run/overload1.html | 2 +- .../reference/io_context/run/overload2.html | 2 +- .../boost_asio/reference/io_context/run_for.html | 2 +- .../boost_asio/reference/io_context/run_one.html | 2 +- .../reference/io_context/run_one/overload1.html | 2 +- .../reference/io_context/run_one/overload2.html | 2 +- .../reference/io_context/run_one_for.html | 2 +- .../reference/io_context/run_one_until.html | 2 +- .../boost_asio/reference/io_context/run_until.html | 2 +- .../boost_asio/reference/io_context/shutdown.html | 2 +- doc/html/boost_asio/reference/io_context/stop.html | 2 +- .../boost_asio/reference/io_context/stopped.html | 2 +- .../reference/io_context/use_service.html | 2 +- .../io_context/use_service/overload1.html | 2 +- .../io_context/use_service/overload2.html | 2 +- doc/html/boost_asio/reference/io_context/wrap.html | 2 +- .../reference/io_context__executor_type.html | 2 +- .../io_context__executor_type/context.html | 2 +- .../reference/io_context__executor_type/defer.html | 2 +- .../io_context__executor_type/dispatch.html | 2 +- .../on_work_finished.html | 2 +- .../io_context__executor_type/on_work_started.html | 2 +- .../operator_eq__eq_.html | 2 +- .../operator_not__eq_.html | 2 +- .../reference/io_context__executor_type/post.html | 2 +- .../running_in_this_thread.html | 2 +- .../boost_asio/reference/io_context__service.html | 2 +- .../reference/io_context__service/_service.html | 2 +- .../io_context__service/get_io_context.html | 2 +- .../io_context__service/get_io_service.html | 2 +- .../reference/io_context__service/service.html | 2 +- .../boost_asio/reference/io_context__strand.html | 2 +- .../reference/io_context__strand/_strand.html | 2 +- .../reference/io_context__strand/context.html | 2 +- .../reference/io_context__strand/defer.html | 2 +- .../reference/io_context__strand/dispatch.html | 6 +- .../io_context__strand/dispatch/overload1.html | 2 +- .../io_context__strand/dispatch/overload2.html | 6 +- .../io_context__strand/get_io_context.html | 2 +- .../io_context__strand/get_io_service.html | 2 +- .../io_context__strand/on_work_finished.html | 2 +- .../io_context__strand/on_work_started.html | 2 +- .../io_context__strand/operator_eq__eq_.html | 2 +- .../io_context__strand/operator_not__eq_.html | 2 +- .../reference/io_context__strand/post.html | 6 +- .../io_context__strand/post/overload1.html | 2 +- .../io_context__strand/post/overload2.html | 6 +- .../io_context__strand/running_in_this_thread.html | 2 +- .../reference/io_context__strand/strand.html | 2 +- .../reference/io_context__strand/wrap.html | 2 +- .../boost_asio/reference/io_context__work.html | 2 +- .../reference/io_context__work/_work.html | 2 +- .../reference/io_context__work/get_io_context.html | 2 +- .../reference/io_context__work/get_io_service.html | 2 +- .../reference/io_context__work/work.html | 2 +- .../reference/io_context__work/work/overload1.html | 2 +- .../reference/io_context__work/work/overload2.html | 2 +- doc/html/boost_asio/reference/io_service.html | 2 +- doc/html/boost_asio/reference/ip__address.html | 2 +- .../boost_asio/reference/ip__address/address.html | 2 +- .../reference/ip__address/address/overload1.html | 2 +- .../reference/ip__address/address/overload2.html | 2 +- .../reference/ip__address/address/overload3.html | 2 +- .../reference/ip__address/address/overload4.html | 2 +- .../reference/ip__address/from_string.html | 2 +- .../ip__address/from_string/overload1.html | 2 +- .../ip__address/from_string/overload2.html | 2 +- .../ip__address/from_string/overload3.html | 2 +- .../ip__address/from_string/overload4.html | 2 +- .../reference/ip__address/is_loopback.html | 2 +- .../reference/ip__address/is_multicast.html | 2 +- .../reference/ip__address/is_unspecified.html | 2 +- .../boost_asio/reference/ip__address/is_v4.html | 2 +- .../boost_asio/reference/ip__address/is_v6.html | 2 +- .../reference/ip__address/make_address.html | 2 +- .../ip__address/make_address/overload1.html | 2 +- .../ip__address/make_address/overload2.html | 2 +- .../ip__address/make_address/overload3.html | 2 +- .../ip__address/make_address/overload4.html | 2 +- .../ip__address/make_address/overload5.html | 2 +- .../ip__address/make_address/overload6.html | 2 +- .../reference/ip__address/operator_eq_.html | 2 +- .../ip__address/operator_eq_/overload1.html | 2 +- .../ip__address/operator_eq_/overload2.html | 2 +- .../ip__address/operator_eq_/overload3.html | 2 +- .../reference/ip__address/operator_eq__eq_.html | 2 +- .../reference/ip__address/operator_gt_.html | 2 +- .../reference/ip__address/operator_gt__eq_.html | 2 +- .../reference/ip__address/operator_lt_.html | 2 +- .../reference/ip__address/operator_lt__eq_.html | 2 +- .../reference/ip__address/operator_lt__lt_.html | 2 +- .../reference/ip__address/operator_not__eq_.html | 2 +- .../reference/ip__address/to_string.html | 2 +- .../reference/ip__address/to_string/overload1.html | 2 +- .../reference/ip__address/to_string/overload2.html | 2 +- .../boost_asio/reference/ip__address/to_v4.html | 2 +- .../boost_asio/reference/ip__address/to_v6.html | 2 +- doc/html/boost_asio/reference/ip__address_v4.html | 2 +- .../reference/ip__address_v4/address_v4.html | 2 +- .../ip__address_v4/address_v4/overload1.html | 2 +- .../ip__address_v4/address_v4/overload2.html | 2 +- .../ip__address_v4/address_v4/overload3.html | 2 +- .../ip__address_v4/address_v4/overload4.html | 2 +- .../boost_asio/reference/ip__address_v4/any.html | 2 +- .../reference/ip__address_v4/broadcast.html | 2 +- .../ip__address_v4/broadcast/overload1.html | 2 +- .../ip__address_v4/broadcast/overload2.html | 2 +- .../reference/ip__address_v4/bytes_type.html | 2 +- .../reference/ip__address_v4/from_string.html | 2 +- .../ip__address_v4/from_string/overload1.html | 2 +- .../ip__address_v4/from_string/overload2.html | 2 +- .../ip__address_v4/from_string/overload3.html | 2 +- .../ip__address_v4/from_string/overload4.html | 2 +- .../reference/ip__address_v4/is_class_a.html | 2 +- .../reference/ip__address_v4/is_class_b.html | 2 +- .../reference/ip__address_v4/is_class_c.html | 2 +- .../reference/ip__address_v4/is_loopback.html | 2 +- .../reference/ip__address_v4/is_multicast.html | 2 +- .../reference/ip__address_v4/is_unspecified.html | 2 +- .../reference/ip__address_v4/loopback.html | 2 +- .../reference/ip__address_v4/make_address_v4.html | 2 +- .../ip__address_v4/make_address_v4/overload1.html | 2 +- .../ip__address_v4/make_address_v4/overload2.html | 2 +- .../ip__address_v4/make_address_v4/overload3.html | 2 +- .../ip__address_v4/make_address_v4/overload4.html | 2 +- .../ip__address_v4/make_address_v4/overload5.html | 2 +- .../ip__address_v4/make_address_v4/overload6.html | 2 +- .../ip__address_v4/make_address_v4/overload7.html | 2 +- .../ip__address_v4/make_address_v4/overload8.html | 2 +- .../ip__address_v4/make_address_v4/overload9.html | 2 +- .../reference/ip__address_v4/make_network_v4.html | 2 +- .../ip__address_v4/make_network_v4/overload1.html | 2 +- .../ip__address_v4/make_network_v4/overload2.html | 2 +- .../reference/ip__address_v4/netmask.html | 2 +- .../reference/ip__address_v4/operator_eq_.html | 2 +- .../reference/ip__address_v4/operator_eq__eq_.html | 2 +- .../reference/ip__address_v4/operator_gt_.html | 2 +- .../reference/ip__address_v4/operator_gt__eq_.html | 2 +- .../reference/ip__address_v4/operator_lt_.html | 2 +- .../reference/ip__address_v4/operator_lt__eq_.html | 2 +- .../reference/ip__address_v4/operator_lt__lt_.html | 2 +- .../ip__address_v4/operator_lt__lt_/overload1.html | 2 +- .../ip__address_v4/operator_lt__lt_/overload2.html | 2 +- .../ip__address_v4/operator_not__eq_.html | 2 +- .../reference/ip__address_v4/to_bytes.html | 2 +- .../reference/ip__address_v4/to_string.html | 2 +- .../ip__address_v4/to_string/overload1.html | 2 +- .../ip__address_v4/to_string/overload2.html | 2 +- .../reference/ip__address_v4/to_uint.html | 2 +- .../reference/ip__address_v4/to_ulong.html | 2 +- .../reference/ip__address_v4/uint_type.html | 2 +- .../reference/ip__address_v4_iterator.html | 490 +- .../boost_asio/reference/ip__address_v4_range.html | 490 +- doc/html/boost_asio/reference/ip__address_v6.html | 2 +- .../reference/ip__address_v6/address_v6.html | 2 +- .../ip__address_v6/address_v6/overload1.html | 2 +- .../ip__address_v6/address_v6/overload2.html | 2 +- .../ip__address_v6/address_v6/overload3.html | 2 +- .../boost_asio/reference/ip__address_v6/any.html | 2 +- .../reference/ip__address_v6/bytes_type.html | 2 +- .../reference/ip__address_v6/from_string.html | 2 +- .../ip__address_v6/from_string/overload1.html | 2 +- .../ip__address_v6/from_string/overload2.html | 2 +- .../ip__address_v6/from_string/overload3.html | 2 +- .../ip__address_v6/from_string/overload4.html | 2 +- .../reference/ip__address_v6/is_link_local.html | 2 +- .../reference/ip__address_v6/is_loopback.html | 2 +- .../reference/ip__address_v6/is_multicast.html | 2 +- .../ip__address_v6/is_multicast_global.html | 2 +- .../ip__address_v6/is_multicast_link_local.html | 2 +- .../ip__address_v6/is_multicast_node_local.html | 2 +- .../ip__address_v6/is_multicast_org_local.html | 2 +- .../ip__address_v6/is_multicast_site_local.html | 2 +- .../reference/ip__address_v6/is_site_local.html | 2 +- .../reference/ip__address_v6/is_unspecified.html | 2 +- .../reference/ip__address_v6/is_v4_compatible.html | 2 +- .../reference/ip__address_v6/is_v4_mapped.html | 2 +- .../reference/ip__address_v6/loopback.html | 2 +- .../reference/ip__address_v6/make_address_v6.html | 2 +- .../ip__address_v6/make_address_v6/overload1.html | 2 +- .../ip__address_v6/make_address_v6/overload2.html | 2 +- .../ip__address_v6/make_address_v6/overload3.html | 2 +- .../ip__address_v6/make_address_v6/overload4.html | 2 +- .../ip__address_v6/make_address_v6/overload5.html | 2 +- .../ip__address_v6/make_address_v6/overload6.html | 2 +- .../ip__address_v6/make_address_v6/overload7.html | 2 +- .../ip__address_v6/make_address_v6/overload8.html | 2 +- .../reference/ip__address_v6/make_network_v6.html | 2 +- .../reference/ip__address_v6/operator_eq_.html | 2 +- .../reference/ip__address_v6/operator_eq__eq_.html | 2 +- .../reference/ip__address_v6/operator_gt_.html | 2 +- .../reference/ip__address_v6/operator_gt__eq_.html | 2 +- .../reference/ip__address_v6/operator_lt_.html | 2 +- .../reference/ip__address_v6/operator_lt__eq_.html | 2 +- .../reference/ip__address_v6/operator_lt__lt_.html | 2 +- .../ip__address_v6/operator_lt__lt_/overload1.html | 2 +- .../ip__address_v6/operator_lt__lt_/overload2.html | 2 +- .../ip__address_v6/operator_not__eq_.html | 2 +- .../reference/ip__address_v6/scope_id.html | 2 +- .../ip__address_v6/scope_id/overload1.html | 2 +- .../ip__address_v6/scope_id/overload2.html | 2 +- .../reference/ip__address_v6/to_bytes.html | 2 +- .../reference/ip__address_v6/to_string.html | 2 +- .../ip__address_v6/to_string/overload1.html | 2 +- .../ip__address_v6/to_string/overload2.html | 2 +- .../boost_asio/reference/ip__address_v6/to_v4.html | 2 +- .../reference/ip__address_v6/v4_compatible.html | 2 +- .../reference/ip__address_v6/v4_mapped.html | 2 +- .../reference/ip__address_v6_iterator.html | 534 +-- .../boost_asio/reference/ip__address_v6_range.html | 534 +-- .../boost_asio/reference/ip__bad_address_cast.html | 2 +- .../ip__bad_address_cast/_bad_address_cast.html | 2 +- .../ip__bad_address_cast/bad_address_cast.html | 2 +- .../reference/ip__bad_address_cast/what.html | 2 +- ...basic_address_iterator_lt__address_v4__gt_.html | 2 +- .../basic_address_iterator.html | 2 +- .../basic_address_iterator/overload1.html | 2 +- .../basic_address_iterator/overload2.html | 2 +- .../difference_type.html | 2 +- .../iterator_category.html | 2 +- .../operator__star_.html | 2 +- .../operator_arrow_.html | 2 +- .../operator_eq_.html | 2 +- .../operator_eq__eq_.html | 2 +- .../operator_minus__minus_.html | 2 +- .../operator_minus__minus_/overload1.html | 2 +- .../operator_minus__minus_/overload2.html | 2 +- .../operator_not__eq_.html | 2 +- .../operator_plus__plus_.html | 2 +- .../operator_plus__plus_/overload1.html | 2 +- .../operator_plus__plus_/overload2.html | 2 +- .../pointer.html | 2 +- .../reference.html | 2 +- .../value_type.html | 2 +- ...basic_address_iterator_lt__address_v6__gt_.html | 2 +- .../basic_address_iterator.html | 2 +- .../basic_address_iterator/overload1.html | 2 +- .../basic_address_iterator/overload2.html | 2 +- .../difference_type.html | 2 +- .../iterator_category.html | 2 +- .../operator__star_.html | 2 +- .../operator_arrow_.html | 2 +- .../operator_eq_.html | 2 +- .../operator_eq__eq_.html | 2 +- .../operator_minus__minus_.html | 2 +- .../operator_minus__minus_/overload1.html | 2 +- .../operator_minus__minus_/overload2.html | 2 +- .../operator_not__eq_.html | 2 +- .../operator_plus__plus_.html | 2 +- .../operator_plus__plus_/overload1.html | 2 +- .../operator_plus__plus_/overload2.html | 2 +- .../pointer.html | 2 +- .../reference.html | 2 +- .../value_type.html | 2 +- ...p__basic_address_range_lt__address_v4__gt_.html | 2 +- .../basic_address_range.html | 2 +- .../basic_address_range/overload1.html | 2 +- .../basic_address_range/overload2.html | 2 +- .../basic_address_range/overload3.html | 2 +- .../begin.html | 2 +- .../empty.html | 2 +- .../end.html | 2 +- .../find.html | 2 +- .../iterator.html | 491 +- .../operator_eq_.html | 2 +- .../size.html | 2 +- ...p__basic_address_range_lt__address_v6__gt_.html | 2 +- .../basic_address_range.html | 2 +- .../basic_address_range/overload1.html | 2 +- .../basic_address_range/overload2.html | 2 +- .../basic_address_range/overload3.html | 2 +- .../begin.html | 2 +- .../empty.html | 2 +- .../end.html | 2 +- .../find.html | 2 +- .../iterator.html | 535 +-- .../operator_eq_.html | 2 +- .../boost_asio/reference/ip__basic_endpoint.html | 2 +- .../reference/ip__basic_endpoint/address.html | 2 +- .../ip__basic_endpoint/address/overload1.html | 2 +- .../ip__basic_endpoint/address/overload2.html | 2 +- .../ip__basic_endpoint/basic_endpoint.html | 2 +- .../basic_endpoint/overload1.html | 2 +- .../basic_endpoint/overload2.html | 2 +- .../basic_endpoint/overload3.html | 2 +- .../basic_endpoint/overload4.html | 2 +- .../basic_endpoint/overload5.html | 2 +- .../reference/ip__basic_endpoint/capacity.html | 2 +- .../reference/ip__basic_endpoint/data.html | 2 +- .../ip__basic_endpoint/data/overload1.html | 2 +- .../ip__basic_endpoint/data/overload2.html | 2 +- .../reference/ip__basic_endpoint/data_type.html | 2 +- .../reference/ip__basic_endpoint/operator_eq_.html | 2 +- .../ip__basic_endpoint/operator_eq_/overload1.html | 2 +- .../ip__basic_endpoint/operator_eq_/overload2.html | 2 +- .../ip__basic_endpoint/operator_eq__eq_.html | 2 +- .../reference/ip__basic_endpoint/operator_gt_.html | 2 +- .../ip__basic_endpoint/operator_gt__eq_.html | 2 +- .../reference/ip__basic_endpoint/operator_lt_.html | 2 +- .../ip__basic_endpoint/operator_lt__eq_.html | 2 +- .../ip__basic_endpoint/operator_lt__lt_.html | 2 +- .../ip__basic_endpoint/operator_not__eq_.html | 2 +- .../reference/ip__basic_endpoint/port.html | 2 +- .../ip__basic_endpoint/port/overload1.html | 2 +- .../ip__basic_endpoint/port/overload2.html | 2 +- .../reference/ip__basic_endpoint/protocol.html | 2 +- .../ip__basic_endpoint/protocol_type.html | 2 +- .../reference/ip__basic_endpoint/resize.html | 2 +- .../reference/ip__basic_endpoint/size.html | 2 +- .../boost_asio/reference/ip__basic_resolver.html | 2 +- .../ip__basic_resolver/_basic_resolver.html | 2 +- .../ip__basic_resolver/address_configured.html | 2 +- .../reference/ip__basic_resolver/all_matching.html | 2 +- .../ip__basic_resolver/async_resolve.html | 2 +- .../async_resolve/overload1.html | 2 +- .../async_resolve/overload2.html | 2 +- .../async_resolve/overload3.html | 2 +- .../async_resolve/overload4.html | 2 +- .../async_resolve/overload5.html | 2 +- .../async_resolve/overload6.html | 2 +- .../ip__basic_resolver/basic_resolver.html | 2 +- .../basic_resolver/overload1.html | 2 +- .../basic_resolver/overload2.html | 2 +- .../reference/ip__basic_resolver/cancel.html | 2 +- .../ip__basic_resolver/canonical_name.html | 2 +- .../ip__basic_resolver/endpoint_type.html | 2 +- .../ip__basic_resolver/executor_type.html | 2 +- .../reference/ip__basic_resolver/flags.html | 2 +- .../reference/ip__basic_resolver/get_executor.html | 2 +- .../ip__basic_resolver/get_io_context.html | 2 +- .../ip__basic_resolver/get_io_service.html | 2 +- .../reference/ip__basic_resolver/iterator.html | 2 +- .../reference/ip__basic_resolver/numeric_host.html | 2 +- .../ip__basic_resolver/numeric_service.html | 2 +- .../reference/ip__basic_resolver/operator_eq_.html | 2 +- .../reference/ip__basic_resolver/passive.html | 2 +- .../ip__basic_resolver/protocol_type.html | 2 +- .../reference/ip__basic_resolver/query.html | 2 +- .../reference/ip__basic_resolver/resolve.html | 2 +- .../ip__basic_resolver/resolve/overload1.html | 2 +- .../ip__basic_resolver/resolve/overload10.html | 2 +- .../ip__basic_resolver/resolve/overload11.html | 2 +- .../ip__basic_resolver/resolve/overload12.html | 2 +- .../ip__basic_resolver/resolve/overload2.html | 2 +- .../ip__basic_resolver/resolve/overload3.html | 2 +- .../ip__basic_resolver/resolve/overload4.html | 2 +- .../ip__basic_resolver/resolve/overload5.html | 2 +- .../ip__basic_resolver/resolve/overload6.html | 2 +- .../ip__basic_resolver/resolve/overload7.html | 2 +- .../ip__basic_resolver/resolve/overload8.html | 2 +- .../ip__basic_resolver/resolve/overload9.html | 2 +- .../reference/ip__basic_resolver/results_type.html | 2 +- .../reference/ip__basic_resolver/v4_mapped.html | 2 +- .../reference/ip__basic_resolver_entry.html | 2 +- .../basic_resolver_entry.html | 2 +- .../basic_resolver_entry/overload1.html | 2 +- .../basic_resolver_entry/overload2.html | 2 +- .../ip__basic_resolver_entry/endpoint.html | 2 +- .../ip__basic_resolver_entry/endpoint_type.html | 2 +- .../ip__basic_resolver_entry/host_name.html | 2 +- .../host_name/overload1.html | 2 +- .../host_name/overload2.html | 2 +- .../operator_endpoint_type.html | 2 +- .../ip__basic_resolver_entry/protocol_type.html | 2 +- .../ip__basic_resolver_entry/service_name.html | 2 +- .../service_name/overload1.html | 2 +- .../service_name/overload2.html | 2 +- .../reference/ip__basic_resolver_iterator.html | 2 +- .../basic_resolver_iterator.html | 2 +- .../basic_resolver_iterator/overload1.html | 2 +- .../basic_resolver_iterator/overload2.html | 2 +- .../basic_resolver_iterator/overload3.html | 2 +- .../ip__basic_resolver_iterator/dereference.html | 2 +- .../difference_type.html | 2 +- .../ip__basic_resolver_iterator/equal.html | 2 +- .../ip__basic_resolver_iterator/increment.html | 2 +- .../ip__basic_resolver_iterator/index_.html | 2 +- .../iterator_category.html | 2 +- .../operator__star_.html | 2 +- .../operator_arrow_.html | 2 +- .../ip__basic_resolver_iterator/operator_eq_.html | 2 +- .../operator_eq_/overload1.html | 2 +- .../operator_eq_/overload2.html | 2 +- .../operator_eq__eq_.html | 2 +- .../operator_not__eq_.html | 2 +- .../operator_plus__plus_.html | 2 +- .../operator_plus__plus_/overload1.html | 2 +- .../operator_plus__plus_/overload2.html | 2 +- .../ip__basic_resolver_iterator/pointer.html | 2 +- .../ip__basic_resolver_iterator/reference.html | 2 +- .../ip__basic_resolver_iterator/value_type.html | 2 +- .../ip__basic_resolver_iterator/values_.html | 2 +- .../reference/ip__basic_resolver_query.html | 2 +- .../address_configured.html | 2 +- .../ip__basic_resolver_query/all_matching.html | 2 +- .../basic_resolver_query.html | 2 +- .../basic_resolver_query/overload1.html | 2 +- .../basic_resolver_query/overload2.html | 2 +- .../basic_resolver_query/overload3.html | 2 +- .../basic_resolver_query/overload4.html | 2 +- .../ip__basic_resolver_query/canonical_name.html | 2 +- .../reference/ip__basic_resolver_query/flags.html | 2 +- .../reference/ip__basic_resolver_query/hints.html | 2 +- .../ip__basic_resolver_query/host_name.html | 2 +- .../ip__basic_resolver_query/numeric_host.html | 2 +- .../ip__basic_resolver_query/numeric_service.html | 2 +- .../ip__basic_resolver_query/passive.html | 2 +- .../ip__basic_resolver_query/protocol_type.html | 2 +- .../ip__basic_resolver_query/service_name.html | 2 +- .../ip__basic_resolver_query/v4_mapped.html | 2 +- .../reference/ip__basic_resolver_results.html | 2 +- .../basic_resolver_results.html | 2 +- .../basic_resolver_results/overload1.html | 2 +- .../basic_resolver_results/overload2.html | 2 +- .../basic_resolver_results/overload3.html | 2 +- .../ip__basic_resolver_results/begin.html | 2 +- .../ip__basic_resolver_results/cbegin.html | 2 +- .../reference/ip__basic_resolver_results/cend.html | 2 +- .../ip__basic_resolver_results/const_iterator.html | 2 +- .../const_reference.html | 2 +- .../ip__basic_resolver_results/dereference.html | 2 +- .../difference_type.html | 2 +- .../ip__basic_resolver_results/empty.html | 2 +- .../reference/ip__basic_resolver_results/end.html | 2 +- .../ip__basic_resolver_results/endpoint_type.html | 2 +- .../ip__basic_resolver_results/equal.html | 2 +- .../ip__basic_resolver_results/increment.html | 2 +- .../ip__basic_resolver_results/index_.html | 2 +- .../ip__basic_resolver_results/iterator.html | 2 +- .../iterator_category.html | 2 +- .../ip__basic_resolver_results/max_size.html | 2 +- .../operator__star_.html | 2 +- .../operator_arrow_.html | 2 +- .../ip__basic_resolver_results/operator_eq_.html | 2 +- .../operator_eq_/overload1.html | 2 +- .../operator_eq_/overload2.html | 2 +- .../operator_eq__eq_.html | 2 +- .../operator_eq__eq_/overload1.html | 2 +- .../operator_eq__eq_/overload2.html | 2 +- .../operator_not__eq_.html | 2 +- .../operator_not__eq_/overload1.html | 2 +- .../operator_not__eq_/overload2.html | 2 +- .../operator_plus__plus_.html | 2 +- .../operator_plus__plus_/overload1.html | 2 +- .../operator_plus__plus_/overload2.html | 2 +- .../ip__basic_resolver_results/pointer.html | 2 +- .../ip__basic_resolver_results/protocol_type.html | 2 +- .../ip__basic_resolver_results/reference.html | 2 +- .../reference/ip__basic_resolver_results/size.html | 2 +- .../ip__basic_resolver_results/size_type.html | 2 +- .../reference/ip__basic_resolver_results/swap.html | 2 +- .../ip__basic_resolver_results/value_type.html | 4 +- .../ip__basic_resolver_results/values_.html | 2 +- doc/html/boost_asio/reference/ip__host_name.html | 2 +- .../reference/ip__host_name/overload1.html | 2 +- .../reference/ip__host_name/overload2.html | 2 +- doc/html/boost_asio/reference/ip__icmp.html | 2 +- .../boost_asio/reference/ip__icmp/endpoint.html | 2 +- doc/html/boost_asio/reference/ip__icmp/family.html | 2 +- .../reference/ip__icmp/operator_eq__eq_.html | 2 +- .../reference/ip__icmp/operator_not__eq_.html | 2 +- .../boost_asio/reference/ip__icmp/protocol.html | 2 +- .../boost_asio/reference/ip__icmp/resolver.html | 2 +- doc/html/boost_asio/reference/ip__icmp/socket.html | 2 +- doc/html/boost_asio/reference/ip__icmp/type.html | 2 +- doc/html/boost_asio/reference/ip__icmp/v4.html | 2 +- doc/html/boost_asio/reference/ip__icmp/v6.html | 2 +- .../reference/ip__multicast__enable_loopback.html | 2 +- .../boost_asio/reference/ip__multicast__hops.html | 2 +- .../reference/ip__multicast__join_group.html | 2 +- .../reference/ip__multicast__leave_group.html | 2 +- .../ip__multicast__outbound_interface.html | 2 +- doc/html/boost_asio/reference/ip__network_v4.html | 2 +- .../reference/ip__network_v4/address.html | 2 +- .../reference/ip__network_v4/broadcast.html | 2 +- .../reference/ip__network_v4/canonical.html | 2 +- .../boost_asio/reference/ip__network_v4/hosts.html | 2 +- .../reference/ip__network_v4/is_host.html | 2 +- .../reference/ip__network_v4/is_subnet_of.html | 2 +- .../reference/ip__network_v4/make_network_v4.html | 2 +- .../ip__network_v4/make_network_v4/overload1.html | 2 +- .../ip__network_v4/make_network_v4/overload2.html | 2 +- .../ip__network_v4/make_network_v4/overload3.html | 2 +- .../ip__network_v4/make_network_v4/overload4.html | 2 +- .../ip__network_v4/make_network_v4/overload5.html | 2 +- .../ip__network_v4/make_network_v4/overload6.html | 2 +- .../reference/ip__network_v4/netmask.html | 2 +- .../reference/ip__network_v4/network.html | 2 +- .../reference/ip__network_v4/network_v4.html | 2 +- .../ip__network_v4/network_v4/overload1.html | 2 +- .../ip__network_v4/network_v4/overload2.html | 2 +- .../ip__network_v4/network_v4/overload3.html | 2 +- .../ip__network_v4/network_v4/overload4.html | 2 +- .../reference/ip__network_v4/operator_eq_.html | 2 +- .../reference/ip__network_v4/operator_eq__eq_.html | 2 +- .../ip__network_v4/operator_not__eq_.html | 2 +- .../reference/ip__network_v4/prefix_length.html | 2 +- .../reference/ip__network_v4/to_string.html | 2 +- .../ip__network_v4/to_string/overload1.html | 2 +- .../ip__network_v4/to_string/overload2.html | 2 +- doc/html/boost_asio/reference/ip__network_v6.html | 2 +- .../reference/ip__network_v6/address.html | 2 +- .../reference/ip__network_v6/canonical.html | 2 +- .../boost_asio/reference/ip__network_v6/hosts.html | 2 +- .../reference/ip__network_v6/is_host.html | 2 +- .../reference/ip__network_v6/is_subnet_of.html | 2 +- .../reference/ip__network_v6/make_network_v6.html | 2 +- .../ip__network_v6/make_network_v6/overload1.html | 2 +- .../ip__network_v6/make_network_v6/overload2.html | 2 +- .../ip__network_v6/make_network_v6/overload3.html | 2 +- .../ip__network_v6/make_network_v6/overload4.html | 2 +- .../ip__network_v6/make_network_v6/overload5.html | 2 +- .../ip__network_v6/make_network_v6/overload6.html | 2 +- .../reference/ip__network_v6/network.html | 2 +- .../reference/ip__network_v6/network_v6.html | 2 +- .../ip__network_v6/network_v6/overload1.html | 2 +- .../ip__network_v6/network_v6/overload2.html | 2 +- .../ip__network_v6/network_v6/overload3.html | 2 +- .../reference/ip__network_v6/operator_eq_.html | 2 +- .../reference/ip__network_v6/operator_eq__eq_.html | 2 +- .../ip__network_v6/operator_not__eq_.html | 2 +- .../reference/ip__network_v6/prefix_length.html | 2 +- .../reference/ip__network_v6/to_string.html | 2 +- .../ip__network_v6/to_string/overload1.html | 2 +- .../ip__network_v6/to_string/overload2.html | 2 +- .../boost_asio/reference/ip__resolver_base.html | 2 +- .../ip__resolver_base/_resolver_base.html | 2 +- .../ip__resolver_base/address_configured.html | 2 +- .../reference/ip__resolver_base/all_matching.html | 2 +- .../ip__resolver_base/canonical_name.html | 2 +- .../reference/ip__resolver_base/flags.html | 2 +- .../reference/ip__resolver_base/numeric_host.html | 2 +- .../ip__resolver_base/numeric_service.html | 2 +- .../reference/ip__resolver_base/passive.html | 2 +- .../reference/ip__resolver_base/v4_mapped.html | 2 +- .../reference/ip__resolver_query_base.html | 2 +- .../_resolver_query_base.html | 2 +- .../address_configured.html | 2 +- .../ip__resolver_query_base/all_matching.html | 2 +- .../ip__resolver_query_base/canonical_name.html | 2 +- .../reference/ip__resolver_query_base/flags.html | 2 +- .../ip__resolver_query_base/numeric_host.html | 2 +- .../ip__resolver_query_base/numeric_service.html | 2 +- .../reference/ip__resolver_query_base/passive.html | 2 +- .../ip__resolver_query_base/v4_mapped.html | 2 +- doc/html/boost_asio/reference/ip__tcp.html | 2 +- .../boost_asio/reference/ip__tcp/acceptor.html | 2 +- .../boost_asio/reference/ip__tcp/endpoint.html | 2 +- doc/html/boost_asio/reference/ip__tcp/family.html | 2 +- .../boost_asio/reference/ip__tcp/iostream.html | 2 +- .../boost_asio/reference/ip__tcp/no_delay.html | 2 +- .../reference/ip__tcp/operator_eq__eq_.html | 2 +- .../reference/ip__tcp/operator_not__eq_.html | 2 +- .../boost_asio/reference/ip__tcp/protocol.html | 2 +- .../boost_asio/reference/ip__tcp/resolver.html | 2 +- doc/html/boost_asio/reference/ip__tcp/socket.html | 2 +- doc/html/boost_asio/reference/ip__tcp/type.html | 2 +- doc/html/boost_asio/reference/ip__tcp/v4.html | 2 +- doc/html/boost_asio/reference/ip__tcp/v6.html | 2 +- doc/html/boost_asio/reference/ip__udp.html | 2 +- .../boost_asio/reference/ip__udp/endpoint.html | 2 +- doc/html/boost_asio/reference/ip__udp/family.html | 2 +- .../reference/ip__udp/operator_eq__eq_.html | 2 +- .../reference/ip__udp/operator_not__eq_.html | 2 +- .../boost_asio/reference/ip__udp/protocol.html | 2 +- .../boost_asio/reference/ip__udp/resolver.html | 2 +- doc/html/boost_asio/reference/ip__udp/socket.html | 2 +- doc/html/boost_asio/reference/ip__udp/type.html | 2 +- doc/html/boost_asio/reference/ip__udp/v4.html | 2 +- doc/html/boost_asio/reference/ip__udp/v6.html | 2 +- .../boost_asio/reference/ip__unicast__hops.html | 2 +- doc/html/boost_asio/reference/ip__v4_mapped_t.html | 2 +- doc/html/boost_asio/reference/ip__v6_only.html | 2 +- .../reference/is_const_buffer_sequence.html | 2 +- .../boost_asio/reference/is_dynamic_buffer.html | 2 +- .../boost_asio/reference/is_endpoint_sequence.html | 2 +- .../reference/is_endpoint_sequence/value.html | 2 +- ...s_error_code_enum_lt__addrinfo_errors__gt_.html | 2 +- .../value.html | 2 +- .../is_error_code_enum_lt__basic_errors__gt_.html | 2 +- .../value.html | 2 +- ...oost__asio__ssl__error__stream_errors__gt_.html | 2 +- .../value.html | 2 +- .../is_error_code_enum_lt__misc_errors__gt_.html | 2 +- .../value.html | 2 +- .../is_error_code_enum_lt__netdb_errors__gt_.html | 2 +- .../value.html | 2 +- .../is_error_code_enum_lt__ssl_errors__gt_.html | 2 +- .../value.html | 2 +- doc/html/boost_asio/reference/is_executor.html | 2 +- .../boost_asio/reference/is_match_condition.html | 2 +- .../reference/is_match_condition/value.html | 2 +- .../reference/is_mutable_buffer_sequence.html | 2 +- .../boost_asio/reference/is_read_buffered.html | 2 +- .../reference/is_read_buffered/value.html | 2 +- .../boost_asio/reference/is_write_buffered.html | 2 +- .../reference/is_write_buffered/value.html | 2 +- .../reference/local__basic_endpoint.html | 2 +- .../local__basic_endpoint/basic_endpoint.html | 2 +- .../basic_endpoint/overload1.html | 2 +- .../basic_endpoint/overload2.html | 2 +- .../basic_endpoint/overload3.html | 2 +- .../basic_endpoint/overload4.html | 2 +- .../reference/local__basic_endpoint/capacity.html | 2 +- .../reference/local__basic_endpoint/data.html | 2 +- .../local__basic_endpoint/data/overload1.html | 2 +- .../local__basic_endpoint/data/overload2.html | 2 +- .../reference/local__basic_endpoint/data_type.html | 2 +- .../local__basic_endpoint/operator_eq_.html | 2 +- .../local__basic_endpoint/operator_eq__eq_.html | 2 +- .../local__basic_endpoint/operator_gt_.html | 2 +- .../local__basic_endpoint/operator_gt__eq_.html | 2 +- .../local__basic_endpoint/operator_lt_.html | 2 +- .../local__basic_endpoint/operator_lt__eq_.html | 2 +- .../local__basic_endpoint/operator_lt__lt_.html | 2 +- .../local__basic_endpoint/operator_not__eq_.html | 2 +- .../reference/local__basic_endpoint/path.html | 2 +- .../local__basic_endpoint/path/overload1.html | 2 +- .../local__basic_endpoint/path/overload2.html | 2 +- .../local__basic_endpoint/path/overload3.html | 2 +- .../reference/local__basic_endpoint/protocol.html | 2 +- .../local__basic_endpoint/protocol_type.html | 2 +- .../reference/local__basic_endpoint/resize.html | 2 +- .../reference/local__basic_endpoint/size.html | 2 +- .../boost_asio/reference/local__connect_pair.html | 2 +- .../reference/local__connect_pair/overload1.html | 2 +- .../reference/local__connect_pair/overload2.html | 2 +- .../reference/local__datagram_protocol.html | 2 +- .../local__datagram_protocol/endpoint.html | 2 +- .../reference/local__datagram_protocol/family.html | 2 +- .../local__datagram_protocol/protocol.html | 2 +- .../reference/local__datagram_protocol/socket.html | 2 +- .../reference/local__datagram_protocol/type.html | 2 +- .../reference/local__stream_protocol.html | 2 +- .../reference/local__stream_protocol/acceptor.html | 2 +- .../reference/local__stream_protocol/endpoint.html | 2 +- .../reference/local__stream_protocol/family.html | 2 +- .../reference/local__stream_protocol/iostream.html | 2 +- .../reference/local__stream_protocol/protocol.html | 2 +- .../reference/local__stream_protocol/socket.html | 2 +- .../reference/local__stream_protocol/type.html | 2 +- doc/html/boost_asio/reference/make_work_guard.html | 4 +- .../reference/make_work_guard/overload1.html | 2 +- .../reference/make_work_guard/overload2.html | 2 +- .../reference/make_work_guard/overload3.html | 2 +- .../reference/make_work_guard/overload4.html | 2 +- .../reference/make_work_guard/overload5.html | 4 +- doc/html/boost_asio/reference/mutable_buffer.html | 2 +- .../boost_asio/reference/mutable_buffer/data.html | 2 +- .../reference/mutable_buffer/mutable_buffer.html | 2 +- .../mutable_buffer/mutable_buffer/overload1.html | 2 +- .../mutable_buffer/mutable_buffer/overload2.html | 2 +- .../reference/mutable_buffer/operator_plus_.html | 2 +- .../mutable_buffer/operator_plus_/overload1.html | 2 +- .../mutable_buffer/operator_plus_/overload2.html | 2 +- .../mutable_buffer/operator_plus__eq_.html | 2 +- .../boost_asio/reference/mutable_buffer/size.html | 2 +- .../boost_asio/reference/mutable_buffers_1.html | 2 +- .../reference/mutable_buffers_1/begin.html | 2 +- .../mutable_buffers_1/const_iterator.html | 2 +- .../reference/mutable_buffers_1/data.html | 2 +- .../reference/mutable_buffers_1/end.html | 2 +- .../mutable_buffers_1/mutable_buffers_1.html | 2 +- .../mutable_buffers_1/overload1.html | 2 +- .../mutable_buffers_1/overload2.html | 2 +- .../mutable_buffers_1/operator_plus_.html | 2 +- .../operator_plus_/overload1.html | 2 +- .../operator_plus_/overload2.html | 2 +- .../mutable_buffers_1/operator_plus__eq_.html | 2 +- .../reference/mutable_buffers_1/size.html | 2 +- .../reference/mutable_buffers_1/value_type.html | 2 +- doc/html/boost_asio/reference/null_buffers.html | 2 +- .../boost_asio/reference/null_buffers/begin.html | 2 +- .../reference/null_buffers/const_iterator.html | 2 +- .../boost_asio/reference/null_buffers/end.html | 2 +- .../reference/null_buffers/value_type.html | 2 +- .../reference/placeholders__bytes_transferred.html | 2 +- .../reference/placeholders__endpoint.html | 2 +- .../boost_asio/reference/placeholders__error.html | 2 +- .../reference/placeholders__iterator.html | 2 +- .../reference/placeholders__results.html | 2 +- .../reference/placeholders__signal_number.html | 2 +- .../boost_asio/reference/posix__descriptor.html | 2 +- .../reference/posix__descriptor/_descriptor.html | 2 +- .../reference/posix__descriptor/assign.html | 2 +- .../posix__descriptor/assign/overload1.html | 2 +- .../posix__descriptor/assign/overload2.html | 2 +- .../reference/posix__descriptor/async_wait.html | 2 +- .../posix__descriptor/bytes_readable.html | 2 +- .../reference/posix__descriptor/cancel.html | 2 +- .../posix__descriptor/cancel/overload1.html | 2 +- .../posix__descriptor/cancel/overload2.html | 2 +- .../reference/posix__descriptor/close.html | 2 +- .../posix__descriptor/close/overload1.html | 2 +- .../posix__descriptor/close/overload2.html | 2 +- .../reference/posix__descriptor/descriptor.html | 2 +- .../posix__descriptor/descriptor/overload1.html | 2 +- .../posix__descriptor/descriptor/overload2.html | 2 +- .../posix__descriptor/descriptor/overload3.html | 2 +- .../reference/posix__descriptor/executor_type.html | 2 +- .../reference/posix__descriptor/get_executor.html | 2 +- .../posix__descriptor/get_io_context.html | 2 +- .../posix__descriptor/get_io_service.html | 2 +- .../reference/posix__descriptor/io_control.html | 2 +- .../posix__descriptor/io_control/overload1.html | 2 +- .../posix__descriptor/io_control/overload2.html | 2 +- .../reference/posix__descriptor/is_open.html | 2 +- .../reference/posix__descriptor/lowest_layer.html | 2 +- .../posix__descriptor/lowest_layer/overload1.html | 2 +- .../posix__descriptor/lowest_layer/overload2.html | 2 +- .../posix__descriptor/lowest_layer_type.html | 2 +- .../reference/posix__descriptor/native_handle.html | 2 +- .../posix__descriptor/native_handle_type.html | 2 +- .../posix__descriptor/native_non_blocking.html | 2 +- .../native_non_blocking/overload1.html | 2 +- .../native_non_blocking/overload2.html | 2 +- .../native_non_blocking/overload3.html | 2 +- .../reference/posix__descriptor/non_blocking.html | 2 +- .../posix__descriptor/non_blocking/overload1.html | 2 +- .../posix__descriptor/non_blocking/overload2.html | 2 +- .../posix__descriptor/non_blocking/overload3.html | 2 +- .../reference/posix__descriptor/operator_eq_.html | 2 +- .../reference/posix__descriptor/release.html | 2 +- .../reference/posix__descriptor/wait.html | 2 +- .../posix__descriptor/wait/overload1.html | 2 +- .../posix__descriptor/wait/overload2.html | 2 +- .../reference/posix__descriptor/wait_type.html | 2 +- .../reference/posix__descriptor_base.html | 2 +- .../posix__descriptor_base/_descriptor_base.html | 2 +- .../posix__descriptor_base/bytes_readable.html | 2 +- .../posix__descriptor_base/wait_type.html | 2 +- .../reference/posix__stream_descriptor.html | 2 +- .../reference/posix__stream_descriptor/assign.html | 2 +- .../posix__stream_descriptor/assign/overload1.html | 2 +- .../posix__stream_descriptor/assign/overload2.html | 2 +- .../posix__stream_descriptor/async_read_some.html | 2 +- .../posix__stream_descriptor/async_wait.html | 2 +- .../posix__stream_descriptor/async_write_some.html | 2 +- .../posix__stream_descriptor/bytes_readable.html | 2 +- .../reference/posix__stream_descriptor/cancel.html | 2 +- .../posix__stream_descriptor/cancel/overload1.html | 2 +- .../posix__stream_descriptor/cancel/overload2.html | 2 +- .../reference/posix__stream_descriptor/close.html | 2 +- .../posix__stream_descriptor/close/overload1.html | 2 +- .../posix__stream_descriptor/close/overload2.html | 2 +- .../posix__stream_descriptor/executor_type.html | 2 +- .../posix__stream_descriptor/get_executor.html | 2 +- .../posix__stream_descriptor/get_io_context.html | 2 +- .../posix__stream_descriptor/get_io_service.html | 2 +- .../posix__stream_descriptor/io_control.html | 2 +- .../io_control/overload1.html | 2 +- .../io_control/overload2.html | 2 +- .../posix__stream_descriptor/is_open.html | 2 +- .../posix__stream_descriptor/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../lowest_layer_type.html | 2 +- .../posix__stream_descriptor/native_handle.html | 2 +- .../native_handle_type.html | 2 +- .../native_non_blocking.html | 2 +- .../native_non_blocking/overload1.html | 2 +- .../native_non_blocking/overload2.html | 2 +- .../native_non_blocking/overload3.html | 2 +- .../posix__stream_descriptor/non_blocking.html | 2 +- .../non_blocking/overload1.html | 2 +- .../non_blocking/overload2.html | 2 +- .../non_blocking/overload3.html | 2 +- .../posix__stream_descriptor/operator_eq_.html | 2 +- .../posix__stream_descriptor/read_some.html | 2 +- .../read_some/overload1.html | 2 +- .../read_some/overload2.html | 2 +- .../posix__stream_descriptor/release.html | 2 +- .../stream_descriptor.html | 2 +- .../stream_descriptor/overload1.html | 2 +- .../stream_descriptor/overload2.html | 2 +- .../stream_descriptor/overload3.html | 2 +- .../reference/posix__stream_descriptor/wait.html | 2 +- .../posix__stream_descriptor/wait/overload1.html | 2 +- .../posix__stream_descriptor/wait/overload2.html | 2 +- .../posix__stream_descriptor/wait_type.html | 2 +- .../posix__stream_descriptor/write_some.html | 2 +- .../write_some/overload1.html | 2 +- .../write_some/overload2.html | 2 +- doc/html/boost_asio/reference/post.html | 2 +- doc/html/boost_asio/reference/post/overload1.html | 2 +- doc/html/boost_asio/reference/post/overload2.html | 2 +- doc/html/boost_asio/reference/post/overload3.html | 2 +- doc/html/boost_asio/reference/read.html | 10 +- doc/html/boost_asio/reference/read/overload1.html | 2 +- doc/html/boost_asio/reference/read/overload10.html | 2 +- doc/html/boost_asio/reference/read/overload11.html | 2 +- doc/html/boost_asio/reference/read/overload12.html | 2 +- doc/html/boost_asio/reference/read/overload2.html | 2 +- doc/html/boost_asio/reference/read/overload3.html | 2 +- doc/html/boost_asio/reference/read/overload4.html | 2 +- doc/html/boost_asio/reference/read/overload5.html | 4 +- doc/html/boost_asio/reference/read/overload6.html | 4 +- doc/html/boost_asio/reference/read/overload7.html | 4 +- doc/html/boost_asio/reference/read/overload8.html | 4 +- doc/html/boost_asio/reference/read/overload9.html | 2 +- doc/html/boost_asio/reference/read_at.html | 2 +- .../boost_asio/reference/read_at/overload1.html | 2 +- .../boost_asio/reference/read_at/overload2.html | 2 +- .../boost_asio/reference/read_at/overload3.html | 2 +- .../boost_asio/reference/read_at/overload4.html | 2 +- .../boost_asio/reference/read_at/overload5.html | 2 +- .../boost_asio/reference/read_at/overload6.html | 2 +- .../boost_asio/reference/read_at/overload7.html | 2 +- .../boost_asio/reference/read_at/overload8.html | 2 +- doc/html/boost_asio/reference/read_until.html | 2 +- .../boost_asio/reference/read_until/overload1.html | 2 +- .../reference/read_until/overload10.html | 2 +- .../reference/read_until/overload11.html | 2 +- .../reference/read_until/overload12.html | 2 +- .../reference/read_until/overload13.html | 2 +- .../reference/read_until/overload14.html | 2 +- .../reference/read_until/overload15.html | 2 +- .../reference/read_until/overload16.html | 2 +- .../boost_asio/reference/read_until/overload2.html | 2 +- .../boost_asio/reference/read_until/overload3.html | 2 +- .../boost_asio/reference/read_until/overload4.html | 2 +- .../boost_asio/reference/read_until/overload5.html | 2 +- .../boost_asio/reference/read_until/overload6.html | 2 +- .../boost_asio/reference/read_until/overload7.html | 2 +- .../boost_asio/reference/read_until/overload8.html | 2 +- .../boost_asio/reference/read_until/overload9.html | 2 +- .../reference/read_write_operations.html | 2 +- .../reference/resolver_errc__try_again.html | 2 +- doc/html/boost_asio/reference/serial_port.html | 2 +- .../reference/serial_port/_serial_port.html | 2 +- .../boost_asio/reference/serial_port/assign.html | 2 +- .../reference/serial_port/assign/overload1.html | 2 +- .../reference/serial_port/assign/overload2.html | 2 +- .../reference/serial_port/async_read_some.html | 2 +- .../reference/serial_port/async_write_some.html | 2 +- .../boost_asio/reference/serial_port/cancel.html | 2 +- .../reference/serial_port/cancel/overload1.html | 2 +- .../reference/serial_port/cancel/overload2.html | 2 +- .../boost_asio/reference/serial_port/close.html | 2 +- .../reference/serial_port/close/overload1.html | 2 +- .../reference/serial_port/close/overload2.html | 2 +- .../reference/serial_port/executor_type.html | 2 +- .../reference/serial_port/get_executor.html | 2 +- .../reference/serial_port/get_io_context.html | 2 +- .../reference/serial_port/get_io_service.html | 2 +- .../reference/serial_port/get_option.html | 2 +- .../serial_port/get_option/overload1.html | 2 +- .../serial_port/get_option/overload2.html | 2 +- .../boost_asio/reference/serial_port/is_open.html | 2 +- .../reference/serial_port/lowest_layer.html | 2 +- .../serial_port/lowest_layer/overload1.html | 2 +- .../serial_port/lowest_layer/overload2.html | 2 +- .../reference/serial_port/lowest_layer_type.html | 2 +- .../reference/serial_port/native_handle.html | 2 +- .../reference/serial_port/native_handle_type.html | 2 +- .../boost_asio/reference/serial_port/open.html | 2 +- .../reference/serial_port/open/overload1.html | 2 +- .../reference/serial_port/open/overload2.html | 2 +- .../reference/serial_port/operator_eq_.html | 2 +- .../reference/serial_port/read_some.html | 2 +- .../reference/serial_port/read_some/overload1.html | 2 +- .../reference/serial_port/read_some/overload2.html | 2 +- .../reference/serial_port/send_break.html | 2 +- .../serial_port/send_break/overload1.html | 2 +- .../serial_port/send_break/overload2.html | 2 +- .../reference/serial_port/serial_port.html | 2 +- .../serial_port/serial_port/overload1.html | 2 +- .../serial_port/serial_port/overload2.html | 2 +- .../serial_port/serial_port/overload3.html | 2 +- .../serial_port/serial_port/overload4.html | 2 +- .../serial_port/serial_port/overload5.html | 2 +- .../reference/serial_port/set_option.html | 2 +- .../serial_port/set_option/overload1.html | 2 +- .../serial_port/set_option/overload2.html | 2 +- .../reference/serial_port/write_some.html | 2 +- .../serial_port/write_some/overload1.html | 2 +- .../serial_port/write_some/overload2.html | 2 +- .../boost_asio/reference/serial_port_base.html | 2 +- .../serial_port_base/_serial_port_base.html | 2 +- .../reference/serial_port_base__baud_rate.html | 2 +- .../serial_port_base__baud_rate/baud_rate.html | 2 +- .../serial_port_base__baud_rate/load.html | 2 +- .../serial_port_base__baud_rate/store.html | 2 +- .../serial_port_base__baud_rate/value.html | 2 +- .../serial_port_base__character_size.html | 2 +- .../character_size.html | 2 +- .../serial_port_base__character_size/load.html | 2 +- .../serial_port_base__character_size/store.html | 2 +- .../serial_port_base__character_size/value.html | 2 +- .../reference/serial_port_base__flow_control.html | 2 +- .../flow_control.html | 2 +- .../serial_port_base__flow_control/load.html | 2 +- .../serial_port_base__flow_control/store.html | 2 +- .../serial_port_base__flow_control/type.html | 2 +- .../serial_port_base__flow_control/value.html | 2 +- .../reference/serial_port_base__parity.html | 2 +- .../reference/serial_port_base__parity/load.html | 2 +- .../reference/serial_port_base__parity/parity.html | 2 +- .../reference/serial_port_base__parity/store.html | 2 +- .../reference/serial_port_base__parity/type.html | 2 +- .../reference/serial_port_base__parity/value.html | 2 +- .../reference/serial_port_base__stop_bits.html | 2 +- .../serial_port_base__stop_bits/load.html | 2 +- .../serial_port_base__stop_bits/stop_bits.html | 2 +- .../serial_port_base__stop_bits/store.html | 2 +- .../serial_port_base__stop_bits/type.html | 2 +- .../serial_port_base__stop_bits/value.html | 2 +- .../reference/service_already_exists.html | 2 +- .../service_already_exists.html | 2 +- doc/html/boost_asio/reference/signal_set.html | 2 +- .../reference/signal_set/_signal_set.html | 2 +- doc/html/boost_asio/reference/signal_set/add.html | 2 +- .../reference/signal_set/add/overload1.html | 2 +- .../reference/signal_set/add/overload2.html | 2 +- .../reference/signal_set/async_wait.html | 2 +- .../boost_asio/reference/signal_set/cancel.html | 2 +- .../reference/signal_set/cancel/overload1.html | 2 +- .../reference/signal_set/cancel/overload2.html | 2 +- .../boost_asio/reference/signal_set/clear.html | 2 +- .../reference/signal_set/clear/overload1.html | 2 +- .../reference/signal_set/clear/overload2.html | 2 +- .../reference/signal_set/executor_type.html | 2 +- .../reference/signal_set/get_executor.html | 2 +- .../reference/signal_set/get_io_context.html | 2 +- .../reference/signal_set/get_io_service.html | 2 +- .../boost_asio/reference/signal_set/remove.html | 2 +- .../reference/signal_set/remove/overload1.html | 2 +- .../reference/signal_set/remove/overload2.html | 2 +- .../reference/signal_set/signal_set.html | 2 +- .../reference/signal_set/signal_set/overload1.html | 2 +- .../reference/signal_set/signal_set/overload2.html | 2 +- .../reference/signal_set/signal_set/overload3.html | 2 +- .../reference/signal_set/signal_set/overload4.html | 2 +- doc/html/boost_asio/reference/socket_base.html | 2 +- .../reference/socket_base/_socket_base.html | 2 +- .../reference/socket_base/broadcast.html | 2 +- .../reference/socket_base/bytes_readable.html | 2 +- .../boost_asio/reference/socket_base/debug.html | 2 +- .../reference/socket_base/do_not_route.html | 2 +- .../socket_base/enable_connection_aborted.html | 2 +- .../reference/socket_base/keep_alive.html | 2 +- .../boost_asio/reference/socket_base/linger.html | 2 +- .../reference/socket_base/max_connections.html | 2 +- .../socket_base/max_listen_connections.html | 2 +- .../socket_base/message_do_not_route.html | 2 +- .../socket_base/message_end_of_record.html | 2 +- .../reference/socket_base/message_flags.html | 2 +- .../reference/socket_base/message_out_of_band.html | 2 +- .../reference/socket_base/message_peek.html | 2 +- .../reference/socket_base/out_of_band_inline.html | 2 +- .../reference/socket_base/receive_buffer_size.html | 2 +- .../socket_base/receive_low_watermark.html | 2 +- .../reference/socket_base/reuse_address.html | 2 +- .../reference/socket_base/send_buffer_size.html | 2 +- .../reference/socket_base/send_low_watermark.html | 2 +- .../reference/socket_base/shutdown_type.html | 2 +- .../reference/socket_base/wait_type.html | 2 +- doc/html/boost_asio/reference/spawn.html | 2 +- doc/html/boost_asio/reference/spawn/overload1.html | 2 +- doc/html/boost_asio/reference/spawn/overload2.html | 2 +- doc/html/boost_asio/reference/spawn/overload3.html | 2 +- doc/html/boost_asio/reference/spawn/overload4.html | 2 +- doc/html/boost_asio/reference/spawn/overload5.html | 2 +- doc/html/boost_asio/reference/spawn/overload6.html | 2 +- doc/html/boost_asio/reference/spawn/overload7.html | 2 +- doc/html/boost_asio/reference/ssl__context.html | 2 +- .../reference/ssl__context/_context.html | 2 +- .../ssl__context/add_certificate_authority.html | 2 +- .../add_certificate_authority/overload1.html | 2 +- .../add_certificate_authority/overload2.html | 2 +- .../reference/ssl__context/add_verify_path.html | 2 +- .../ssl__context/add_verify_path/overload1.html | 2 +- .../ssl__context/add_verify_path/overload2.html | 2 +- .../reference/ssl__context/clear_options.html | 2 +- .../ssl__context/clear_options/overload1.html | 2 +- .../ssl__context/clear_options/overload2.html | 2 +- .../boost_asio/reference/ssl__context/context.html | 2 +- .../reference/ssl__context/context/overload1.html | 2 +- .../reference/ssl__context/context/overload2.html | 2 +- .../ssl__context/default_workarounds.html | 2 +- .../reference/ssl__context/file_format.html | 2 +- .../reference/ssl__context/load_verify_file.html | 2 +- .../ssl__context/load_verify_file/overload1.html | 2 +- .../ssl__context/load_verify_file/overload2.html | 2 +- .../boost_asio/reference/ssl__context/method.html | 2 +- .../reference/ssl__context/native_handle.html | 2 +- .../reference/ssl__context/native_handle_type.html | 2 +- .../reference/ssl__context/no_compression.html | 2 +- .../reference/ssl__context/no_sslv2.html | 2 +- .../reference/ssl__context/no_sslv3.html | 2 +- .../reference/ssl__context/no_tlsv1.html | 2 +- .../reference/ssl__context/no_tlsv1_1.html | 2 +- .../reference/ssl__context/no_tlsv1_2.html | 2 +- .../reference/ssl__context/operator_eq_.html | 2 +- .../boost_asio/reference/ssl__context/options.html | 2 +- .../reference/ssl__context/password_purpose.html | 2 +- .../ssl__context/set_default_verify_paths.html | 2 +- .../set_default_verify_paths/overload1.html | 2 +- .../set_default_verify_paths/overload2.html | 2 +- .../reference/ssl__context/set_options.html | 2 +- .../ssl__context/set_options/overload1.html | 2 +- .../ssl__context/set_options/overload2.html | 2 +- .../ssl__context/set_password_callback.html | 2 +- .../set_password_callback/overload1.html | 2 +- .../set_password_callback/overload2.html | 2 +- .../ssl__context/set_verify_callback.html | 2 +- .../set_verify_callback/overload1.html | 2 +- .../set_verify_callback/overload2.html | 2 +- .../reference/ssl__context/set_verify_depth.html | 2 +- .../ssl__context/set_verify_depth/overload1.html | 2 +- .../ssl__context/set_verify_depth/overload2.html | 2 +- .../reference/ssl__context/set_verify_mode.html | 2 +- .../ssl__context/set_verify_mode/overload1.html | 2 +- .../ssl__context/set_verify_mode/overload2.html | 2 +- .../reference/ssl__context/single_dh_use.html | 2 +- .../reference/ssl__context/use_certificate.html | 2 +- .../ssl__context/use_certificate/overload1.html | 2 +- .../ssl__context/use_certificate/overload2.html | 2 +- .../ssl__context/use_certificate_chain.html | 2 +- .../use_certificate_chain/overload1.html | 2 +- .../use_certificate_chain/overload2.html | 2 +- .../ssl__context/use_certificate_chain_file.html | 2 +- .../use_certificate_chain_file/overload1.html | 2 +- .../use_certificate_chain_file/overload2.html | 2 +- .../ssl__context/use_certificate_file.html | 2 +- .../use_certificate_file/overload1.html | 2 +- .../use_certificate_file/overload2.html | 2 +- .../reference/ssl__context/use_private_key.html | 2 +- .../ssl__context/use_private_key/overload1.html | 2 +- .../ssl__context/use_private_key/overload2.html | 2 +- .../ssl__context/use_private_key_file.html | 2 +- .../use_private_key_file/overload1.html | 2 +- .../use_private_key_file/overload2.html | 2 +- .../ssl__context/use_rsa_private_key.html | 2 +- .../use_rsa_private_key/overload1.html | 2 +- .../use_rsa_private_key/overload2.html | 2 +- .../ssl__context/use_rsa_private_key_file.html | 2 +- .../use_rsa_private_key_file/overload1.html | 2 +- .../use_rsa_private_key_file/overload2.html | 2 +- .../reference/ssl__context/use_tmp_dh.html | 2 +- .../ssl__context/use_tmp_dh/overload1.html | 2 +- .../ssl__context/use_tmp_dh/overload2.html | 2 +- .../reference/ssl__context/use_tmp_dh_file.html | 2 +- .../ssl__context/use_tmp_dh_file/overload1.html | 2 +- .../ssl__context/use_tmp_dh_file/overload2.html | 2 +- .../boost_asio/reference/ssl__context_base.html | 2 +- .../reference/ssl__context_base/_context_base.html | 2 +- .../ssl__context_base/default_workarounds.html | 2 +- .../reference/ssl__context_base/file_format.html | 2 +- .../reference/ssl__context_base/method.html | 2 +- .../ssl__context_base/no_compression.html | 2 +- .../reference/ssl__context_base/no_sslv2.html | 2 +- .../reference/ssl__context_base/no_sslv3.html | 2 +- .../reference/ssl__context_base/no_tlsv1.html | 2 +- .../reference/ssl__context_base/no_tlsv1_1.html | 2 +- .../reference/ssl__context_base/no_tlsv1_2.html | 2 +- .../reference/ssl__context_base/options.html | 2 +- .../ssl__context_base/password_purpose.html | 2 +- .../reference/ssl__context_base/single_dh_use.html | 2 +- .../reference/ssl__error__get_stream_category.html | 2 +- .../reference/ssl__error__make_error_code.html | 2 +- .../reference/ssl__error__stream_category.html | 2 +- .../reference/ssl__error__stream_errors.html | 2 +- .../reference/ssl__rfc2818_verification.html | 2 +- .../operator_lp__rp_.html | 2 +- .../ssl__rfc2818_verification/result_type.html | 2 +- .../rfc2818_verification.html | 2 +- doc/html/boost_asio/reference/ssl__stream.html | 2 +- .../boost_asio/reference/ssl__stream/_stream.html | 2 +- .../reference/ssl__stream/async_handshake.html | 2 +- .../ssl__stream/async_handshake/overload1.html | 2 +- .../ssl__stream/async_handshake/overload2.html | 2 +- .../reference/ssl__stream/async_read_some.html | 2 +- .../reference/ssl__stream/async_shutdown.html | 2 +- .../reference/ssl__stream/async_write_some.html | 2 +- .../reference/ssl__stream/executor_type.html | 2 +- .../reference/ssl__stream/get_executor.html | 2 +- .../reference/ssl__stream/get_io_context.html | 2 +- .../reference/ssl__stream/get_io_service.html | 2 +- .../reference/ssl__stream/handshake.html | 2 +- .../reference/ssl__stream/handshake/overload1.html | 2 +- .../reference/ssl__stream/handshake/overload2.html | 2 +- .../reference/ssl__stream/handshake/overload3.html | 2 +- .../reference/ssl__stream/handshake/overload4.html | 2 +- .../reference/ssl__stream/handshake_type.html | 2 +- .../reference/ssl__stream/lowest_layer.html | 2 +- .../ssl__stream/lowest_layer/overload1.html | 2 +- .../ssl__stream/lowest_layer/overload2.html | 2 +- .../reference/ssl__stream/lowest_layer_type.html | 2 +- .../reference/ssl__stream/native_handle.html | 2 +- .../reference/ssl__stream/native_handle_type.html | 2 +- .../reference/ssl__stream/next_layer.html | 2 +- .../ssl__stream/next_layer/overload1.html | 2 +- .../ssl__stream/next_layer/overload2.html | 2 +- .../reference/ssl__stream/next_layer_type.html | 2 +- .../reference/ssl__stream/read_some.html | 2 +- .../reference/ssl__stream/read_some/overload1.html | 2 +- .../reference/ssl__stream/read_some/overload2.html | 2 +- .../reference/ssl__stream/set_verify_callback.html | 2 +- .../ssl__stream/set_verify_callback/overload1.html | 2 +- .../ssl__stream/set_verify_callback/overload2.html | 2 +- .../reference/ssl__stream/set_verify_depth.html | 2 +- .../ssl__stream/set_verify_depth/overload1.html | 2 +- .../ssl__stream/set_verify_depth/overload2.html | 2 +- .../reference/ssl__stream/set_verify_mode.html | 2 +- .../ssl__stream/set_verify_mode/overload1.html | 2 +- .../ssl__stream/set_verify_mode/overload2.html | 2 +- .../boost_asio/reference/ssl__stream/shutdown.html | 2 +- .../reference/ssl__stream/shutdown/overload1.html | 2 +- .../reference/ssl__stream/shutdown/overload2.html | 2 +- .../boost_asio/reference/ssl__stream/stream.html | 2 +- .../reference/ssl__stream/write_some.html | 2 +- .../ssl__stream/write_some/overload1.html | 2 +- .../ssl__stream/write_some/overload2.html | 2 +- .../reference/ssl__stream__impl_struct.html | 2 +- .../reference/ssl__stream__impl_struct/ssl.html | 2 +- .../boost_asio/reference/ssl__stream_base.html | 2 +- .../reference/ssl__stream_base/_stream_base.html | 2 +- .../reference/ssl__stream_base/handshake_type.html | 2 +- .../reference/ssl__verify_client_once.html | 2 +- .../boost_asio/reference/ssl__verify_context.html | 2 +- .../ssl__verify_context/native_handle.html | 2 +- .../ssl__verify_context/native_handle_type.html | 2 +- .../ssl__verify_context/verify_context.html | 2 +- .../ssl__verify_fail_if_no_peer_cert.html | 2 +- .../boost_asio/reference/ssl__verify_mode.html | 2 +- .../boost_asio/reference/ssl__verify_none.html | 2 +- .../boost_asio/reference/ssl__verify_peer.html | 2 +- doc/html/boost_asio/reference/steady_timer.html | 2 +- doc/html/boost_asio/reference/strand.html | 2 +- doc/html/boost_asio/reference/strand/_strand.html | 2 +- doc/html/boost_asio/reference/strand/context.html | 2 +- doc/html/boost_asio/reference/strand/defer.html | 2 +- doc/html/boost_asio/reference/strand/dispatch.html | 2 +- .../reference/strand/get_inner_executor.html | 2 +- .../reference/strand/inner_executor_type.html | 2 +- .../reference/strand/on_work_finished.html | 2 +- .../reference/strand/on_work_started.html | 2 +- .../boost_asio/reference/strand/operator_eq_.html | 2 +- .../reference/strand/operator_eq_/overload1.html | 2 +- .../reference/strand/operator_eq_/overload2.html | 2 +- .../reference/strand/operator_eq_/overload3.html | 2 +- .../reference/strand/operator_eq_/overload4.html | 2 +- .../reference/strand/operator_eq__eq_.html | 2 +- .../reference/strand/operator_not__eq_.html | 2 +- doc/html/boost_asio/reference/strand/post.html | 2 +- .../reference/strand/running_in_this_thread.html | 2 +- doc/html/boost_asio/reference/strand/strand.html | 2 +- .../reference/strand/strand/overload1.html | 2 +- .../reference/strand/strand/overload2.html | 2 +- .../reference/strand/strand/overload3.html | 2 +- .../reference/strand/strand/overload4.html | 2 +- .../reference/strand/strand/overload5.html | 2 +- .../reference/strand/strand/overload6.html | 2 +- doc/html/boost_asio/reference/streambuf.html | 2 +- .../reference/synchronous_socket_operations.html | 2 +- doc/html/boost_asio/reference/system_context.html | 2 +- .../reference/system_context/_system_context.html | 2 +- .../reference/system_context/add_service.html | 2 +- .../reference/system_context/destroy.html | 2 +- .../reference/system_context/executor_type.html | 2 +- .../reference/system_context/fork_event.html | 2 +- .../reference/system_context/get_executor.html | 2 +- .../reference/system_context/has_service.html | 2 +- .../boost_asio/reference/system_context/join.html | 2 +- .../reference/system_context/make_service.html | 2 +- .../reference/system_context/notify_fork.html | 2 +- .../reference/system_context/shutdown.html | 2 +- .../boost_asio/reference/system_context/stop.html | 2 +- .../reference/system_context/stopped.html | 2 +- .../reference/system_context/use_service.html | 2 +- .../system_context/use_service/overload1.html | 2 +- .../system_context/use_service/overload2.html | 2 +- doc/html/boost_asio/reference/system_executor.html | 2 +- .../reference/system_executor/context.html | 2 +- .../reference/system_executor/defer.html | 2 +- .../reference/system_executor/dispatch.html | 2 +- .../system_executor/on_work_finished.html | 2 +- .../reference/system_executor/on_work_started.html | 2 +- .../system_executor/operator_eq__eq_.html | 2 +- .../system_executor/operator_not__eq_.html | 2 +- .../boost_asio/reference/system_executor/post.html | 2 +- doc/html/boost_asio/reference/system_timer.html | 2 +- doc/html/boost_asio/reference/thread_pool.html | 2 +- .../reference/thread_pool/_thread_pool.html | 2 +- .../reference/thread_pool/add_service.html | 2 +- .../boost_asio/reference/thread_pool/destroy.html | 2 +- .../reference/thread_pool/fork_event.html | 2 +- .../reference/thread_pool/get_executor.html | 2 +- .../reference/thread_pool/has_service.html | 2 +- .../boost_asio/reference/thread_pool/join.html | 2 +- .../reference/thread_pool/make_service.html | 2 +- .../reference/thread_pool/notify_fork.html | 2 +- .../boost_asio/reference/thread_pool/shutdown.html | 2 +- .../boost_asio/reference/thread_pool/stop.html | 2 +- .../reference/thread_pool/thread_pool.html | 2 +- .../thread_pool/thread_pool/overload1.html | 2 +- .../thread_pool/thread_pool/overload2.html | 2 +- .../reference/thread_pool/use_service.html | 2 +- .../thread_pool/use_service/overload1.html | 2 +- .../thread_pool/use_service/overload2.html | 2 +- .../reference/thread_pool__executor_type.html | 2 +- .../thread_pool__executor_type/context.html | 2 +- .../thread_pool__executor_type/defer.html | 2 +- .../thread_pool__executor_type/dispatch.html | 2 +- .../on_work_finished.html | 2 +- .../on_work_started.html | 2 +- .../operator_eq__eq_.html | 2 +- .../operator_not__eq_.html | 2 +- .../reference/thread_pool__executor_type/post.html | 2 +- .../running_in_this_thread.html | 2 +- .../reference/time_traits_lt__ptime__gt_.html | 2 +- .../reference/time_traits_lt__ptime__gt_/add.html | 2 +- .../time_traits_lt__ptime__gt_/duration_type.html | 2 +- .../time_traits_lt__ptime__gt_/less_than.html | 2 +- .../reference/time_traits_lt__ptime__gt_/now.html | 2 +- .../time_traits_lt__ptime__gt_/subtract.html | 2 +- .../time_traits_lt__ptime__gt_/time_type.html | 2 +- .../to_posix_duration.html | 2 +- doc/html/boost_asio/reference/transfer_all.html | 2 +- .../boost_asio/reference/transfer_at_least.html | 2 +- .../boost_asio/reference/transfer_exactly.html | 2 +- doc/html/boost_asio/reference/use_future.html | 2 +- doc/html/boost_asio/reference/use_future_t.html | 2 +- .../reference/use_future_t/allocator_type.html | 2 +- .../reference/use_future_t/get_allocator.html | 2 +- .../reference/use_future_t/operator_lb__rb_.html | 2 +- .../reference/use_future_t/operator_lp__rp_.html | 2 +- .../boost_asio/reference/use_future_t/rebind.html | 2 +- .../reference/use_future_t/use_future_t.html | 2 +- .../use_future_t/use_future_t/overload1.html | 2 +- .../use_future_t/use_future_t/overload2.html | 2 +- doc/html/boost_asio/reference/use_service.html | 2 +- .../reference/use_service/overload1.html | 2 +- .../reference/use_service/overload2.html | 2 +- doc/html/boost_asio/reference/uses_executor.html | 2 +- doc/html/boost_asio/reference/wait_traits.html | 2 +- .../reference/wait_traits/to_wait_duration.html | 2 +- .../wait_traits/to_wait_duration/overload1.html | 2 +- .../wait_traits/to_wait_duration/overload2.html | 2 +- .../reference/windows__object_handle.html | 2 +- .../reference/windows__object_handle/assign.html | 2 +- .../windows__object_handle/assign/overload1.html | 2 +- .../windows__object_handle/assign/overload2.html | 2 +- .../windows__object_handle/async_wait.html | 2 +- .../reference/windows__object_handle/cancel.html | 2 +- .../windows__object_handle/cancel/overload1.html | 2 +- .../windows__object_handle/cancel/overload2.html | 2 +- .../reference/windows__object_handle/close.html | 2 +- .../windows__object_handle/close/overload1.html | 2 +- .../windows__object_handle/close/overload2.html | 2 +- .../windows__object_handle/executor_type.html | 2 +- .../windows__object_handle/get_executor.html | 2 +- .../windows__object_handle/get_io_context.html | 2 +- .../windows__object_handle/get_io_service.html | 2 +- .../reference/windows__object_handle/is_open.html | 2 +- .../windows__object_handle/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../windows__object_handle/lowest_layer_type.html | 2 +- .../windows__object_handle/native_handle.html | 2 +- .../windows__object_handle/native_handle_type.html | 2 +- .../windows__object_handle/object_handle.html | 2 +- .../object_handle/overload1.html | 2 +- .../object_handle/overload2.html | 2 +- .../object_handle/overload3.html | 2 +- .../windows__object_handle/operator_eq_.html | 2 +- .../reference/windows__object_handle/wait.html | 2 +- .../windows__object_handle/wait/overload1.html | 2 +- .../windows__object_handle/wait/overload2.html | 2 +- .../reference/windows__overlapped_handle.html | 2 +- .../_overlapped_handle.html | 2 +- .../windows__overlapped_handle/assign.html | 2 +- .../assign/overload1.html | 2 +- .../assign/overload2.html | 2 +- .../windows__overlapped_handle/cancel.html | 2 +- .../cancel/overload1.html | 2 +- .../cancel/overload2.html | 2 +- .../windows__overlapped_handle/close.html | 2 +- .../close/overload1.html | 2 +- .../close/overload2.html | 2 +- .../windows__overlapped_handle/executor_type.html | 2 +- .../windows__overlapped_handle/get_executor.html | 2 +- .../windows__overlapped_handle/get_io_context.html | 2 +- .../windows__overlapped_handle/get_io_service.html | 2 +- .../windows__overlapped_handle/is_open.html | 2 +- .../windows__overlapped_handle/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../lowest_layer_type.html | 2 +- .../windows__overlapped_handle/native_handle.html | 2 +- .../native_handle_type.html | 2 +- .../windows__overlapped_handle/operator_eq_.html | 2 +- .../overlapped_handle.html | 2 +- .../overlapped_handle/overload1.html | 2 +- .../overlapped_handle/overload2.html | 2 +- .../overlapped_handle/overload3.html | 2 +- .../reference/windows__overlapped_ptr.html | 2 +- .../windows__overlapped_ptr/_overlapped_ptr.html | 2 +- .../windows__overlapped_ptr/complete.html | 2 +- .../reference/windows__overlapped_ptr/get.html | 2 +- .../windows__overlapped_ptr/get/overload1.html | 2 +- .../windows__overlapped_ptr/get/overload2.html | 2 +- .../windows__overlapped_ptr/overlapped_ptr.html | 2 +- .../overlapped_ptr/overload1.html | 2 +- .../overlapped_ptr/overload2.html | 2 +- .../reference/windows__overlapped_ptr/release.html | 2 +- .../reference/windows__overlapped_ptr/reset.html | 2 +- .../windows__overlapped_ptr/reset/overload1.html | 2 +- .../windows__overlapped_ptr/reset/overload2.html | 2 +- .../reference/windows__random_access_handle.html | 2 +- .../windows__random_access_handle/assign.html | 2 +- .../assign/overload1.html | 2 +- .../assign/overload2.html | 2 +- .../async_read_some_at.html | 2 +- .../async_write_some_at.html | 2 +- .../windows__random_access_handle/cancel.html | 2 +- .../cancel/overload1.html | 2 +- .../cancel/overload2.html | 2 +- .../windows__random_access_handle/close.html | 2 +- .../close/overload1.html | 2 +- .../close/overload2.html | 2 +- .../executor_type.html | 2 +- .../get_executor.html | 2 +- .../get_io_context.html | 2 +- .../get_io_service.html | 2 +- .../windows__random_access_handle/is_open.html | 2 +- .../lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../lowest_layer_type.html | 2 +- .../native_handle.html | 2 +- .../native_handle_type.html | 2 +- .../operator_eq_.html | 2 +- .../random_access_handle.html | 2 +- .../random_access_handle/overload1.html | 2 +- .../random_access_handle/overload2.html | 2 +- .../random_access_handle/overload3.html | 2 +- .../read_some_at.html | 2 +- .../read_some_at/overload1.html | 2 +- .../read_some_at/overload2.html | 2 +- .../write_some_at.html | 2 +- .../write_some_at/overload1.html | 2 +- .../write_some_at/overload2.html | 2 +- .../reference/windows__stream_handle.html | 2 +- .../reference/windows__stream_handle/assign.html | 2 +- .../windows__stream_handle/assign/overload1.html | 2 +- .../windows__stream_handle/assign/overload2.html | 2 +- .../windows__stream_handle/async_read_some.html | 2 +- .../windows__stream_handle/async_write_some.html | 2 +- .../reference/windows__stream_handle/cancel.html | 2 +- .../windows__stream_handle/cancel/overload1.html | 2 +- .../windows__stream_handle/cancel/overload2.html | 2 +- .../reference/windows__stream_handle/close.html | 2 +- .../windows__stream_handle/close/overload1.html | 2 +- .../windows__stream_handle/close/overload2.html | 2 +- .../windows__stream_handle/executor_type.html | 2 +- .../windows__stream_handle/get_executor.html | 2 +- .../windows__stream_handle/get_io_context.html | 2 +- .../windows__stream_handle/get_io_service.html | 2 +- .../reference/windows__stream_handle/is_open.html | 2 +- .../windows__stream_handle/lowest_layer.html | 2 +- .../lowest_layer/overload1.html | 2 +- .../lowest_layer/overload2.html | 2 +- .../windows__stream_handle/lowest_layer_type.html | 2 +- .../windows__stream_handle/native_handle.html | 2 +- .../windows__stream_handle/native_handle_type.html | 2 +- .../windows__stream_handle/operator_eq_.html | 2 +- .../windows__stream_handle/read_some.html | 2 +- .../read_some/overload1.html | 2 +- .../read_some/overload2.html | 2 +- .../windows__stream_handle/stream_handle.html | 2 +- .../stream_handle/overload1.html | 2 +- .../stream_handle/overload2.html | 2 +- .../stream_handle/overload3.html | 2 +- .../windows__stream_handle/write_some.html | 2 +- .../write_some/overload1.html | 2 +- .../write_some/overload2.html | 2 +- doc/html/boost_asio/reference/write.html | 10 +- doc/html/boost_asio/reference/write/overload1.html | 2 +- .../boost_asio/reference/write/overload10.html | 2 +- .../boost_asio/reference/write/overload11.html | 2 +- .../boost_asio/reference/write/overload12.html | 2 +- doc/html/boost_asio/reference/write/overload2.html | 2 +- doc/html/boost_asio/reference/write/overload3.html | 2 +- doc/html/boost_asio/reference/write/overload4.html | 2 +- doc/html/boost_asio/reference/write/overload5.html | 4 +- doc/html/boost_asio/reference/write/overload6.html | 4 +- doc/html/boost_asio/reference/write/overload7.html | 4 +- doc/html/boost_asio/reference/write/overload8.html | 4 +- doc/html/boost_asio/reference/write/overload9.html | 2 +- doc/html/boost_asio/reference/write_at.html | 2 +- .../boost_asio/reference/write_at/overload1.html | 2 +- .../boost_asio/reference/write_at/overload2.html | 2 +- .../boost_asio/reference/write_at/overload3.html | 2 +- .../boost_asio/reference/write_at/overload4.html | 2 +- .../boost_asio/reference/write_at/overload5.html | 2 +- .../boost_asio/reference/write_at/overload6.html | 2 +- .../boost_asio/reference/write_at/overload7.html | 2 +- .../boost_asio/reference/write_at/overload8.html | 2 +- doc/html/boost_asio/reference/yield_context.html | 2 +- doc/html/boost_asio/tutorial.html | 2 +- doc/html/boost_asio/tutorial/tutdaytime1.html | 8 +- doc/html/boost_asio/tutorial/tutdaytime1/src.html | 4 +- doc/html/boost_asio/tutorial/tutdaytime2.html | 37 +- doc/html/boost_asio/tutorial/tutdaytime2/src.html | 4 +- doc/html/boost_asio/tutorial/tutdaytime3.html | 10 +- doc/html/boost_asio/tutorial/tutdaytime3/src.html | 4 +- doc/html/boost_asio/tutorial/tutdaytime4.html | 27 +- doc/html/boost_asio/tutorial/tutdaytime4/src.html | 4 +- doc/html/boost_asio/tutorial/tutdaytime5.html | 10 +- doc/html/boost_asio/tutorial/tutdaytime5/src.html | 10 +- doc/html/boost_asio/tutorial/tutdaytime6.html | 21 +- doc/html/boost_asio/tutorial/tutdaytime6/src.html | 6 +- doc/html/boost_asio/tutorial/tutdaytime7.html | 28 +- doc/html/boost_asio/tutorial/tutdaytime7/src.html | 6 +- doc/html/boost_asio/tutorial/tuttimer1.html | 33 +- doc/html/boost_asio/tutorial/tuttimer1/src.html | 7 +- doc/html/boost_asio/tutorial/tuttimer2.html | 25 +- doc/html/boost_asio/tutorial/tuttimer2/src.html | 7 +- doc/html/boost_asio/tutorial/tuttimer3.html | 39 +- doc/html/boost_asio/tutorial/tuttimer3/src.html | 11 +- doc/html/boost_asio/tutorial/tuttimer4.html | 13 +- doc/html/boost_asio/tutorial/tuttimer4/src.html | 11 +- doc/html/boost_asio/tutorial/tuttimer5.html | 58 +- doc/html/boost_asio/tutorial/tuttimer5/src.html | 17 +- doc/html/boost_asio/using.html | 2 +- doc/html/boost_circular_buffer_c___reference.html | 46 +- doc/html/boost_container_header_reference.html | 160 +- doc/html/boost_dll.html | 6 +- doc/html/boost_dll/acknowledgements.html | 4 +- doc/html/boost_dll/dependencies.html | 2 +- doc/html/boost_dll/design_rationale.html | 2 +- doc/html/boost_dll/f_a_q_.html | 2 +- doc/html/boost_dll/getting_started.html | 4 +- doc/html/boost_dll/limitations.html | 6 +- doc/html/boost_dll/mangled_import.html | 2 +- doc/html/boost_dll/missuses.html | 2 +- doc/html/boost_dll/reference.html | 54 +- doc/html/boost_dll/revision_history.html | 2 +- doc/html/boost_dll/tutorial.html | 2 +- doc/html/boost_lexical_cast.html | 2 +- doc/html/boost_process/acknowledgements.html | 6 +- doc/html/boost_process/extend.html | 22 +- doc/html/boost_process/tutorial.html | 48 +- doc/html/boost_random.html | 2 +- doc/html/boost_random/tutorial.html | 1 + doc/html/boost_typeerasure.html | 2 +- doc/html/boost_typeerasure/basic.html | 21 +- doc/html/boost_typeerasure/predef.html | 3 +- doc/html/boost_typeerasure/reference.html | 61 +- doc/html/boost_typeindex.html | 2 +- .../making_a_custom_type_index.html | 4 +- doc/html/boost_typeindex_header_reference.html | 1 - doc/html/boost_units.html | 2 +- doc/html/boost_units/Examples.html | 53 +- doc/html/boost_units/FAQ.html | 4 +- doc/html/boost_units/Quick_Start.html | 1 + doc/html/boost_units/Reference.html | 231 +- doc/html/boost_units/version_id.html | 2 +- doc/html/boostbook/together.html | 2 +- doc/html/chrono.html | 2 +- doc/html/circular_buffer.html | 6 +- doc/html/circular_buffer/example.html | 2 +- doc/html/circular_buffer/examples.html | 6 +- doc/html/circular_buffer/headers.html | 2 +- doc/html/circular_buffer/implementation.html | 8 +- doc/html/circular_buffer/rationale.html | 4 +- doc/html/circular_buffer/s14.html | 178 +- doc/html/circular_buffer/version_id.html | 2 +- doc/html/container.html | 68 +- doc/html/container/Cpp11_conformance.html | 15 +- doc/html/container/acknowledgements_notes.html | 3 +- doc/html/container/configurable_containers.html | 267 ++ doc/html/container/exception_handling.html | 3 +- doc/html/container/extended_allocators.html | 160 + doc/html/container/extended_functionality.html | 526 +-- doc/html/container/history_and_reasons.html | 5 +- doc/html/container/index.html | 191 +- doc/html/container/known_issues.html | 3 +- doc/html/container/main_features.html | 9 +- doc/html/container/non_standard_containers.html | 7 +- .../container/polymorphic_memory_resources.html | 300 ++ doc/html/container/release_notes.html | 56 +- doc/html/conversion.html | 10 +- ...nd__polymorphic_pointer_downcast__synopsis.html | 2 +- .../conversion/_polymorphic_downcast__example.html | 2 +- .../_polymorphic_pointer_downcast__example.html | 2 +- doc/html/conversion/history.html | 4 +- doc/html/conversion/polymorphic_casts.html | 4 +- doc/html/date_time.html | 8 +- doc/html/date_time/date_time_io.html | 131 +- doc/html/date_time/details.html | 66 +- doc/html/date_time/doxy.html | 388 +- doc/html/date_time/examples.html | 2 +- .../date_time/examples/general_usage_examples.html | 4 +- doc/html/date_time/gregorian.html | 80 +- doc/html/date_time/local_time.html | 78 +- doc/html/date_time/posix_time.html | 84 +- doc/html/date_time/serialization.html | 6 +- doc/html/doc_HTML.manifest | 443 +- doc/html/foreach.html | 6 +- doc/html/foreach/extensibility.html | 4 +- doc/html/foreach/history_and_acknowledgements.html | 4 +- doc/html/foreach/pitfalls.html | 2 +- doc/html/foreach/portability.html | 6 +- doc/html/function.html | 24 +- doc/html/function/faq.html | 24 +- doc/html/function/history.html | 10 +- doc/html/function/misc.html | 30 +- doc/html/function/reference.html | 42 +- doc/html/function/testsuite.html | 8 +- doc/html/function/tutorial.html | 26 +- doc/html/hash.html | 14 +- doc/html/hash/acknowledgements.html | 8 +- doc/html/hash/changes.html | 51 +- doc/html/hash/combine.html | 18 +- doc/html/hash/custom.html | 8 +- doc/html/hash/disable.html | 4 +- doc/html/hash/links.html | 8 +- doc/html/hash/portability.html | 4 +- doc/html/hash/rationale.html | 2 +- doc/html/hash/reference.html | 236 +- doc/html/hash/tutorial.html | 10 +- doc/html/heap.html | 8 +- doc/html/heap/acknowledgements.html | 6 +- doc/html/index.html | 12 +- doc/html/interprocess.html | 2 +- doc/html/interprocess/acknowledgements_notes.html | 23 +- doc/html/interprocess/architecture.html | 6 +- doc/html/interprocess/indexes_reference.html | 285 +- doc/html/interprocess/interprocess_smart_ptr.html | 2 +- doc/html/interprocess/managed_memory_segments.html | 16 +- .../interprocess/synchronization_mechanisms.html | 6 +- doc/html/intrusive.html | 4 +- doc/html/intrusive/function_hooks.html | 2 +- doc/html/intrusive/reference.html | 130 +- doc/html/intrusive/release_notes.html | 15 + doc/html/libraries.html | 49 +- doc/html/load_1_3_12_15_5_16_2.html | 54 - doc/html/load_1_3_12_15_5_16_4.html | 54 - doc/html/load_1_3_12_15_5_16_7.html | 54 - doc/html/load_1_3_13_15_5_16_6.html | 54 + doc/html/load_1_3_13_15_5_16_9.html | 54 + doc/html/load_td.html | 54 + doc/html/lockfree.html | 2 +- doc/html/lockfree/reference.html | 2 +- doc/html/metaparse.html | 2 +- doc/html/move.html | 4 +- doc/html/move/reference.html | 2 + doc/html/move/release_notes.html | 12 + doc/html/move/thanks_to.html | 13 + doc/html/mpi.html | 49 +- doc/html/mpi/getting_started.html | 6 +- doc/html/mpi/python.html | 477 -- doc/html/mpi/reference.html | 524 --- doc/html/mpi/tutorial.html | 4804 ++++++++++++-------- doc/html/multi_array.html | 6 +- doc/html/poly_collection.html | 6 +- doc/html/poly_collection/acknowledgments.html | 3 +- .../an_efficient_polymorphic_data_st.html | 3 +- doc/html/poly_collection/future_work.html | 3 +- doc/html/poly_collection/performance.html | 3 +- doc/html/poly_collection/reference.html | 3 +- doc/html/poly_collection/release_notes.html | 12 +- doc/html/poly_collection/tutorial.html | 5 +- doc/html/process.html | 2 +- doc/html/process/reference.html | 1 + doc/html/program_options/howto.html | 2 +- doc/html/property_tree.html | 2 +- doc/html/proto.html | 2 +- doc/html/quickbook/change_log.html | 16 + doc/html/quickbook/syntax/block.html | 4 +- doc/html/ratio.html | 2 +- doc/html/save_1_3_12_15_5_16_3.html | 54 - doc/html/save_1_3_12_15_5_16_6.html | 54 - doc/html/save_1_3_13_15_5_16_5.html | 54 + doc/html/save_1_3_13_15_5_16_8.html | 54 + .../serialization/load_1_3_12_15_4_13_1_12.html | 54 - .../serialization/load_1_3_12_15_4_13_1_27.html | 54 - .../serialization/load_1_3_12_15_4_13_1_3.html | 54 - .../serialization/load_1_3_12_15_4_13_1_30.html | 54 - .../serialization/load_1_3_12_15_4_13_1_33.html | 54 - .../serialization/load_1_3_12_15_4_13_1_36.html | 54 - .../serialization/load_1_3_13_15_4_13_1_12.html | 54 + .../serialization/load_1_3_13_15_4_13_1_27.html | 54 + .../serialization/load_1_3_13_15_4_13_1_3.html | 54 + .../serialization/load_1_3_13_15_4_13_1_30.html | 54 + .../serialization/load_1_3_13_15_4_13_1_33.html | 54 + .../serialization/load_1_3_13_15_4_13_1_36.html | 54 + .../serialization/save_1_3_12_15_4_13_1_11.html | 54 - .../serialization/save_1_3_12_15_4_13_1_2.html | 54 - .../serialization/save_1_3_12_15_4_13_1_26.html | 54 - .../serialization/save_1_3_12_15_4_13_1_29.html | 55 - .../serialization/save_1_3_12_15_4_13_1_32.html | 55 - .../serialization/save_1_3_12_15_4_13_1_35.html | 55 - .../serialization/save_1_3_13_15_4_13_1_11.html | 54 + .../serialization/save_1_3_13_15_4_13_1_2.html | 54 + .../serialization/save_1_3_13_15_4_13_1_26.html | 54 + .../serialization/save_1_3_13_15_4_13_1_29.html | 55 + .../serialization/save_1_3_13_15_4_13_1_32.html | 55 + .../serialization/save_1_3_13_15_4_13_1_35.html | 55 + doc/html/serialization/serialize.html | 8 +- doc/html/stacktrace.html | 2 +- doc/html/stacktrace/getting_started.html | 10 + doc/html/std/insert_iterato_idp58095904.html | 96 + doc/html/std/insert_iterato_idp65191984.html | 95 - doc/html/std/numeric_1_3_44_10_2_31_2_1.html | 82 +- doc/html/thread.html | 2 +- doc/html/thread/build.html | 2 +- doc/html/thread/changes.html | 54 + doc/html/thread/time.html | 2 +- doc/html/tribool/reference.html | 22 +- doc/html/tribool/tests.html | 6 +- doc/html/unordered.html | 2 +- doc/html/unordered/changes.html | 67 + doc/html/unordered/hash_equality.html | 2 +- doc/html/xpressive.html | 2 +- 4349 files changed, 48875 insertions(+), 45531 deletions(-) delete mode 100644 doc/html/BOOST_CB_ASSER_idp14364704.html create mode 100644 doc/html/BOOST_CB_ASSER_idp33239264.html delete mode 100644 doc/html/BOOST_DLL_FORC_idp27662112.html delete mode 100644 doc/html/BOOST_DLL_FORC_idp27664016.html create mode 100644 doc/html/BOOST_DLL_FORC_idp36961376.html create mode 100644 doc/html/BOOST_DLL_FORC_idp36963232.html delete mode 100644 doc/html/BOOST_INTRUSIV_idp55099840.html delete mode 100644 doc/html/BOOST_INTRUSIV_idp55106064.html create mode 100644 doc/html/BOOST_INTRUSIV_idp55880560.html create mode 100644 doc/html/BOOST_INTRUSIV_idp55886784.html delete mode 100644 doc/html/BOOST_MPI_BCA_1_3_26_6_6_7.html delete mode 100644 doc/html/BOOST_MPI_CAL_1_3_26_6_6_6.html delete mode 100644 doc/html/BOOST_MPI_HAS_1_3_26_6_6_4.html delete mode 100644 doc/html/BOOST_MPI_HAS_1_3_26_6_6_5.html create mode 100644 doc/html/BOOST_MPI__1_3_26_5_14_7_4.html create mode 100644 doc/html/BOOST_MPI__1_3_26_5_14_7_5.html create mode 100644 doc/html/BOOST_MPI__1_3_26_5_14_7_6.html create mode 100644 doc/html/BOOST_MPI__1_3_26_5_14_7_7.html delete mode 100644 doc/html/BOOST_SER_1_3_12_15_5_16_1.html create mode 100644 doc/html/BOOST_SER_1_3_13_15_5_16_1.html delete mode 100644 doc/html/boost/circular_buffe_idp24565232.html create mode 100644 doc/html/boost/circular_buffe_idp43443760.html create mode 100644 doc/html/boost/container/constructible__idp60397280.html create mode 100644 doc/html/boost/container/constructible__idp60406672.html delete mode 100644 doc/html/boost/container/constructible__idp67492240.html delete mode 100644 doc/html/boost/container/constructible__idp67501632.html create mode 100644 doc/html/boost/container/growth_factor.html create mode 100644 doc/html/boost/container/growth_factor_100.html create mode 100644 doc/html/boost/container/growth_factor_50.html create mode 100644 doc/html/boost/container/growth_factor_60.html create mode 100644 doc/html/boost/container/new_allocator__idp55809792.html create mode 100644 doc/html/boost/container/new_allocator__idp55809792/rebind.html delete mode 100644 doc/html/boost/container/new_allocator__idp62944752.html delete mode 100644 doc/html/boost/container/new_allocator__idp62944752/rebind.html create mode 100644 doc/html/boost/container/operator___idp59193360.html create mode 100644 doc/html/boost/container/operator___idp59203376.html create mode 100644 doc/html/boost/container/operator___idp59233376.html create mode 100644 doc/html/boost/container/operator___idp59243360.html delete mode 100644 doc/html/boost/container/operator___idp66288880.html delete mode 100644 doc/html/boost/container/operator___idp66298896.html delete mode 100644 doc/html/boost/container/operator___idp66328896.html delete mode 100644 doc/html/boost/container/operator___idp66338880.html create mode 100644 doc/html/boost/container/operator_idp59213408.html create mode 100644 doc/html/boost/container/operator_idp59223392.html delete mode 100644 doc/html/boost/container/operator_idp66308928.html delete mode 100644 doc/html/boost/container/operator_idp66318912.html create mode 100644 doc/html/boost/container/pmr/unsynchronized_idp56479344.html delete mode 100644 doc/html/boost/container/pmr/unsynchronized_idp63576512.html create mode 100644 doc/html/boost/container/stored_size.html create mode 100644 doc/html/boost/container/swap_idp59253344.html delete mode 100644 doc/html/boost/container/swap_idp66348864.html delete mode 100644 doc/html/boost/container/tree_assoc_defaults.html create mode 100644 doc/html/boost/container/tree_assoc_options_t.html create mode 100644 doc/html/boost/container/vector_options.html create mode 100644 doc/html/boost/container/vector_options_t.html delete mode 100644 doc/html/boost/date_time/dynam_1_3_12_15_3_30_2_1_2.html create mode 100644 doc/html/boost/date_time/dynam_1_3_13_15_3_30_2_1_2.html delete mode 100644 doc/html/boost/date_time/fixed_1_3_12_15_3_26_2_1_2.html delete mode 100644 doc/html/boost/date_time/fixed_1_3_12_15_3_26_2_1_3.html create mode 100644 doc/html/boost/date_time/fixed_1_3_13_15_3_26_2_1_2.html create mode 100644 doc/html/boost/date_time/fixed_1_3_13_15_3_26_2_1_3.html delete mode 100644 doc/html/boost/date_time/from__1_3_12_15_3_22_1_1_6.html delete mode 100644 doc/html/boost/date_time/from__1_3_12_15_3_22_1_1_7.html delete mode 100644 doc/html/boost/date_time/from__1_3_12_15_3_22_1_1_8.html delete mode 100644 doc/html/boost/date_time/from__1_3_12_15_3_22_1_1_9.html create mode 100644 doc/html/boost/date_time/from__1_3_13_15_3_22_1_1_6.html create mode 100644 doc/html/boost/date_time/from__1_3_13_15_3_22_1_1_7.html create mode 100644 doc/html/boost/date_time/from__1_3_13_15_3_22_1_1_8.html create mode 100644 doc/html/boost/date_time/from__1_3_13_15_3_22_1_1_9.html delete mode 100644 doc/html/boost/date_time/iso_f_1_3_12_15_3_29_1_1_2.html create mode 100644 doc/html/boost/date_time/iso_f_1_3_13_15_3_29_1_1_2.html delete mode 100644 doc/html/boost/date_time/opera_1_3_12_15_3_28_1_1_2.html create mode 100644 doc/html/boost/date_time/opera_1_3_13_15_3_28_1_1_2.html delete mode 100644 doc/html/boost/date_time/ostre_1_3_12_15_3_49_1_1_1.html delete mode 100644 doc/html/boost/date_time/ostre_1_3_12_15_3_49_1_1_3.html create mode 100644 doc/html/boost/date_time/ostre_1_3_13_15_3_49_1_1_1.html create mode 100644 doc/html/boost/date_time/ostre_1_3_13_15_3_49_1_1_3.html delete mode 100644 doc/html/boost/date_time/parse_1_3_12_15_3_51_1_1_3.html create mode 100644 doc/html/boost/date_time/parse_1_3_13_15_3_51_1_1_3.html delete mode 100644 doc/html/boost/date_time/simpl_1_3_12_15_3_13_1_1_2.html create mode 100644 doc/html/boost/date_time/simpl_1_3_13_15_3_13_1_1_2.html delete mode 100644 doc/html/boost/date_time/str_f_1_3_12_15_3_51_1_1_2.html create mode 100644 doc/html/boost/date_time/str_f_1_3_13_15_3_51_1_1_2.html delete mode 100644 doc/html/boost/date_time/time__1_3_12_15_3_52_1_1_1.html delete mode 100644 doc/html/boost/date_time/time__1_3_12_15_3_52_1_1_2.html delete mode 100644 doc/html/boost/date_time/time__1_3_12_15_3_52_1_1_3.html delete mode 100644 doc/html/boost/date_time/time__1_3_12_15_3_52_1_1_4.html create mode 100644 doc/html/boost/date_time/time__1_3_13_15_3_52_1_1_1.html create mode 100644 doc/html/boost/date_time/time__1_3_13_15_3_52_1_1_2.html create mode 100644 doc/html/boost/date_time/time__1_3_13_15_3_52_1_1_3.html create mode 100644 doc/html/boost/date_time/time__1_3_13_15_3_52_1_1_4.html delete mode 100644 doc/html/boost/dll/experimental/get_idp28753888.html delete mode 100644 doc/html/boost/dll/experimental/get_idp28770608.html create mode 100644 doc/html/boost/dll/experimental/get_idp38057568.html create mode 100644 doc/html/boost/dll/experimental/get_idp38074288.html delete mode 100644 doc/html/boost/dll/experimental/import_class_idp28282208.html create mode 100644 doc/html/boost/dll/experimental/import_class_idp37573920.html create mode 100644 doc/html/boost/graph_t_1_3_26_5_14_12_2_1.html delete mode 100644 doc/html/boost/graph_trai_1_3_26_6_11_2_1.html delete mode 100644 doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_3.html delete mode 100644 doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_4.html delete mode 100644 doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_5.html delete mode 100644 doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_6.html create mode 100644 doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_3.html create mode 100644 doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_4.html create mode 100644 doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_5.html create mode 100644 doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_6.html create mode 100644 doc/html/boost/hash_T_1_3_11_11_2_2_24.html delete mode 100644 doc/html/boost/hash_T_1_3_16_11_2_2_24.html create mode 100644 doc/html/boost/hash_bool_1_3_11_11_2_2_2.html delete mode 100644 doc/html/boost/hash_bool_1_3_16_11_2_2_2.html create mode 100644 doc/html/boost/hash_char1_1_3_11_11_2_2_7.html delete mode 100644 doc/html/boost/hash_char1_1_3_16_11_2_2_7.html create mode 100644 doc/html/boost/hash_char3_1_3_11_11_2_2_8.html delete mode 100644 doc/html/boost/hash_char3_1_3_16_11_2_2_8.html create mode 100644 doc/html/boost/hash_char_1_3_11_11_2_2_3.html delete mode 100644 doc/html/boost/hash_char_1_3_16_11_2_2_3.html create mode 100644 doc/html/boost/hash_doub_1_3_11_11_2_2_18.html delete mode 100644 doc/html/boost/hash_doub_1_3_16_11_2_2_18.html create mode 100644 doc/html/boost/hash_floa_1_3_11_11_2_2_17.html delete mode 100644 doc/html/boost/hash_floa_1_3_16_11_2_2_17.html create mode 100644 doc/html/boost/hash_int_1_3_11_11_2_2_11.html delete mode 100644 doc/html/boost/hash_int_1_3_16_11_2_2_11.html create mode 100644 doc/html/boost/hash_long_1_3_11_11_2_2_13.html create mode 100644 doc/html/boost/hash_long_1_3_11_11_2_2_15.html create mode 100644 doc/html/boost/hash_long_1_3_11_11_2_2_19.html delete mode 100644 doc/html/boost/hash_long_1_3_16_11_2_2_13.html delete mode 100644 doc/html/boost/hash_long_1_3_16_11_2_2_15.html delete mode 100644 doc/html/boost/hash_long_1_3_16_11_2_2_19.html create mode 100644 doc/html/boost/hash_short_1_3_11_11_2_2_9.html delete mode 100644 doc/html/boost/hash_short_1_3_16_11_2_2_9.html create mode 100644 doc/html/boost/hash_signe_1_3_11_11_2_2_4.html delete mode 100644 doc/html/boost/hash_signe_1_3_16_11_2_2_4.html create mode 100644 doc/html/boost/hash_std__1_3_11_11_2_2_20.html create mode 100644 doc/html/boost/hash_std__1_3_11_11_2_2_21.html create mode 100644 doc/html/boost/hash_std__1_3_11_11_2_2_22.html create mode 100644 doc/html/boost/hash_std__1_3_11_11_2_2_23.html create mode 100644 doc/html/boost/hash_std__1_3_11_11_2_2_25.html delete mode 100644 doc/html/boost/hash_std__1_3_16_11_2_2_20.html delete mode 100644 doc/html/boost/hash_std__1_3_16_11_2_2_21.html delete mode 100644 doc/html/boost/hash_std__1_3_16_11_2_2_22.html delete mode 100644 doc/html/boost/hash_std__1_3_16_11_2_2_23.html delete mode 100644 doc/html/boost/hash_std__1_3_16_11_2_2_25.html create mode 100644 doc/html/boost/hash_unsi_1_3_11_11_2_2_10.html create mode 100644 doc/html/boost/hash_unsi_1_3_11_11_2_2_12.html create mode 100644 doc/html/boost/hash_unsi_1_3_11_11_2_2_14.html create mode 100644 doc/html/boost/hash_unsi_1_3_11_11_2_2_16.html delete mode 100644 doc/html/boost/hash_unsi_1_3_16_11_2_2_10.html delete mode 100644 doc/html/boost/hash_unsi_1_3_16_11_2_2_12.html delete mode 100644 doc/html/boost/hash_unsi_1_3_16_11_2_2_14.html delete mode 100644 doc/html/boost/hash_unsi_1_3_16_11_2_2_16.html create mode 100644 doc/html/boost/hash_unsig_1_3_11_11_2_2_5.html delete mode 100644 doc/html/boost/hash_unsig_1_3_16_11_2_2_5.html create mode 100644 doc/html/boost/hash_wchar_1_3_11_11_2_2_6.html delete mode 100644 doc/html/boost/hash_wchar_1_3_16_11_2_2_6.html create mode 100644 doc/html/boost/heap/skew_heap/push_handle.html create mode 100644 doc/html/boost/heap/skew_heap/push_void.html create mode 100644 doc/html/boost/interprocess/basic_managed__idp39474400.html create mode 100644 doc/html/boost/interprocess/basic_managed__idp39582912.html create mode 100644 doc/html/boost/interprocess/basic_managed__idp39640656.html create mode 100644 doc/html/boost/interprocess/basic_managed__idp39689376.html delete mode 100644 doc/html/boost/interprocess/basic_managed__idp55379840.html delete mode 100644 doc/html/boost/interprocess/basic_managed__idp55488352.html delete mode 100644 doc/html/boost/interprocess/basic_managed__idp55546096.html delete mode 100644 doc/html/boost/interprocess/basic_managed__idp55594816.html create mode 100644 doc/html/boost/interprocess/fixed_managed__idp39630976.html delete mode 100644 doc/html/boost/interprocess/fixed_managed__idp55536416.html create mode 100644 doc/html/boost/interprocess/interprocess_r_idp40896864.html delete mode 100644 doc/html/boost/interprocess/interprocess_r_idp56793568.html create mode 100644 doc/html/boost/interprocess/interprocess_s_idp40942256.html delete mode 100644 doc/html/boost/interprocess/interprocess_s_idp56838960.html create mode 100644 doc/html/boost/interprocess/interprocess_u_idp40973072.html delete mode 100644 doc/html/boost/interprocess/interprocess_u_idp56869776.html create mode 100644 doc/html/boost/interprocess/make_managed_s_idp40508976.html create mode 100644 doc/html/boost/interprocess/make_managed_s_idp40513488.html delete mode 100644 doc/html/boost/interprocess/make_managed_s_idp56405680.html delete mode 100644 doc/html/boost/interprocess/make_managed_s_idp56410192.html create mode 100644 doc/html/boost/interprocess/managed_window_idp39679728.html delete mode 100644 doc/html/boost/interprocess/managed_window_idp55585168.html create mode 100644 doc/html/boost/interprocess/operator___idp38496176.html create mode 100644 doc/html/boost/interprocess/operator___idp38504448.html create mode 100644 doc/html/boost/interprocess/operator___idp38584608.html create mode 100644 doc/html/boost/interprocess/operator___idp38589584.html create mode 100644 doc/html/boost/interprocess/operator___idp38691552.html create mode 100644 doc/html/boost/interprocess/operator___idp38699840.html create mode 100644 doc/html/boost/interprocess/operator___idp38798784.html create mode 100644 doc/html/boost/interprocess/operator___idp38805344.html create mode 100644 doc/html/boost/interprocess/operator___idp38898704.html create mode 100644 doc/html/boost/interprocess/operator___idp38905248.html create mode 100644 doc/html/boost/interprocess/operator___idp39004656.html create mode 100644 doc/html/boost/interprocess/operator___idp39012944.html create mode 100644 doc/html/boost/interprocess/operator___idp39109776.html create mode 100644 doc/html/boost/interprocess/operator___idp39118064.html create mode 100644 doc/html/boost/interprocess/operator___idp40278064.html create mode 100644 doc/html/boost/interprocess/operator___idp40283280.html create mode 100644 doc/html/boost/interprocess/operator___idp40288496.html create mode 100644 doc/html/boost/interprocess/operator___idp40293296.html create mode 100644 doc/html/boost/interprocess/operator___idp40298096.html create mode 100644 doc/html/boost/interprocess/operator___idp40302896.html delete mode 100644 doc/html/boost/interprocess/operator___idp54401248.html delete mode 100644 doc/html/boost/interprocess/operator___idp54409520.html delete mode 100644 doc/html/boost/interprocess/operator___idp54489968.html delete mode 100644 doc/html/boost/interprocess/operator___idp54494944.html delete mode 100644 doc/html/boost/interprocess/operator___idp54596912.html delete mode 100644 doc/html/boost/interprocess/operator___idp54605200.html delete mode 100644 doc/html/boost/interprocess/operator___idp54704144.html delete mode 100644 doc/html/boost/interprocess/operator___idp54710704.html delete mode 100644 doc/html/boost/interprocess/operator___idp54804064.html delete mode 100644 doc/html/boost/interprocess/operator___idp54810608.html delete mode 100644 doc/html/boost/interprocess/operator___idp54910016.html delete mode 100644 doc/html/boost/interprocess/operator___idp54918304.html delete mode 100644 doc/html/boost/interprocess/operator___idp55015136.html delete mode 100644 doc/html/boost/interprocess/operator___idp55023424.html delete mode 100644 doc/html/boost/interprocess/operator___idp56174768.html delete mode 100644 doc/html/boost/interprocess/operator___idp56179984.html delete mode 100644 doc/html/boost/interprocess/operator___idp56185200.html delete mode 100644 doc/html/boost/interprocess/operator___idp56190000.html delete mode 100644 doc/html/boost/interprocess/operator___idp56194800.html delete mode 100644 doc/html/boost/interprocess/operator___idp56199600.html create mode 100644 doc/html/boost/interprocess/operator_idp39971568.html create mode 100644 doc/html/boost/interprocess/operator_idp39978480.html create mode 100644 doc/html/boost/interprocess/operator_idp40307696.html delete mode 100644 doc/html/boost/interprocess/operator_idp55877088.html delete mode 100644 doc/html/boost/interprocess/operator_idp55884000.html delete mode 100644 doc/html/boost/interprocess/operator_idp56204400.html create mode 100644 doc/html/boost/interprocess/swap_idp40312352.html create mode 100644 doc/html/boost/interprocess/swap_idp40362672.html delete mode 100644 doc/html/boost/interprocess/swap_idp56209056.html delete mode 100644 doc/html/boost/interprocess/swap_idp56259376.html create mode 100644 doc/html/boost/interprocess/to_raw_pointer_idp40322096.html create mode 100644 doc/html/boost/interprocess/to_raw_pointer_idp40368064.html delete mode 100644 doc/html/boost/interprocess/to_raw_pointer_idp56218800.html delete mode 100644 doc/html/boost/interprocess/to_raw_pointer_idp56264768.html create mode 100644 doc/html/boost/interprocess/wfixed_managed_idp39634704.html delete mode 100644 doc/html/boost/interprocess/wfixed_managed_idp55540144.html create mode 100644 doc/html/boost/interprocess/wmanaged_windo_idp39683440.html delete mode 100644 doc/html/boost/interprocess/wmanaged_windo_idp55588880.html delete mode 100644 doc/html/boost/intrusive/get_parent_fro_idp55114128.html delete mode 100644 doc/html/boost/intrusive/get_parent_fro_idp55118400.html create mode 100644 doc/html/boost/intrusive/get_parent_fro_idp55894848.html create mode 100644 doc/html/boost/intrusive/get_parent_fro_idp55899120.html delete mode 100644 doc/html/boost/intrusive/make_unordered_idp65807072.html delete mode 100644 doc/html/boost/intrusive/make_unordered_idp65862816.html create mode 100644 doc/html/boost/intrusive/make_unordered_idp66587792.html create mode 100644 doc/html/boost/intrusive/make_unordered_idp66643536.html delete mode 100644 doc/html/boost/intrusive/max_pointer_pl_idp55128640.html create mode 100644 doc/html/boost/intrusive/max_pointer_pl_idp55909360.html delete mode 100644 doc/html/boost/intrusive/pointer_plus_b_idp55135712.html create mode 100644 doc/html/boost/intrusive/pointer_plus_b_idp55916432.html delete mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55187168.html delete mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55190832.html delete mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55194496.html delete mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55200144.html delete mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55207392.html create mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55967888.html create mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55971552.html create mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55975216.html create mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55980864.html create mode 100644 doc/html/boost/intrusive/pointer_rebind_idp55988112.html delete mode 100644 doc/html/boost/intrusive/pointer_traits_idp55252544.html delete mode 100644 doc/html/boost/intrusive/pointer_traits_idp55252544/rebind_pointer.html create mode 100644 doc/html/boost/intrusive/pointer_traits_idp56033264.html create mode 100644 doc/html/boost/intrusive/pointer_traits_idp56033264/rebind_pointer.html delete mode 100644 doc/html/boost/intrusive/priority_compa_idp55286240.html create mode 100644 doc/html/boost/intrusive/priority_compa_idp56066960.html delete mode 100644 doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_1.html delete mode 100644 doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_2.html delete mode 100644 doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_3.html delete mode 100644 doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_4.html delete mode 100644 doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_5.html delete mode 100644 doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_6.html delete mode 100644 doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_7.html delete mode 100644 doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_8.html create mode 100644 doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_1.html create mode 100644 doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_2.html create mode 100644 doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_3.html create mode 100644 doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_4.html create mode 100644 doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_5.html create mode 100644 doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_6.html create mode 100644 doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_7.html create mode 100644 doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_8.html create mode 100644 doc/html/boost/lockfree/spsc_queue/implementation_defined.html create mode 100644 doc/html/boost/logic/get_default_in_idp31765120.html delete mode 100644 doc/html/boost/logic/get_default_in_idp39719728.html create mode 100644 doc/html/boost/logic/operator_idp31661568.html create mode 100644 doc/html/boost/logic/operator_idp31770720.html create mode 100644 doc/html/boost/logic/operator_idp31779280.html create mode 100644 doc/html/boost/logic/operator_idp31785552.html delete mode 100644 doc/html/boost/logic/operator_idp39616176.html delete mode 100644 doc/html/boost/logic/operator_idp39725328.html delete mode 100644 doc/html/boost/logic/operator_idp39733888.html delete mode 100644 doc/html/boost/logic/operator_idp39740160.html create mode 100644 doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2.html create mode 100644 doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2/rebind.html delete mode 100644 doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2.html delete mode 100644 doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2/rebind.html create mode 100644 doc/html/boost/mpi/cartesian_communicator.html create mode 100644 doc/html/boost/mpi/cartesian_dimension.html create mode 100644 doc/html/boost/mpi/cartesian_dimensions.html create mode 100644 doc/html/boost/mpi/cartesian_topology.html create mode 100644 doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_11.html create mode 100644 doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_12.html delete mode 100644 doc/html/boost/mpi/get_1_3_26_6_11_2_2_11.html delete mode 100644 doc/html/boost/mpi/get_1_3_26_6_11_2_2_12.html create mode 100644 doc/html/boost/mpi/get_mp_1_3_26_5_14_8_2_1_8.html delete mode 100644 doc/html/boost/mpi/get_mpi_d_1_3_26_6_7_2_1_8.html create mode 100644 doc/html/boost/mpi/inpla_1_3_26_5_14_14_2_1_2.html delete mode 100644 doc/html/boost/mpi/inplace__1_3_26_6_13_2_1_2.html create mode 100644 doc/html/boost/mpi/is_mpi_1_3_26_5_14_3_2_1_2.html create mode 100644 doc/html/boost/mpi/is_mpi_1_3_26_5_14_8_2_1_2.html delete mode 100644 doc/html/boost/mpi/is_mpi_fl_1_3_26_6_7_2_1_2.html create mode 100644 doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_2.html create mode 100644 doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_3.html create mode 100644 doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_4.html create mode 100644 doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_3.html create mode 100644 doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_4.html create mode 100644 doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_5.html create mode 100644 doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_6.html delete mode 100644 doc/html/boost/mpi/operator_1_3_26_6_12_2_1_2.html delete mode 100644 doc/html/boost/mpi/operator_1_3_26_6_12_2_1_3.html delete mode 100644 doc/html/boost/mpi/operator_1_3_26_6_12_2_1_4.html delete mode 100644 doc/html/boost/mpi/operator__1_3_26_6_2_2_1_3.html delete mode 100644 doc/html/boost/mpi/operator__1_3_26_6_2_2_1_4.html delete mode 100644 doc/html/boost/mpi/operator__1_3_26_6_5_2_1_5.html delete mode 100644 doc/html/boost/mpi/operator__1_3_26_6_5_2_1_6.html create mode 100644 doc/html/boost/mpi/python/reg_1_3_26_5_14_20_2_1_1_2.html delete mode 100644 doc/html/boost/mpi/python/regist_1_3_26_6_19_2_1_1_2.html create mode 100644 doc/html/boost/mpi/threading/ope_1_3_26_5_14_10_2_1_2_2.html create mode 100644 doc/html/boost/mpi/threading/ope_1_3_26_5_14_10_2_1_2_3.html delete mode 100644 doc/html/boost/mpi/threading/operato_1_3_26_6_9_2_1_2_2.html delete mode 100644 doc/html/boost/mpi/threading/operato_1_3_26_6_9_2_1_2_3.html delete mode 100644 doc/html/boost/operator___idp24460448.html delete mode 100644 doc/html/boost/operator___idp24487216.html delete mode 100644 doc/html/boost/operator___idp24515552.html delete mode 100644 doc/html/boost/operator___idp24529728.html create mode 100644 doc/html/boost/operator___idp43338976.html create mode 100644 doc/html/boost/operator___idp43365744.html create mode 100644 doc/html/boost/operator___idp43394080.html create mode 100644 doc/html/boost/operator___idp43408256.html delete mode 100644 doc/html/boost/operator_idp24473872.html delete mode 100644 doc/html/boost/operator_idp24501376.html create mode 100644 doc/html/boost/operator_idp43352400.html create mode 100644 doc/html/boost/operator_idp43379904.html delete mode 100644 doc/html/boost/posix_time/millis_1_3_12_15_5_5_1_1_4.html create mode 100644 doc/html/boost/posix_time/millis_1_3_13_15_5_5_1_1_4.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_1.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_2.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_3.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_4.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_5.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_6.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_7.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_8.html delete mode 100644 doc/html/boost/posix_time/operat_1_3_12_15_5_8_1_1_6.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_1.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_2.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_3.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_4.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_5.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_6.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_7.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_8.html create mode 100644 doc/html/boost/posix_time/operat_1_3_13_15_5_8_1_1_6.html create mode 100644 doc/html/boost/process/windows/create_no_window.html delete mode 100644 doc/html/boost/swap_idp24543920.html create mode 100644 doc/html/boost/swap_idp43422448.html delete mode 100644 doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_1.html create mode 100644 doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_4.html create mode 100644 doc/html/boost_asio/example/cpp03/timeouts/blocking_token_tcp_client.cpp delete mode 100644 doc/html/boost_asio/example/cpp03/timers/tick_count_timer.cpp create mode 100644 doc/html/boost_asio/example/cpp17/coroutines_ts/chat_server.cpp create mode 100644 doc/html/boost_asio/example/cpp17/coroutines_ts/double_buffered_echo_server.cpp create mode 100644 doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server.cpp create mode 100644 doc/html/boost_asio/example/cpp17/coroutines_ts/range_based_for.cpp create mode 100644 doc/html/boost_asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp create mode 100644 doc/html/boost_asio/examples/cpp17_examples.html create mode 100644 doc/html/boost_asio/overview/core/coroutines_ts.html create mode 100644 doc/html/boost_asio/reference/LegacyCompletionHandler.html create mode 100644 doc/html/boost_asio/reference/experimental__await_token.html create mode 100644 doc/html/boost_asio/reference/experimental__await_token/await_token.html create mode 100644 doc/html/boost_asio/reference/experimental__await_token/await_token/overload1.html create mode 100644 doc/html/boost_asio/reference/experimental__await_token/await_token/overload2.html create mode 100644 doc/html/boost_asio/reference/experimental__await_token/executor_type.html create mode 100644 doc/html/boost_asio/reference/experimental__await_token/get_executor.html create mode 100644 doc/html/boost_asio/reference/experimental__awaitable.html create mode 100644 doc/html/boost_asio/reference/experimental__awaitable/_awaitable.html create mode 100644 doc/html/boost_asio/reference/experimental__awaitable/awaitable.html create mode 100644 doc/html/boost_asio/reference/experimental__awaitable/executor_type.html create mode 100644 doc/html/boost_asio/reference/experimental__awaitable/value_type.html create mode 100644 doc/html/boost_asio/reference/experimental__co_spawn.html create mode 100644 doc/html/boost_asio/reference/experimental__co_spawn/overload1.html create mode 100644 doc/html/boost_asio/reference/experimental__co_spawn/overload2.html create mode 100644 doc/html/boost_asio/reference/experimental__co_spawn/overload3.html create mode 100644 doc/html/boost_asio/reference/experimental__detached.html create mode 100644 doc/html/boost_asio/reference/experimental__detached_t.html create mode 100644 doc/html/boost_asio/reference/experimental__detached_t/detached_t.html create mode 100644 doc/html/boost_asio/reference/experimental__redirect_error.html create mode 100644 doc/html/boost_asio/reference/experimental__redirect_error_t.html create mode 100644 doc/html/boost_asio/reference/experimental__redirect_error_t/ec_.html create mode 100644 doc/html/boost_asio/reference/experimental__redirect_error_t/redirect_error_t.html create mode 100644 doc/html/boost_asio/reference/experimental__redirect_error_t/token_.html create mode 100644 doc/html/boost_asio/reference/experimental__this_coro__executor.html create mode 100644 doc/html/boost_asio/reference/experimental__this_coro__executor_t.html create mode 100644 doc/html/boost_asio/reference/experimental__this_coro__token.html create mode 100644 doc/html/boost_asio/reference/experimental__this_coro__token_t.html create mode 100644 doc/html/container/configurable_containers.html create mode 100644 doc/html/container/extended_allocators.html create mode 100644 doc/html/container/polymorphic_memory_resources.html delete mode 100644 doc/html/load_1_3_12_15_5_16_2.html delete mode 100644 doc/html/load_1_3_12_15_5_16_4.html delete mode 100644 doc/html/load_1_3_12_15_5_16_7.html create mode 100644 doc/html/load_1_3_13_15_5_16_6.html create mode 100644 doc/html/load_1_3_13_15_5_16_9.html create mode 100644 doc/html/load_td.html delete mode 100644 doc/html/mpi/python.html delete mode 100644 doc/html/mpi/reference.html delete mode 100644 doc/html/save_1_3_12_15_5_16_3.html delete mode 100644 doc/html/save_1_3_12_15_5_16_6.html create mode 100644 doc/html/save_1_3_13_15_5_16_5.html create mode 100644 doc/html/save_1_3_13_15_5_16_8.html delete mode 100644 doc/html/serialization/load_1_3_12_15_4_13_1_12.html delete mode 100644 doc/html/serialization/load_1_3_12_15_4_13_1_27.html delete mode 100644 doc/html/serialization/load_1_3_12_15_4_13_1_3.html delete mode 100644 doc/html/serialization/load_1_3_12_15_4_13_1_30.html delete mode 100644 doc/html/serialization/load_1_3_12_15_4_13_1_33.html delete mode 100644 doc/html/serialization/load_1_3_12_15_4_13_1_36.html create mode 100644 doc/html/serialization/load_1_3_13_15_4_13_1_12.html create mode 100644 doc/html/serialization/load_1_3_13_15_4_13_1_27.html create mode 100644 doc/html/serialization/load_1_3_13_15_4_13_1_3.html create mode 100644 doc/html/serialization/load_1_3_13_15_4_13_1_30.html create mode 100644 doc/html/serialization/load_1_3_13_15_4_13_1_33.html create mode 100644 doc/html/serialization/load_1_3_13_15_4_13_1_36.html delete mode 100644 doc/html/serialization/save_1_3_12_15_4_13_1_11.html delete mode 100644 doc/html/serialization/save_1_3_12_15_4_13_1_2.html delete mode 100644 doc/html/serialization/save_1_3_12_15_4_13_1_26.html delete mode 100644 doc/html/serialization/save_1_3_12_15_4_13_1_29.html delete mode 100644 doc/html/serialization/save_1_3_12_15_4_13_1_32.html delete mode 100644 doc/html/serialization/save_1_3_12_15_4_13_1_35.html create mode 100644 doc/html/serialization/save_1_3_13_15_4_13_1_11.html create mode 100644 doc/html/serialization/save_1_3_13_15_4_13_1_2.html create mode 100644 doc/html/serialization/save_1_3_13_15_4_13_1_26.html create mode 100644 doc/html/serialization/save_1_3_13_15_4_13_1_29.html create mode 100644 doc/html/serialization/save_1_3_13_15_4_13_1_32.html create mode 100644 doc/html/serialization/save_1_3_13_15_4_13_1_35.html create mode 100644 doc/html/std/insert_iterato_idp58095904.html delete mode 100644 doc/html/std/insert_iterato_idp65191984.html (limited to 'doc/html') diff --git a/doc/html/BOOST_CB_ASSER_idp14364704.html b/doc/html/BOOST_CB_ASSER_idp14364704.html deleted file mode 100644 index a4053b877e..0000000000 --- a/doc/html/BOOST_CB_ASSER_idp14364704.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - -Macro BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS

-

BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS

-
-

Synopsis

-
// In header: <boost/circular_buffer.hpp>
-
-BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_CB_ASSER_idp33239264.html b/doc/html/BOOST_CB_ASSER_idp33239264.html new file mode 100644 index 0000000000..4a7b10f926 --- /dev/null +++ b/doc/html/BOOST_CB_ASSER_idp33239264.html @@ -0,0 +1,50 @@ + + + + +Macro BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS

+

BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS

+
+

Synopsis

+
// In header: <boost/circular_buffer.hpp>
+
+BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_CB_IS_CONVERTIBLE.html b/doc/html/BOOST_CB_IS_CONVERTIBLE.html index 954da4c0c1..b1947e7379 100644 --- a/doc/html/BOOST_CB_IS_CONVERTIBLE.html +++ b/doc/html/BOOST_CB_IS_CONVERTIBLE.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

-PrevUpHomeNext +PrevUpHomeNext
@@ -44,7 +44,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/BOOST_DLL_ALIAS.html b/doc/html/BOOST_DLL_ALIAS.html index f8249b34a1..a0f292bad2 100644 --- a/doc/html/BOOST_DLL_ALIAS.html +++ b/doc/html/BOOST_DLL_ALIAS.html @@ -34,7 +34,7 @@ BOOST_DLL_ALIAS(FunctionOrVar, AliasName)
-

Description

+

Description

This macro is useful in cases of long mangled C++ names. For example some void boost::foo(std::sting) function name will change to something like N5boostN3foosE after mangling. Importing function by N5boostN3foosE name does not looks user friendly, especially assuming the fact that different compilers have different mangling schemes. AliasName is the name that won't be mangled and can be used as a portable import name.

Can be used in any namespace, including global. FunctionOrVar must be fully qualified, so that address of it could be taken. Multiple different aliases for a single variable/function are allowed.

Make sure that AliasNames are unique per library/executable. Functions or variables in global namespace must not have names same as AliasNames.

diff --git a/doc/html/BOOST_DLL_ALIAS_SECTIONED.html b/doc/html/BOOST_DLL_ALIAS_SECTIONED.html index bc23a20ee6..3a19ec8b7d 100644 --- a/doc/html/BOOST_DLL_ALIAS_SECTIONED.html +++ b/doc/html/BOOST_DLL_ALIAS_SECTIONED.html @@ -34,7 +34,7 @@ BOOST_DLL_ALIAS_SECTIONED(FunctionOrVar, AliasName, SectionName)
-

Description

+

Description

Example:

namespace foo {
diff --git a/doc/html/BOOST_DLL_AUTO_ALIAS.html b/doc/html/BOOST_DLL_AUTO_ALIAS.html
index ab5fbbb887..fc871eeecb 100644
--- a/doc/html/BOOST_DLL_AUTO_ALIAS.html
+++ b/doc/html/BOOST_DLL_AUTO_ALIAS.html
@@ -34,7 +34,7 @@
 
 BOOST_DLL_AUTO_ALIAS(FunctionOrVar)
-

Description

+

Description

This macro is useful in cases of long mangled C++ names. For example some void boost::foo(std::sting) function name will change to something like N5boostN3foosE after mangling. Importing function by N5boostN3foosE name does not looks user friendly, especially assuming the fact that different compilers have different mangling schemes.*

Must be used in scope where FunctionOrVar declared. FunctionOrVar must be a valid C name, which means that it must not contain ::.

Functions or variables in global namespace must not have names same as FunctionOrVar.

diff --git a/doc/html/BOOST_DLL_FORC_idp27662112.html b/doc/html/BOOST_DLL_FORC_idp27662112.html deleted file mode 100644 index c0a39955ad..0000000000 --- a/doc/html/BOOST_DLL_FORC_idp27662112.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Macro BOOST_DLL_FORCE_ALIAS_INSTANTIATION - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_DLL_FORCE_ALIAS_INSTANTIATION

-

BOOST_DLL_FORCE_ALIAS_INSTANTIATION

-
-

Synopsis

-
// In header: <boost/dll/alias.hpp>
-
-BOOST_DLL_FORCE_ALIAS_INSTANTIATION
-
-

Description

-

Define this macro to explicitly specify translation unit in which alias must be instantiated. See section 'Limitations' for more info. You may find usage examples in source codes of almost each tutorial. Must be used in code, when BOOST_DLL_FORCE_NO_WEAK_EXPORTS is defined

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_DLL_FORC_idp27664016.html b/doc/html/BOOST_DLL_FORC_idp27664016.html deleted file mode 100644 index c58dd12c34..0000000000 --- a/doc/html/BOOST_DLL_FORC_idp27664016.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Macro BOOST_DLL_FORCE_NO_WEAK_EXPORTS - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_DLL_FORCE_NO_WEAK_EXPORTS

-

BOOST_DLL_FORCE_NO_WEAK_EXPORTS

-
-

Synopsis

-
// In header: <boost/dll/alias.hpp>
-
-BOOST_DLL_FORCE_NO_WEAK_EXPORTS
-
-

Description

-

Define this macro to disable exporting weak symbols and start using the BOOST_DLL_FORCE_ALIAS_INSTANTIATION. This may be usefull for working around linker problems or to test your program for compatability with linkers that do not support export of weak symbols.

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_DLL_FORC_idp36961376.html b/doc/html/BOOST_DLL_FORC_idp36961376.html new file mode 100644 index 0000000000..39bd600c99 --- /dev/null +++ b/doc/html/BOOST_DLL_FORC_idp36961376.html @@ -0,0 +1,54 @@ + + + + +Macro BOOST_DLL_FORCE_ALIAS_INSTANTIATION + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_DLL_FORCE_ALIAS_INSTANTIATION

+

BOOST_DLL_FORCE_ALIAS_INSTANTIATION

+
+

Synopsis

+
// In header: <boost/dll/alias.hpp>
+
+BOOST_DLL_FORCE_ALIAS_INSTANTIATION
+
+

Description

+

Define this macro to explicitly specify translation unit in which alias must be instantiated. See section 'Limitations' for more info. You may find usage examples in source codes of almost each tutorial. Must be used in code, when BOOST_DLL_FORCE_NO_WEAK_EXPORTS is defined

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_DLL_FORC_idp36963232.html b/doc/html/BOOST_DLL_FORC_idp36963232.html new file mode 100644 index 0000000000..7d2ac4f936 --- /dev/null +++ b/doc/html/BOOST_DLL_FORC_idp36963232.html @@ -0,0 +1,54 @@ + + + + +Macro BOOST_DLL_FORCE_NO_WEAK_EXPORTS + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_DLL_FORCE_NO_WEAK_EXPORTS

+

BOOST_DLL_FORCE_NO_WEAK_EXPORTS

+
+

Synopsis

+
// In header: <boost/dll/alias.hpp>
+
+BOOST_DLL_FORCE_NO_WEAK_EXPORTS
+
+

Description

+

Define this macro to disable exporting weak symbols and start using the BOOST_DLL_FORCE_ALIAS_INSTANTIATION. This may be usefull for working around linker problems or to test your program for compatability with linkers that do not support export of weak symbols.

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_DLL_SECTION.html b/doc/html/BOOST_DLL_SECTION.html index 950c7c3781..8a8b8350a0 100644 --- a/doc/html/BOOST_DLL_SECTION.html +++ b/doc/html/BOOST_DLL_SECTION.html @@ -34,7 +34,7 @@ BOOST_DLL_SECTION(SectionName, Permissions)
-

Description

+

Description

diff --git a/doc/html/BOOST_DLL_SELECTANY.html b/doc/html/BOOST_DLL_SELECTANY.html index b7ec0b260f..0e61daf3d8 100644 --- a/doc/html/BOOST_DLL_SELECTANY.html +++ b/doc/html/BOOST_DLL_SELECTANY.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@

-PrevUpHomeNext +PrevUpHomeNext
@@ -34,7 +34,7 @@ BOOST_DLL_SELECTANY
-

Description

+

Description

This macro does not work on Android, IBM XL C/C++ and MinGW+Windows because of linker problems with exporting weak symbols (See https://code.google.com/p/android/issues/detail?id=70206, https://sourceware.org/bugzilla/show_bug.cgi?id=17480)

@@ -48,7 +48,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/BOOST_INTRUSIV_idp55099840.html b/doc/html/BOOST_INTRUSIV_idp55099840.html deleted file mode 100644 index 3bc2295a1c..0000000000 --- a/doc/html/BOOST_INTRUSIV_idp55099840.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - -Macro BOOST_INTRUSIVE_OPTION_TYPE - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_INTRUSIVE_OPTION_TYPE

-

BOOST_INTRUSIVE_OPTION_TYPE

-
-

Synopsis

-
// In header: <boost/intrusive/pack_options.hpp>
-
-BOOST_INTRUSIVE_OPTION_TYPE(OPTION_NAME, TYPE, TYPEDEF_EXPR, TYPEDEF_NAME)
-
-

Description

-

Defines an option class of name OPTION_NAME that can be used to specify a type of type TYPE...

-
struct OPTION_NAME<class TYPE>
-{  unspecified_content  };
-
-

...that after being combined with boost::intrusive::pack_options, will typedef TYPE as a typedef of name TYPEDEF_NAME. Example:

-
//[includes and namespaces omitted for brevity]
-
-//This macro will create the following class:
-//    template<class VoidPointer>
-//    struct my_pointer
-//    { unspecified_content };
-BOOST_INTRUSIVE_OPTION_TYPE(my_pointer, VoidPointer, boost::remove_pointer<VoidPointer>::type, my_pointer_type)
-
-struct empty_default{};
-
-typedef pack_options< empty_default, typename my_pointer<void*> >::type::my_pointer_type type;
-
-BOOST_STATIC_ASSERT(( boost::is_same<type, void>::value ));
-
-

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_INTRUSIV_idp55106064.html b/doc/html/BOOST_INTRUSIV_idp55106064.html deleted file mode 100644 index daf5602768..0000000000 --- a/doc/html/BOOST_INTRUSIV_idp55106064.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - -Macro BOOST_INTRUSIVE_OPTION_CONSTANT - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_INTRUSIVE_OPTION_CONSTANT

-

BOOST_INTRUSIVE_OPTION_CONSTANT

-
-

Synopsis

-
// In header: <boost/intrusive/pack_options.hpp>
-
-BOOST_INTRUSIVE_OPTION_CONSTANT(OPTION_NAME, TYPE, VALUE, CONSTANT_NAME)
-
-

Description

-

Defines an option class of name OPTION_NAME that can be used to specify a constant of type TYPE with value VALUE...

-
struct OPTION_NAME<TYPE VALUE>
-{  unspecified_content  };
-
-

...that after being combined with boost::intrusive::pack_options, will contain a CONSTANT_NAME static constant of value VALUE. Example:

-
//[includes and namespaces omitted for brevity]
-
-//This macro will create the following class:
-//    template<bool Enabled>
-//    struct incremental
-//    { unspecified_content };
-BOOST_INTRUSIVE_OPTION_CONSTANT(incremental, bool, Enabled, is_incremental)
-
-struct empty_default{};
-
-const bool is_incremental = pack_options< empty_default, incremental<true> >::type::is_incremental;
-
-BOOST_STATIC_ASSERT(( is_incremental == true ));
-
-

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_INTRUSIV_idp55880560.html b/doc/html/BOOST_INTRUSIV_idp55880560.html new file mode 100644 index 0000000000..e1d53e43d7 --- /dev/null +++ b/doc/html/BOOST_INTRUSIV_idp55880560.html @@ -0,0 +1,73 @@ + + + + +Macro BOOST_INTRUSIVE_OPTION_TYPE + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_INTRUSIVE_OPTION_TYPE

+

BOOST_INTRUSIVE_OPTION_TYPE

+
+

Synopsis

+
// In header: <boost/intrusive/pack_options.hpp>
+
+BOOST_INTRUSIVE_OPTION_TYPE(OPTION_NAME, TYPE, TYPEDEF_EXPR, TYPEDEF_NAME)
+
+

Description

+

Defines an option class of name OPTION_NAME that can be used to specify a type of type TYPE...

+
struct OPTION_NAME<class TYPE>
+{  unspecified_content  };
+
+

...that after being combined with boost::intrusive::pack_options, will typedef TYPE as a typedef of name TYPEDEF_NAME. Example:

+
//[includes and namespaces omitted for brevity]
+
+//This macro will create the following class:
+//    template<class VoidPointer>
+//    struct my_pointer
+//    { unspecified_content };
+BOOST_INTRUSIVE_OPTION_TYPE(my_pointer, VoidPointer, boost::remove_pointer<VoidPointer>::type, my_pointer_type)
+
+struct empty_default{};
+
+typedef pack_options< empty_default, typename my_pointer<void*> >::type::my_pointer_type type;
+
+BOOST_STATIC_ASSERT(( boost::is_same<type, void>::value ));
+
+

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_INTRUSIV_idp55886784.html b/doc/html/BOOST_INTRUSIV_idp55886784.html new file mode 100644 index 0000000000..59247da91f --- /dev/null +++ b/doc/html/BOOST_INTRUSIV_idp55886784.html @@ -0,0 +1,73 @@ + + + + +Macro BOOST_INTRUSIVE_OPTION_CONSTANT + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_INTRUSIVE_OPTION_CONSTANT

+

BOOST_INTRUSIVE_OPTION_CONSTANT

+
+

Synopsis

+
// In header: <boost/intrusive/pack_options.hpp>
+
+BOOST_INTRUSIVE_OPTION_CONSTANT(OPTION_NAME, TYPE, VALUE, CONSTANT_NAME)
+
+

Description

+

Defines an option class of name OPTION_NAME that can be used to specify a constant of type TYPE with value VALUE...

+
struct OPTION_NAME<TYPE VALUE>
+{  unspecified_content  };
+
+

...that after being combined with boost::intrusive::pack_options, will contain a CONSTANT_NAME static constant of value VALUE. Example:

+
//[includes and namespaces omitted for brevity]
+
+//This macro will create the following class:
+//    template<bool Enabled>
+//    struct incremental
+//    { unspecified_content };
+BOOST_INTRUSIVE_OPTION_CONSTANT(incremental, bool, Enabled, is_incremental)
+
+struct empty_default{};
+
+const bool is_incremental = pack_options< empty_default, incremental<true> >::type::is_incremental;
+
+BOOST_STATIC_ASSERT(( is_incremental == true ));
+
+

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_IS_MPI_DATATYPE.html b/doc/html/BOOST_IS_MPI_DATATYPE.html index e205becf30..ab9294cec3 100644 --- a/doc/html/BOOST_IS_MPI_DATATYPE.html +++ b/doc/html/BOOST_IS_MPI_DATATYPE.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
-PrevUpHomeNext +PrevUpHomeNext
@@ -30,7 +30,7 @@

BOOST_IS_MPI_DATATYPE

Synopsis

-
// In header: <boost/mpi/datatype.hpp>
+
// In header: <boost/mpi/datatype.hpp>
 
 BOOST_IS_MPI_DATATYPE(T)
@@ -46,7 +46,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/BOOST_MPI_BCA_1_3_26_6_6_7.html b/doc/html/BOOST_MPI_BCA_1_3_26_6_6_7.html deleted file mode 100644 index 4301ed91a7..0000000000 --- a/doc/html/BOOST_MPI_BCA_1_3_26_6_6_7.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Macro BOOST_MPI_BCAST_BOTTOM_WORKS_FINE - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_MPI_BCAST_BOTTOM_WORKS_FINE

-

BOOST_MPI_BCAST_BOTTOM_WORKS_FINE — Indicates that MPI_Bcast supports MPI_BOTTOM.

-
-

Synopsis

-
// In header: <boost/mpi/config.hpp>
-
-BOOST_MPI_BCAST_BOTTOM_WORKS_FINE
-
-

Description

-

Some implementations have a broken MPI_Bcast wrt to MPI_BOTTOM. BullX MPI and LAM seems to be among them, at least for some versions. The broacast_test.cpp test test_skeleton_and_content can be used to detect that.

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_MPI_CAL_1_3_26_6_6_6.html b/doc/html/BOOST_MPI_CAL_1_3_26_6_6_6.html deleted file mode 100644 index 622f0c4190..0000000000 --- a/doc/html/BOOST_MPI_CAL_1_3_26_6_6_6.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Macro BOOST_MPI_CALLING_CONVENTION - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_MPI_CALLING_CONVENTION

-

BOOST_MPI_CALLING_CONVENTION — Specifies the calling convention that will be used for callbacks from the underlying C MPI.

-
-

Synopsis

-
// In header: <boost/mpi/config.hpp>
-
-BOOST_MPI_CALLING_CONVENTION
-
-

Description

-

This is a Windows-specific macro, which will be used internally to state the calling convention of any function that is to be used as a callback from MPI. For example, the internally-defined functions that are used in a call to MPI_Op_create. This macro is likely only to be useful to users that wish to bypass Boost.MPI, registering their own callbacks in certain cases, e.g., through MPI_Op_create.

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_MPI_CHECK_RESULT.html b/doc/html/BOOST_MPI_CHECK_RESULT.html index b4cf1932d3..a2410d71d6 100644 --- a/doc/html/BOOST_MPI_CHECK_RESULT.html +++ b/doc/html/BOOST_MPI_CHECK_RESULT.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
-PrevUpHomeNext +PrevUpHomeNext
@@ -30,11 +30,11 @@

BOOST_MPI_CHECK_RESULT

Synopsis

-
// In header: <boost/mpi/exception.hpp>
+
// In header: <boost/mpi/exception.hpp>
 
 BOOST_MPI_CHECK_RESULT(MPIFunc, Args)
-

Description

+

Description

Call the MPI routine MPIFunc with arguments Args (surrounded by parentheses). If the result is not MPI_SUCCESS, use boost::throw_exception to throw an exception or abort, depending on BOOST_NO_EXCEPTIONS.

@@ -50,7 +50,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/BOOST_MPI_DECL.html b/doc/html/BOOST_MPI_DECL.html index 29e5bff2ec..7d9bd599cd 100644 --- a/doc/html/BOOST_MPI_DECL.html +++ b/doc/html/BOOST_MPI_DECL.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
-PrevUpHomeNext +PrevUpHomeNext
@@ -30,7 +30,7 @@

BOOST_MPI_DECL

Synopsis

-
// In header: <boost/mpi/config.hpp>
+
// In header: <boost/mpi/config.hpp>
 
 BOOST_MPI_DECL
@@ -46,7 +46,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/BOOST_MPI_HAS_1_3_26_6_6_4.html b/doc/html/BOOST_MPI_HAS_1_3_26_6_6_4.html deleted file mode 100644 index ad8aa0b7f1..0000000000 --- a/doc/html/BOOST_MPI_HAS_1_3_26_6_6_4.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Macro BOOST_MPI_HAS_MEMORY_ALLOCATION - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_MPI_HAS_MEMORY_ALLOCATION

-

BOOST_MPI_HAS_MEMORY_ALLOCATION — Determine if the MPI implementation has support for memory allocation.

-
-

Synopsis

-
// In header: <boost/mpi/config.hpp>
-
-BOOST_MPI_HAS_MEMORY_ALLOCATION
-
-

Description

-

This macro will be defined when the underlying MPI implementation has support for the MPI-2 memory allocation routines MPI_Alloc_mem and MPI_Free_mem. When defined, the allocator class template will provide Standard Library-compliant access to these memory-allocation routines.

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_MPI_HAS_1_3_26_6_6_5.html b/doc/html/BOOST_MPI_HAS_1_3_26_6_6_5.html deleted file mode 100644 index 8c35d78f66..0000000000 --- a/doc/html/BOOST_MPI_HAS_1_3_26_6_6_5.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Macro BOOST_MPI_HAS_NOARG_INITIALIZATION - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Macro BOOST_MPI_HAS_NOARG_INITIALIZATION

-

BOOST_MPI_HAS_NOARG_INITIALIZATION — Determine if the MPI implementation has supports initialization without command-line arguments.

-
-

Synopsis

-
// In header: <boost/mpi/config.hpp>
-
-BOOST_MPI_HAS_NOARG_INITIALIZATION
-
-

Description

-

This macro will be defined when the underlying implementation supports initialization of MPI without passing along command-line arguments, e.g., MPI_Init(NULL, NULL). When defined, the environment class will provide a default constructor. This macro is always defined for MPI-2 implementations.

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_MPI_HOMOGENEOUS.html b/doc/html/BOOST_MPI_HOMOGENEOUS.html index 4ff77130bf..5a7e2dbbc3 100644 --- a/doc/html/BOOST_MPI_HOMOGENEOUS.html +++ b/doc/html/BOOST_MPI_HOMOGENEOUS.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

-PrevUpHomeNext +PrevUpHomeNext
@@ -30,11 +30,11 @@

BOOST_MPI_HOMOGENEOUS — Comment this macro is you are running in an heterogeneous environment.

Synopsis

-
// In header: <boost/mpi/config.hpp>
+
// In header: <boost/mpi/config.hpp>
 
 BOOST_MPI_HOMOGENEOUS
-

Description

+

Description

When this flag is enabled, we assume some simple, POD-like, type can be transmitted without paying the cost of portable serialization.

Comment this if your platform is not homogeneous and that portable serialization/deserialization must be performed.

It you do so, check that your MPI implementation supports thats kind of environment.

@@ -52,7 +52,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/BOOST_MPI__1_3_26_5_14_7_4.html b/doc/html/BOOST_MPI__1_3_26_5_14_7_4.html new file mode 100644 index 0000000000..ac0bcf1b45 --- /dev/null +++ b/doc/html/BOOST_MPI__1_3_26_5_14_7_4.html @@ -0,0 +1,56 @@ + + + + +Macro BOOST_MPI_HAS_MEMORY_ALLOCATION + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_MPI_HAS_MEMORY_ALLOCATION

+

BOOST_MPI_HAS_MEMORY_ALLOCATION — Determine if the MPI implementation has support for memory allocation.

+
+

Synopsis

+
// In header: <boost/mpi/config.hpp>
+
+BOOST_MPI_HAS_MEMORY_ALLOCATION
+
+

Description

+

This macro will be defined when the underlying MPI implementation has support for the MPI-2 memory allocation routines MPI_Alloc_mem and MPI_Free_mem. When defined, the allocator class template will provide Standard Library-compliant access to these memory-allocation routines.

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_MPI__1_3_26_5_14_7_5.html b/doc/html/BOOST_MPI__1_3_26_5_14_7_5.html new file mode 100644 index 0000000000..4d94d7454c --- /dev/null +++ b/doc/html/BOOST_MPI__1_3_26_5_14_7_5.html @@ -0,0 +1,56 @@ + + + + +Macro BOOST_MPI_HAS_NOARG_INITIALIZATION + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_MPI_HAS_NOARG_INITIALIZATION

+

BOOST_MPI_HAS_NOARG_INITIALIZATION — Determine if the MPI implementation has supports initialization without command-line arguments.

+
+

Synopsis

+
// In header: <boost/mpi/config.hpp>
+
+BOOST_MPI_HAS_NOARG_INITIALIZATION
+
+

Description

+

This macro will be defined when the underlying implementation supports initialization of MPI without passing along command-line arguments, e.g., MPI_Init(NULL, NULL). When defined, the environment class will provide a default constructor. This macro is always defined for MPI-2 implementations.

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_MPI__1_3_26_5_14_7_6.html b/doc/html/BOOST_MPI__1_3_26_5_14_7_6.html new file mode 100644 index 0000000000..5c4ba30dbd --- /dev/null +++ b/doc/html/BOOST_MPI__1_3_26_5_14_7_6.html @@ -0,0 +1,56 @@ + + + + +Macro BOOST_MPI_CALLING_CONVENTION + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_MPI_CALLING_CONVENTION

+

BOOST_MPI_CALLING_CONVENTION — Specifies the calling convention that will be used for callbacks from the underlying C MPI.

+
+

Synopsis

+
// In header: <boost/mpi/config.hpp>
+
+BOOST_MPI_CALLING_CONVENTION
+
+

Description

+

This is a Windows-specific macro, which will be used internally to state the calling convention of any function that is to be used as a callback from MPI. For example, the internally-defined functions that are used in a call to MPI_Op_create. This macro is likely only to be useful to users that wish to bypass Boost.MPI, registering their own callbacks in certain cases, e.g., through MPI_Op_create.

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_MPI__1_3_26_5_14_7_7.html b/doc/html/BOOST_MPI__1_3_26_5_14_7_7.html new file mode 100644 index 0000000000..63c9499294 --- /dev/null +++ b/doc/html/BOOST_MPI__1_3_26_5_14_7_7.html @@ -0,0 +1,56 @@ + + + + +Macro BOOST_MPI_BCAST_BOTTOM_WORKS_FINE + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Macro BOOST_MPI_BCAST_BOTTOM_WORKS_FINE

+

BOOST_MPI_BCAST_BOTTOM_WORKS_FINE — Indicates that MPI_Bcast supports MPI_BOTTOM.

+
+

Synopsis

+
// In header: <boost/mpi/config.hpp>
+
+BOOST_MPI_BCAST_BOTTOM_WORKS_FINE
+
+

Description

+

Some implementations have a broken MPI_Bcast wrt to MPI_BOTTOM. BullX MPI and LAM seems to be among them, at least for some versions. The broacast_test.cpp test test_skeleton_and_content can be used to detect that.

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_SER_1_3_12_15_5_16_1.html b/doc/html/BOOST_SER_1_3_12_15_5_16_1.html deleted file mode 100644 index 4676fa014e..0000000000 --- a/doc/html/BOOST_SER_1_3_12_15_5_16_1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function BOOST_SERIALIZATION_SPLIT_FREE - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
-
-
-

Function BOOST_SERIALIZATION_SPLIT_FREE

-

BOOST_SERIALIZATION_SPLIT_FREE

-
-

Synopsis

-
// In header: <boost/date_time/posix_time/time_serialize.hpp>
-
-
- BOOST_SERIALIZATION_SPLIT_FREE(boost::posix_time::ptime);
-
-

Description

-

time_duration objects are broken down into 4 parts for serialization: types are hour_type, min_type, sec_type, and fractional_seconds_type as defined in the time_duration class

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/BOOST_SER_1_3_13_15_5_16_1.html b/doc/html/BOOST_SER_1_3_13_15_5_16_1.html new file mode 100644 index 0000000000..6e9c85c227 --- /dev/null +++ b/doc/html/BOOST_SER_1_3_13_15_5_16_1.html @@ -0,0 +1,53 @@ + + + + +Function BOOST_SERIALIZATION_SPLIT_FREE + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+
+
+PrevUpHomeNext +
+
+
+
+

Function BOOST_SERIALIZATION_SPLIT_FREE

+

BOOST_SERIALIZATION_SPLIT_FREE

+
+

Synopsis

+
// In header: <boost/date_time/posix_time/time_serialize.hpp>
+
+
+ BOOST_SERIALIZATION_SPLIT_FREE(boost::posix_time::ptime);
+
+

Description

+

time_duration objects are broken down into 4 parts for serialization: types are hour_type, min_type, sec_type, and fractional_seconds_type as defined in the time_duration class

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/BOOST_TYPE_ERASURE_FREE.html b/doc/html/BOOST_TYPE_ERASURE_FREE.html index 7e1e6869b1..7787a43bea 100644 --- a/doc/html/BOOST_TYPE_ERASURE_FREE.html +++ b/doc/html/BOOST_TYPE_ERASURE_FREE.html @@ -32,20 +32,27 @@

Synopsis

// In header: <boost/type_erasure/free.hpp>
 
-BOOST_TYPE_ERASURE_FREE(qualified_name, function_name, N)
+BOOST_TYPE_ERASURE_FREE(concept_name, function_name)

Description

The declaration of the concept is

template<class Sig>
-struct ::namespace1::namespace2::...::concept_name;
+struct concept_name;
 

where Sig is a function type giving the signature of the function.

-

This macro can only be used in the global namespace.

+

This macro can only be used at namespace scope.

+

Example:

+
BOOST_TYPE_ERASURE_FREE(to_string)
+typedef has_to_string<std::string(_self const&)> to_string_concept;
+
+

In C++03, the macro can only be used in the global namespace and is defined as:

+
#define BOOST_TYPE_ERASURE_FREE(qualified_name, function_name, N)
+

Example:

BOOST_TYPE_ERASURE_FREE((boost)(has_to_string), to_string, 1)
 
-

+

For backwards compatibility, this form is always accepted.

@@ -60,16 +67,12 @@ The declaration of the concept is

- - + + - - - - - +

N

is the number of arguments of the function.

concept_name

is the name of the concept to declare. If it is omitted it defaults to has_ ## function_name

function_name

is the name of the function.

qualified_name

should be a preprocessor sequence of the form (namespace1)(namespace2)...(concept_name).

is the name of the function.

diff --git a/doc/html/BOOST_TYPE_ERASURE_MEMBER.html b/doc/html/BOOST_TYPE_ERASURE_MEMBER.html index dce1f5cc70..5483d37fb1 100644 --- a/doc/html/BOOST_TYPE_ERASURE_MEMBER.html +++ b/doc/html/BOOST_TYPE_ERASURE_MEMBER.html @@ -32,29 +32,36 @@

Synopsis

// In header: <boost/type_erasure/member.hpp>
 
-BOOST_TYPE_ERASURE_MEMBER(qualified_name, member, N)
+BOOST_TYPE_ERASURE_MEMBER(concept_name, member)

Description

The declaration of the concept is

template<class Sig, class T = _self>
-struct ::namespace1::namespace2::...::concept_name;
+struct concept_name;
+
+

where Sig is a function type giving the signature of the member function, and T is the object type. T may be const-qualified for const member functions. concept_name<R(A...) const, T> is an alias for concept_name<R(A...), const T>.

+

This macro can only be used at namespace scope.

+

Example:

+
namespace boost {
+BOOST_TYPE_ERASURE_MEMBER(push_back)
+}
+typedef boost::has_push_back<void(int)> push_back_concept;
+
+

The concept defined by this function may be specialized to provide a concept_map. The class object will be passed by reference as the first parameter.

+
template<>
+struct has_push_back<void(int), std::list<int> > {
+  static void apply(std::list<int>& l, int i) { l.push_back(i); }
+};
+
+

In C++03, the macro can only be used in the global namespace and is defined as:

+
#define BOOST_TYPE_ERASURE_MEMBER(qualified_name, member, N)
 
-

where Sig is a function type giving the signature of the member function, and T is the object type. T may be const-qualified for const member functions.

-

This macro can only be used in the global namespace.

Example:

BOOST_TYPE_ERASURE_MEMBER((boost)(has_push_back), push_back, 1)
 typedef boost::has_push_back<void(int), _self> push_back_concept;
 
-
- - - - - -
[Note]Note

In C++11 the argument N is ignored and may be omitted. BOOST_TYPE_ERASURE_MEMBER will always define a variadic concept.

-

-

+

For backwards compatibility, this form is always accepted.

@@ -69,16 +76,12 @@ The declaration of the concept is

- - + + - - - - - +

N

is the number of arguments of the function.

concept_name

is the name of the concept to declare. If it is omitted it defaults to has_ ## member

member

is the name of the member function.

qualified_name

should be a preprocessor sequence of the form (namespace1)(namespace2)...(concept_name).

is the name of the member function.

diff --git a/doc/html/MPICH_IGNORE_CXX_SEEK.html b/doc/html/MPICH_IGNORE_CXX_SEEK.html index 36215562af..ed29bc1088 100644 --- a/doc/html/MPICH_IGNORE_CXX_SEEK.html +++ b/doc/html/MPICH_IGNORE_CXX_SEEK.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
-PrevUpHomeNext +PrevUpHomeNext
@@ -30,7 +30,7 @@

MPICH_IGNORE_CXX_SEEK

Synopsis

-
// In header: <boost/mpi/config.hpp>
+
// In header: <boost/mpi/config.hpp>
 
 MPICH_IGNORE_CXX_SEEK
@@ -46,7 +46,7 @@
-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/accumulators.html b/doc/html/accumulators.html index ebabfac5af..c100073b55 100644 --- a/doc/html/accumulators.html +++ b/doc/html/accumulators.html @@ -84,7 +84,7 @@
- +

Last revised: December 14, 2017 at 00:08:23 GMT

Last revised: April 11, 2018 at 14:10:22 GMT


diff --git a/doc/html/align.html b/doc/html/align.html index 4fe89a557c..ee07623481 100644 --- a/doc/html/align.html +++ b/doc/html/align.html @@ -68,7 +68,7 @@ - +

Last revised: December 14, 2017 at 00:08:23 GMT

Last revised: April 11, 2018 at 14:10:22 GMT


diff --git a/doc/html/asio_HTML.manifest b/doc/html/asio_HTML.manifest index daa9a9fe7c..88b247905b 100644 --- a/doc/html/asio_HTML.manifest +++ b/doc/html/asio_HTML.manifest @@ -15,6 +15,7 @@ boost_asio/overview/core/handler_tracking.html boost_asio/overview/core/concurrency_hint.html boost_asio/overview/core/coroutine.html boost_asio/overview/core/spawn.html +boost_asio/overview/core/coroutines_ts.html boost_asio/overview/networking.html boost_asio/overview/networking/protocols.html boost_asio/overview/networking/other_protocols.html @@ -71,6 +72,7 @@ boost_asio/tutorial/tutdaytime7/src.html boost_asio/examples.html boost_asio/examples/cpp03_examples.html boost_asio/examples/cpp11_examples.html +boost_asio/examples/cpp17_examples.html boost_asio/reference.html boost_asio/reference/asynchronous_operations.html boost_asio/reference/asynchronous_operations/general_asynchronous_operation_concepts.html @@ -114,6 +116,7 @@ boost_asio/reference/InternetProtocol.html boost_asio/reference/IoControlCommand.html boost_asio/reference/IoObjectService.html boost_asio/reference/IteratorConnectHandler.html +boost_asio/reference/LegacyCompletionHandler.html boost_asio/reference/MoveAcceptHandler.html boost_asio/reference/MutableBufferSequence.html boost_asio/reference/ProtoAllocator.html @@ -1505,6 +1508,33 @@ boost_asio/reference/executor_work_guard/get_executor.html boost_asio/reference/executor_work_guard/owns_work.html boost_asio/reference/executor_work_guard/reset.html boost_asio/reference/executor_work_guard/_executor_work_guard.html +boost_asio/reference/experimental__await_token.html +boost_asio/reference/experimental__await_token/await_token.html +boost_asio/reference/experimental__await_token/await_token/overload1.html +boost_asio/reference/experimental__await_token/await_token/overload2.html +boost_asio/reference/experimental__await_token/executor_type.html +boost_asio/reference/experimental__await_token/get_executor.html +boost_asio/reference/experimental__awaitable.html +boost_asio/reference/experimental__awaitable/awaitable.html +boost_asio/reference/experimental__awaitable/executor_type.html +boost_asio/reference/experimental__awaitable/value_type.html +boost_asio/reference/experimental__awaitable/_awaitable.html +boost_asio/reference/experimental__co_spawn.html +boost_asio/reference/experimental__co_spawn/overload1.html +boost_asio/reference/experimental__co_spawn/overload2.html +boost_asio/reference/experimental__co_spawn/overload3.html +boost_asio/reference/experimental__detached.html +boost_asio/reference/experimental__detached_t.html +boost_asio/reference/experimental__detached_t/detached_t.html +boost_asio/reference/experimental__redirect_error.html +boost_asio/reference/experimental__redirect_error_t.html +boost_asio/reference/experimental__redirect_error_t/ec_.html +boost_asio/reference/experimental__redirect_error_t/redirect_error_t.html +boost_asio/reference/experimental__redirect_error_t/token_.html +boost_asio/reference/experimental__this_coro__executor.html +boost_asio/reference/experimental__this_coro__executor_t.html +boost_asio/reference/experimental__this_coro__token.html +boost_asio/reference/experimental__this_coro__token_t.html boost_asio/reference/generic__basic_endpoint.html boost_asio/reference/generic__basic_endpoint/basic_endpoint.html boost_asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html diff --git a/doc/html/atomic.html b/doc/html/atomic.html index c4441368e1..047dd53e24 100644 --- a/doc/html/atomic.html +++ b/doc/html/atomic.html @@ -35,7 +35,7 @@
-
+

Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -171,7 +171,7 @@

- +

Last revised: December 14, 2017 at 00:08:23 GMT

Last revised: April 11, 2018 at 14:10:22 GMT


diff --git a/doc/html/atomic/interface.html b/doc/html/atomic/interface.html index 1069f2ac0f..a7b95c9d77 100644 --- a/doc/html/atomic/interface.html +++ b/doc/html/atomic/interface.html @@ -130,6 +130,20 @@ + +

+ BOOST_ATOMIC_NO_FLOATING_POINT +

+ + +

+ When defined, support for floating point operations is disabled. + Floating point types shall be treated similar to trivially copyable + structs and no capability macros will be defined. +

+ + +

BOOST_ATOMIC_FORCE_FALLBACK @@ -306,6 +320,102 @@ +

+ For compilers that support C++11 scoped enums, the library also defines scoped + synonyms that are preferred in modern programs: +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Pre-C++11 constant +

+
+

+ C++11 equivalent +

+
+

+ memory_order_relaxed +

+
+

+ memory_order::relaxed +

+
+

+ memory_order_release +

+
+

+ memory_order::release +

+
+

+ memory_order_acquire +

+
+

+ memory_order::acquire +

+
+

+ memory_order_consume +

+
+

+ memory_order::consume +

+
+

+ memory_order_acq_rel +

+
+

+ memory_order::acq_rel +

+
+

+ memory_order_seq_cst +

+
+

+ memory_order::seq_cst +

+

See section happens-before for explanation of the various ordering constraints. @@ -434,6 +544,8 @@ template class

boost::atomic<integral> template class
+
boost::atomic<floating-point> + template class
boost::atomic<pointer> template class
boost::atomic<T> @@ -462,7 +574,8 @@ Note that classes with virtual functions or virtual base classes do not satisfy the requirements. Also be warned that structures with "padding" between data members may compare non-equal via memcmp - even though all members are equal. + even though all members are equal. This may also be the case with some floating + point types, which include padding bits themselves.

@@ -679,8 +792,8 @@ In addition to these explicit operations, each atomic<T> object also supports implicit store and load through the use of "assignment" and "conversion to T" - operators. Avoid using these operators, as they do not allow explicit specification - of a memory ordering constraint. + operators. Avoid using these operators, as they do not allow to specify + a memory ordering constraint which always defaults to memory_order_seq_cst.

@@ -841,28 +954,117 @@

- void opaque_negate(memory_order + I negate(memory_order order)

Change the sign of the value stored in the variable, returning - nothing + the result

- void opaque_complement(memory_order + I add(I + v, + memory_order order) +

+ + +

+ Add v to variable, + returning the result +

+ + + + +

+ I sub(I + v, + memory_order order) +

+ + +

+ Subtract v from + variable, returning the result +

+ + + + +

+ I bitwise_and(I + v, + memory_order order) +

+ + +

+ Apply bit-wise "and" with v + to variable, returning the result +

+ + + + +

+ I bitwise_or(I + v, + memory_order order) +

+ + +

+ Apply bit-wise "or" with v + to variable, returning the result +

+ + + + +

+ I bitwise_xor(I + v, + memory_order order) +

+ + +

+ Apply bit-wise "xor" with v + to variable, returning the result +

+ + + + +

+ I bitwise_complement(memory_order order)

Set the variable to the one's complement of the current value, - returning nothing + returning the result +

+ + + + +

+ void opaque_negate(memory_order + order) +

+ + +

+ Change the sign of the value stored in the variable, returning + nothing

@@ -942,6 +1144,36 @@ + +

+ void opaque_complement(memory_order + order) +

+ + +

+ Set the variable to the one's complement of the current value, + returning nothing +

+ + + + +

+ bool negate_and_test(memory_order + order) +

+ + +

+ Change the sign of the value stored in the variable, returning + true if the result + is non-zero and false + otherwise +

+ + +

bool add_and_test(I @@ -953,7 +1185,7 @@

Add v to variable, returning true if - the result is zero and false + the result is non-zero and false otherwise

@@ -970,7 +1202,7 @@

Subtract v from variable, returning true - if the result is zero and false + if the result is non-zero and false otherwise

@@ -987,7 +1219,7 @@

Apply bit-wise "and" with v to variable, returning true - if the result is zero and false + if the result is non-zero and false otherwise

@@ -1004,7 +1236,7 @@

Apply bit-wise "or" with v to variable, returning true - if the result is zero and false + if the result is non-zero and false otherwise

@@ -1021,7 +1253,23 @@

Apply bit-wise "xor" with v to variable, returning true - if the result is zero and false + if the result is non-zero and false + otherwise +

+ + + + +

+ bool complement_and_test(memory_order + order) +

+ + +

+ Set the variable to the one's complement of the current value, + returning true if + the result is non-zero and false otherwise

@@ -1079,6 +1327,25 @@
+
+ + + + + +
[Note]Note

+ In Boost.Atomic 1.66 the op_and_test + operations returned the opposite value (i.e. true + if the result is zero). This was changed to the current behavior in 1.67 + for consistency with other operations in Boost.Atomic, as well as with + conventions taken in the C++ standard library. Boost.Atomic 1.66 was + the only release shipped with the old behavior. Users upgrading from + Boost 1.66 to a later release can define BOOST_ATOMIC_HIGHLIGHT_OP_AND_TEST + macro when building their code to generate deprecation warnings on the + op_and_test function calls (the + functions are not actually deprecated though; this is just a way to highlight + their use). +

order always has memory_order_seq_cst as default parameter.

@@ -1096,20 +1363,29 @@ object also supports implicit pre-/post- increment/decrement, as well as the operators +=, -=, &=, |= and ^=. - Avoid using these operators, as they do not allow explicit specification - of a memory ordering constraint which always defaults to memory_order_seq_cst. + Avoid using these operators, as they do not allow to specify a memory ordering + constraint which always defaults to memory_order_seq_cst.

+
+ + + + + +
[Note]Note

+ The support for floating point types is optional and can be disabled + by defining BOOST_ATOMIC_NO_FLOATING_POINT. +

- In addition to the operations applicable to all atomic object, boost::atomic<P> - for pointer types P (other than - pointers to void, function or member pointers) support - the following operations, which correspond to std::atomic<P>: + In addition to the operations applicable to all atomic objects, boost::atomic<F> + for floating point types F supports + the following operations, which correspond to std::atomic<F>:

@@ -1132,7 +1408,7 @@

- T fetch_add(ptrdiff_t + F fetch_add(F v, memory_order order)

@@ -1147,7 +1423,7 @@

- T fetch_sub(ptrdiff_t + F fetch_sub(F v, memory_order order)

@@ -1162,8 +1438,8 @@

- Similarly to integers, the following Boost.Atomic - extensions are also provided: + Additionally, as a Boost.Atomic extension, + the following operations are also provided:

@@ -1186,39 +1462,326 @@ - -

- void opaque_add(ptrdiff_t - v, - memory_order order) + F fetch_negate(memory_order + order)

- Add v to variable, - returning nothing + Change the sign of the value stored in the variable, returning + previous value

- void opaque_sub(ptrdiff_t - v, - memory_order order) + F negate(memory_order + order)

- Subtract v from - variable, returning nothing + Change the sign of the value stored in the variable, returning + the result

-

- order always has memory_order_seq_cst as default parameter. -

-

+ + +

+ F add(F + v, + memory_order order) +

+ + +

+ Add v to variable, + returning the result +

+ + + + +

+ F sub(F + v, + memory_order order) +

+ + +

+ Subtract v from + variable, returning the result +

+ + + + +

+ void opaque_negate(memory_order + order) +

+ + +

+ Change the sign of the value stored in the variable, returning + nothing +

+ + + + +

+ void opaque_add(F + v, + memory_order order) +

+ + +

+ Add v to variable, + returning nothing +

+ + + + +

+ void opaque_sub(F + v, + memory_order order) +

+ + +

+ Subtract v from + variable, returning nothing +

+ + + +
+

+ order always has memory_order_seq_cst as default parameter. +

+

+ The opaque_op variants of the operations + may result in a more efficient code on some architectures because the original + value of the atomic variable is not preserved. +

+

+ In addition to these explicit operations, each boost::atomic<F> + object also supports operators += + and -=. Avoid using these + operators, as they do not allow to specify a memory ordering constraint + which always defaults to memory_order_seq_cst. +

+

+ When using atomic operations with floating point types, bear in mind that + Boost.Atomic always performs bitwise comparison + of the stored values. This means that operations like compare_exchange* may fail if the stored value and comparand + have different binary representation, even if they would normally compare + equal. This is typically the case when either of the numbers is denormalized. + This also means that the behavior with regard to special floating point + values like NaN and signed zero is also different from normal C++. +

+

+ Another source of the problem is padding bits that are added to some floating + point types for alignment. One widespread example of that is Intel x87 + extended double format, which is typically stored as 80 bits of value padded + with 16 or 48 unused bits. These padding bits are often uninitialized and + contain garbage, which makes two equal numbers have different binary representation. + The library attempts to account for the known such cases, but in general + it is possible that some platforms are not covered. Note that the C++ standard + makes no guarantees about reliability of compare_exchange* operations in the face of padding or trap + bits. +

+
+
+ +

+ In addition to the operations applicable to all atomic objects, boost::atomic<P> + for pointer types P (other than + pointers to void, function or member pointers) support + the following operations, which correspond to std::atomic<P>: +

+
++++ + + + + + + + + + + + + + + +
+

+ Syntax +

+
+

+ Description +

+
+

+ T fetch_add(ptrdiff_t + v, + memory_order order) +

+
+

+ Add v to variable, + returning previous value +

+
+

+ T fetch_sub(ptrdiff_t + v, + memory_order order) +

+
+

+ Subtract v from + variable, returning previous value +

+
+

+ Similarly to integers, the following Boost.Atomic + extensions are also provided: +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Syntax +

+
+

+ Description +

+
+

+ void add(ptrdiff_t + v, + memory_order order) +

+
+

+ Add v to variable, + returning the result +

+
+

+ void sub(ptrdiff_t + v, + memory_order order) +

+
+

+ Subtract v from + variable, returning the result +

+
+

+ void opaque_add(ptrdiff_t + v, + memory_order order) +

+
+

+ Add v to variable, + returning nothing +

+
+

+ void opaque_sub(ptrdiff_t + v, + memory_order order) +

+
+

+ Subtract v from + variable, returning nothing +

+
+

+ bool add_and_test(ptrdiff_t + v, + memory_order order) +

+
+

+ Add v to variable, + returning true if + the result is non-null and false + otherwise +

+
+

+ bool sub_and_test(ptrdiff_t + v, + memory_order order) +

+
+

+ Subtract v from + variable, returning true + if the result is non-null and false + otherwise +

+
+

+ order always has memory_order_seq_cst as default parameter. +

+

In addition to these explicit operations, each boost::atomic<P> object also supports implicit pre-/post- increment/decrement, as well as the operators +=, -=. Avoid using these operators, as they @@ -1658,11 +2221,76 @@ is a type that fits storage of contiguous N bits, suitably aligned for atomic operations.

+

+ For floating-point types the following macros are similarly defined: +

+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Macro +

+
+

+ Description +

+
+

+ BOOST_ATOMIC_FLOAT_LOCK_FREE +

+
+

+ Indicate whether atomic<float> is lock-free. +

+
+

+ BOOST_ATOMIC_DOUBLE_LOCK_FREE +

+
+

+ Indicate whether atomic<double> is lock-free. +

+
+

+ BOOST_ATOMIC_LONG_DOUBLE_LOCK_FREE +

+
+

+ Indicate whether atomic<long + double> + is lock-free. +

+
+

+ These macros are not defined when support for floating point types is disabled + by user. +

-
-
-
-
-
-
+

Any of these files may also be overridden on the command line

+
@@ -722,6 +723,24 @@ b2 toolset=gcc variant=debug optimization=space that don't depend on the failed ones.

-j N

Run up to N commands in parallel.

+
+--config=filename +
+
+

Override all configuration files

+
+
--site-config=filename
+
+

Override the default site-config.jam

+
+
--user-config=filename
+
+

Override the default user-config.jam

+
+
--project-config=filename
+
+

Override the default project-config.jam

+
--debug-configuration

Produces debug information about the loading of Boost.Build and toolset files.

@@ -884,6 +903,11 @@ b2 link=static,shared threading=single,multi b2 include=static,shared

is not treated specially.

+

Multiple features may be grouped by using a forwards slash.

+
+b2 gcc/link=shared msvc/link=static,shared
+
+

This will build 3 different variants, altogether.

diff --git a/doc/html/bbv2/reference.html b/doc/html/bbv2/reference.html index 6d08f5101e..337abe970a 100644 --- a/doc/html/bbv2/reference.html +++ b/doc/html/bbv2/reference.html @@ -626,6 +626,57 @@ path-constant DATA : data/a.txt ; under Configuration PropertiesManifest ToolInput and OutputAdditional Manifest Files.

+
+relevant +
+
+

+ Allowed values: the name of any feature. +

+

+ This feature is used to indicate which other features are relevant for + a given target. It is usually not necessary to manage it explicitly, + as Boost.Build can deduce it in most cases. Features which are not + relevant will not affect target paths, and will not cause conflicts. +

+

+ A feature will be considered relevant if any of the following are true +

+
    +
  • It is referenced by toolset.flags or toolset.uses-features +
  • +
  • It is used by the requirements of a generator
  • +
  • It is a subfeature of a relevant feature
  • +
  • It has a subfeature which is relevant
  • +
  • It is a composite feature, and any composed feature is relevant
  • +
  • It affects target alternative selection for a main target
  • +
  • It is a propagated feature and is relevant for any dependency
  • +
  • It is relevant for any dependency created by the same main target
  • +
  • It is used in the condition of a conditional property and the corresponding value is relevant
  • +
  • It is explicitly named as relevent
  • +
+

+

+

Relevant features cannot be automatically deduced in the following cases:

+
    +
  • Indirect conditionals. Solution: return properties of the form + <relevant>result-feature:<relevant>condition-feature

[Tip] Tip
+ + + + + +
[Note]Note

This isn't really a conditional, + although for most purposes it functions like one. In particular, it does not support + multiple comma-separated elements in the condition, and it does work correctly even + in contexts where conditional properties are not allowed

+ +
  • Action rules that read properties. Solution: add toolset.uses-features + to tell Boost.Build that the feature is actually used.

  • +
  • Generators and targets that manipulate property-sets directly. + Solution: set <relevant> manually.

  • + +
    @@ -1281,6 +1332,7 @@ using vacpp ;
    STLport library
    zlib
    bzip2
    +
    Python

    Boost.Build provides special support for some third-party C++ libraries, documented below.

    @@ -1413,6 +1465,95 @@ using bzip2 : 1.0.6 : <source>C:/Devel/src/bzip2-1.0.6 : <toolset>ms using bzip2 : 1.0.6 : : <toolset>gcc ; +
    +
    +Python
    +

    Provides support for the + python language + environment to be linked in as a library.

    +

    python can be initialized using the following syntax

    +
    +using python : [version] : [command-or-prefix] : [includes] : [libraries] : [conditions] : [extension-suffix] ;
    +          
    +

    Options for using python:

    +
    +
    version
    +

    the version of Python to use. Should be in Major.Minor + format, for example 2.3. Do not include the subminor version. +

    +
    command-or-prefix
    +

    Preferably, a command that invokes a Python interpreter. + Alternatively, the installation prefix for Python libraries + and includes. If empty, will be guessed from the version, the + platform's installation patterns, and the python executables + that can be found in PATH.

    +
    includes
    +

    the include path to Python headers. If empty, will be + guessed.

    +
    libraries
    +

    the path to Python library binaries. If empty, will + be guessed. On MacOS/Darwin, you can also pass the path of the + Python framework.

    +
    conditions
    +

    if specified, should be a set of properties that are + matched against the build configuration when Boost.Build + selects a Python configuration to use.

    +
    extension-suffix
    +

    A string to append to the name of extension modules + before the true filename extension. Ordinarily we would just + compute this based on the value of the <python-debugging> + feature. However ubuntu's python-dbg package uses the windows + convention of appending _d to debug-build extension modules. We + have no way of detecting ubuntu, or of probing python for the + "_d" requirement, and if you configure and build python using + --with-pydebug, you'll be using the standard *nix convention. + Defaults to "" (or "_d" when targeting windows and + <python-debugging> is set).

    +
    +

    Examples:

    +
    +# Find python in the default system location
    +using python ;
    +# 2.7
    +using python : 2.7 ;
    +# 3.5
    +using python : 3.5 ;
    +
    +# On ubuntu 16.04
    +using python
    +: 2.7 # version
    +: # Interpreter/path to dir
    +: /usr/include/python2.7 # includes
    +: /usr/lib/x86_64-linux-gnu # libs
    +: # conditions
    +;
    +
    +using python 
    +: 3.5 # version
    +: # Interpreter/path to dir
    +: /usr/include/python3.5 # includes
    +: /usr/lib/x86_64-linux-gnu # libs
    +: # conditions
    +;
    +
    +# On windows
    +using python
    +: 2.7 # version
    +: C:\\Python27-32\\python.exe # Interperter/path to dir
    +: C:\\Python27-32\\include # includes
    +: C:\\Python27-32\\libs # libs
    +: <address-model>32 <address-model> # conditions - both 32 and unspecified 
    +;
    +
    +using python
    +: 2.7 # version
    +: C:\\Python27-64\\python.exe # Interperter/path to dir
    +: C:\\Python27-64\\include # includes
    +: C:\\Python27-64\\libs # libs
    +: <address-model>64 # conditions
    +;
    +
    +

    @@ -2783,7 +2924,8 @@ exe a : a.cpp the directory bin unless this is overridden by the build-dir project attribute. Under bin is a path that depends on the properties used to build each target. This path is uniquely determined by - all non-free, non-incidental properties. For example, + all relevant + non-free, non-incidental properties. For example, given a property set containing: <toolset>gcc <toolset-gcc:version>4.6.1 <variant>debug <warnings>all <define>_DEBUG <include>/usr/local/include diff --git a/doc/html/boost/CV/constrained_value.html b/doc/html/boost/CV/constrained_value.html index b787c6e49e..5559de1959 100644 --- a/doc/html/boost/CV/constrained_value.html +++ b/doc/html/boost/CV/constrained_value.html @@ -39,53 +39,53 @@ typedef value_policies::value_type value_type; // construct/copy/destruct - constrained_value(value_type); - constrained_value & operator=(value_type); + constrained_value(value_type); + constrained_value & operator=(value_type); - // public member functions - operator value_type() const; + // public member functions + operator value_type() const; - // public static functions - static value_type max BOOST_PREVENT_MACRO_SUBSTITUTION(); - static value_type min BOOST_PREVENT_MACRO_SUBSTITUTION(); + // public static functions + static value_type max BOOST_PREVENT_MACRO_SUBSTITUTION(); + static value_type min BOOST_PREVENT_MACRO_SUBSTITUTION(); - // private member functions - void assign(value_type); + // private member functions + void assign(value_type); };

    -

    Description

    +

    Description

    This template provides a quick way to generate an integer type with a constrained range. The type provides for the ability to specify the min, max, and and error handling policy.

    value policies A class that provides the range limits via the min and max functions as well as a function on_error that determines how errors are handled. A common strategy would be to assert or throw and exception. The on_error is passed both the current value and the new value that is in error.

    -

    +

    constrained_value public construct/copy/destruct

      -
    1. constrained_value(value_type value);
    2. -
    3. constrained_value & operator=(value_type v);
    4. +
    5. constrained_value(value_type value);
    6. +
    7. constrained_value & operator=(value_type v);
    -

    -constrained_value public member functions

    +

    +constrained_value public member functions

    1. -
      operator value_type() const;
      Coerce into the representation type.
    +
    operator value_type() const;
    Coerce into the representation type.
    -

    -constrained_value public static functions

    +

    +constrained_value public static functions

    1. -
      static value_type max BOOST_PREVENT_MACRO_SUBSTITUTION();
      Return the max allowed value (traits method)
    2. +
      static value_type max BOOST_PREVENT_MACRO_SUBSTITUTION();
      Return the max allowed value (traits method)
    3. -
      static value_type min BOOST_PREVENT_MACRO_SUBSTITUTION();
      Return the min allowed value (traits method)
    4. +
      static value_type min BOOST_PREVENT_MACRO_SUBSTITUTION();
      Return the min allowed value (traits method)
    -

    -constrained_value private member functions

    -
    1. void assign(value_type value);
    +

    +constrained_value private member functions

    +
    1. void assign(value_type value);
    diff --git a/doc/html/boost/CV/simple_exception_policy.html b/doc/html/boost/CV/simple_exception_policy.html index 783728551b..f602cbb141 100644 --- a/doc/html/boost/CV/simple_exception_policy.html +++ b/doc/html/boost/CV/simple_exception_policy.html @@ -43,24 +43,24 @@ struct exception_wrapper : public exception_type { - // public member functions - operator std::out_of_range() const; + // public member functions + operator std::out_of_range() const; }; - // public static functions - static rep_type min BOOST_PREVENT_MACRO_SUBSTITUTION(); - static rep_type max BOOST_PREVENT_MACRO_SUBSTITUTION(); - static void on_error(rep_type, rep_type, violation_enum); + // public static functions + static rep_type min BOOST_PREVENT_MACRO_SUBSTITUTION(); + static rep_type max BOOST_PREVENT_MACRO_SUBSTITUTION(); + static void on_error(rep_type, rep_type, violation_enum); };
    -

    Description

    +

    Description

    -

    -simple_exception_policy public static functions

    +

    +simple_exception_policy public static functions

      -
    1. static rep_type min BOOST_PREVENT_MACRO_SUBSTITUTION();
    2. -
    3. static rep_type max BOOST_PREVENT_MACRO_SUBSTITUTION();
    4. -
    5. static void on_error(rep_type, rep_type, violation_enum);
    6. +
    7. static rep_type min BOOST_PREVENT_MACRO_SUBSTITUTION();
    8. +
    9. static rep_type max BOOST_PREVENT_MACRO_SUBSTITUTION();
    10. +
    11. static void on_error(rep_type, rep_type, violation_enum);
    diff --git a/doc/html/boost/CV/simple_exception_policy/exception_wrapper.html b/doc/html/boost/CV/simple_exception_policy/exception_wrapper.html index a35b37b22f..6ce0d33bfb 100644 --- a/doc/html/boost/CV/simple_exception_policy/exception_wrapper.html +++ b/doc/html/boost/CV/simple_exception_policy/exception_wrapper.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -36,15 +36,15 @@ struct exception_wrapper : public exception_type { - // public member functions - operator std::out_of_range() const; + // public member functions + operator std::out_of_range() const; };
    -

    Description

    +

    Description

    -

    -exception_wrapper public member functions

    -
    1. operator std::out_of_range() const;
    +

    +exception_wrapper public member functions

    +
    1. operator std::out_of_range() const;
    @@ -56,7 +56,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/bad_function_call.html b/doc/html/boost/bad_function_call.html index 95053b862f..a4ec5ccb83 100644 --- a/doc/html/boost/bad_function_call.html +++ b/doc/html/boost/bad_function_call.html @@ -36,17 +36,17 @@ class bad_function_call : public std::runtime_error { public: // construct/copy/destruct - bad_function_call(); + bad_function_call(); };
    -

    Description

    +

    Description

    -

    +

    bad_function_call public construct/copy/destruct

    1. -
      bad_function_call();
      +
      bad_function_call();
      diff --git a/doc/html/boost/circular_buffe_idp24565232.html b/doc/html/boost/circular_buffe_idp24565232.html deleted file mode 100644 index c9ec7ddabe..0000000000 --- a/doc/html/boost/circular_buffe_idp24565232.html +++ /dev/null @@ -1,2828 +0,0 @@ - - - - -Class template circular_buffer_space_optimized - - - - - - - - -
      - - - - - - -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Class template circular_buffer_space_optimized

      -

      boost::circular_buffer_space_optimized — Space optimized circular buffer container adaptor. T must be a copyable class or must have an noexcept move constructor and move assignment operator.

      -
      -

      Synopsis

      -
      // In header: <boost/circular_buffer/space_optimized.hpp>
      -
      -template<typename T, typename Alloc> 
      -class circular_buffer_space_optimized :
      -  private boost::circular_buffer< T, Alloc >
      -{
      -public:
      -  // types
      -  typedef circular_buffer< T, Alloc >::value_type             value_type;            
      -  typedef circular_buffer< T, Alloc >::pointer                pointer;               
      -  typedef circular_buffer< T, Alloc >::const_pointer          const_pointer;         
      -  typedef circular_buffer< T, Alloc >::reference              reference;             
      -  typedef circular_buffer< T, Alloc >::const_reference        const_reference;       
      -  typedef circular_buffer< T, Alloc >::size_type              size_type;             
      -  typedef circular_buffer< T, Alloc >::difference_type        difference_type;       
      -  typedef circular_buffer< T, Alloc >::allocator_type         allocator_type;        
      -  typedef circular_buffer< T, Alloc >::const_iterator         const_iterator;        
      -  typedef circular_buffer< T, Alloc >::iterator               iterator;              
      -  typedef circular_buffer< T, Alloc >::const_reverse_iterator const_reverse_iterator;
      -  typedef circular_buffer< T, Alloc >::reverse_iterator       reverse_iterator;      
      -  typedef circular_buffer< T, Alloc >::array_range            array_range;           
      -  typedef circular_buffer< T, Alloc >::const_array_range      const_array_range;     
      -  typedef circular_buffer< T, Alloc >::param_value_type       param_value_type;      
      -  typedef circular_buffer< T, Alloc >::rvalue_type            rvalue_type;           
      -  typedef cb_details::capacity_control< size_type >           capacity_type;         
      -
      -  // construct/copy/destruct
      -  explicit circular_buffer_space_optimized(const allocator_type & = allocator_type()) noexcept;
      -  explicit circular_buffer_space_optimized(capacity_type, 
      -                                           const allocator_type & = allocator_type());
      -  circular_buffer_space_optimized(capacity_type, param_value_type, 
      -                                  const allocator_type & = allocator_type());
      -  circular_buffer_space_optimized(capacity_type, size_type, param_value_type, 
      -                                  const allocator_type & = allocator_type());
      -  circular_buffer_space_optimized(const circular_buffer_space_optimized< T, Alloc > &);
      -  circular_buffer_space_optimized(circular_buffer_space_optimized< T, Alloc > &&) noexcept;
      -  template<typename InputIterator> 
      -    circular_buffer_space_optimized(InputIterator, InputIterator, 
      -                                    const allocator_type & = allocator_type());
      -  template<typename InputIterator> 
      -    circular_buffer_space_optimized(capacity_type, InputIterator, 
      -                                    InputIterator, 
      -                                    const allocator_type & = allocator_type());
      -  circular_buffer_space_optimized< T, Alloc > & 
      -  operator=(const circular_buffer_space_optimized< T, Alloc > &);
      -  circular_buffer_space_optimized< T, Alloc > & 
      -  operator=(circular_buffer_space_optimized< T, Alloc > &&) noexcept;
      -
      -  // public member functions
      -  bool full() const noexcept;
      -  size_type reserve() const noexcept;
      -  const capacity_type & capacity() const noexcept;
      -  void set_capacity(const capacity_type &);
      -  void resize(size_type, param_value_type = value_type());
      -  void rset_capacity(const capacity_type &);
      -  void rresize(size_type, param_value_type = value_type());
      -  void assign(size_type, param_value_type);
      -  void assign(capacity_type, size_type, param_value_type);
      -  template<typename InputIterator> void assign(InputIterator, InputIterator);
      -  template<typename InputIterator> 
      -    void assign(capacity_type, InputIterator, InputIterator);
      -  void swap(circular_buffer_space_optimized< T, Alloc > &) noexcept;
      -  void push_back(param_value_type);
      -  void push_back(rvalue_type);
      -  void push_back();
      -  void push_front(param_value_type);
      -  void push_front(rvalue_type);
      -  void push_front();
      -  void pop_back();
      -  void pop_front();
      -  iterator insert(iterator, param_value_type);
      -  iterator insert(iterator, rvalue_type);
      -  iterator insert(iterator);
      -  void insert(iterator, size_type, param_value_type);
      -  template<typename InputIterator> 
      -    void insert(iterator, InputIterator, InputIterator);
      -  iterator rinsert(iterator, param_value_type);
      -  iterator rinsert(iterator, rvalue_type);
      -  iterator rinsert(iterator);
      -  void rinsert(iterator, size_type, param_value_type);
      -  template<typename InputIterator> 
      -    void rinsert(iterator, InputIterator, InputIterator);
      -  iterator erase(iterator);
      -  iterator erase(iterator, iterator);
      -  iterator rerase(iterator);
      -  iterator rerase(iterator, iterator);
      -  void clear();
      -
      -  // private member functions
      -  void adjust_min_capacity();
      -  size_type ensure_reserve(size_type, size_type) const;
      -  void check_low_capacity(size_type = 1);
      -  void check_high_capacity();
      -  void reduce_capacity(const true_type &);
      -  void reduce_capacity(const false_type &);
      -  template<typename IntegralType> 
      -    void insert(const iterator &, IntegralType, IntegralType, 
      -                const true_type &);
      -  template<typename Iterator> 
      -    void insert(const iterator &, Iterator, Iterator, const false_type &);
      -  template<typename IntegralType> 
      -    void rinsert(const iterator &, IntegralType, IntegralType, 
      -                 const true_type &);
      -  template<typename Iterator> 
      -    void rinsert(const iterator &, Iterator, Iterator, const false_type &);
      -
      -  // private static functions
      -  static size_type init_capacity(const capacity_type &, size_type);
      -  template<typename IntegralType> 
      -    static size_type 
      -    init_capacity(const capacity_type &, IntegralType, IntegralType, 
      -                  const true_type &);
      -  template<typename Iterator> 
      -    static size_type 
      -    init_capacity(const capacity_type &, Iterator, Iterator, 
      -                  const false_type &);
      -  template<typename InputIterator> 
      -    static size_type 
      -    init_capacity(const capacity_type &, InputIterator, InputIterator, 
      -                  const std::input_iterator_tag &);
      -  template<typename ForwardIterator> 
      -    static size_type 
      -    init_capacity(const capacity_type &, ForwardIterator, ForwardIterator, 
      -                  const std::forward_iterator_tag &);
      -};
      -
      -

      Description

      -
      -

      -circular_buffer_space_optimized - public - types

      -
      1. -

        -typedef cb_details::capacity_control< size_type > capacity_type;

        -

        Capacity controller of the space optimized circular buffer.

        -

        See Also:

        -

        capacity_control in details.hpp.

        -

        - class capacity_control
        - {
        - size_type m_capacity; // Available capacity.
        - size_type m_min_capacity; // Minimum capacity.
        - public:
        - capacity_control(size_type capacity, size_type min_capacity = 0)
        - : m_capacity(capacity), m_min_capacity(min_capacity)
        - {};
        - size_type capacity() const { return m_capacity; }
        - size_type min_capacity() const { return m_min_capacity; }
        - operator size_type() const { return m_capacity; }
        - };
        -

        -

        Always capacity >= min_capacity.

        -

        The capacity() represents the capacity of the circular_buffer_space_optimized and the min_capacity() determines the minimal allocated size of its internal buffer.

        -

        The converting constructor of the capacity_control allows implicit conversion from size_type-like types which ensures compatibility of creating an instance of the circular_buffer_space_optimized with other STL containers.

        -

        On the other hand the operator size_type() provides implicit conversion to the size_type which allows to treat the capacity of the circular_buffer_space_optimized the same way as in the circular_buffer.

        -
      -
      -
      -

      -circular_buffer_space_optimized - public - construct/copy/destruct

      -
        -
      1. -
        explicit circular_buffer_space_optimized(const allocator_type & alloc = allocator_type()) noexcept;
        Create an empty space optimized circular buffer with zero capacity.

        - - -

        -

        Complexity. Constant.

        -

        -

        -
        - - - - - -
        [Warning]Warning

        Since Boost version 1.36 the behaviour of this constructor has changed. Now it creates a space optimized circular buffer with zero capacity.

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        alloc

        The allocator.

        Postconditions:

        capacity().capacity() == 0 && capacity().min_capacity() == 0 && size() == 0

        Throws:

        Nothing.
        -
      2. -
      3. -
        explicit circular_buffer_space_optimized(capacity_type capacity_ctrl, 
        -                                         const allocator_type & alloc = allocator_type());
        Create an empty space optimized circular buffer with the specified capacity.

        - - -

        -

        Complexity. Constant.

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        alloc

        The allocator.

        capacity_ctrl

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        Postconditions:

        capacity() == capacity_ctrl && size() == 0
        -
        - The amount of allocated memory in the internal buffer is capacity_ctrl.min_capacity().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        -
      4. -
      5. -
        circular_buffer_space_optimized(capacity_type capacity_ctrl, 
        -                                param_value_type item, 
        -                                const allocator_type & alloc = allocator_type());
        Create a full space optimized circular buffer with the specified capacity filled with capacity_ctrl.capacity() copies of item.

        - - -

        -

        Complexity. Linear (in the capacity_ctrl.capacity()).

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - -

        alloc

        The allocator.

        capacity_ctrl

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        item

        The element the created circular_buffer_space_optimized will be filled with.

        Postconditions:

        capacity() == capacity_ctrl && full() && (*this)[0] == item && (*this)[1] == item && ... && (*this) [capacity_ctrl.capacity() - 1] == item
        -
        - The amount of allocated memory in the internal buffer is capacity_ctrl.capacity().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). T::T(const T&) throws.
        -
      6. -
      7. -
        circular_buffer_space_optimized(capacity_type capacity_ctrl, size_type n, 
        -                                param_value_type item, 
        -                                const allocator_type & alloc = allocator_type());
        Create a space optimized circular buffer with the specified capacity filled with n copies of item.

        - - - -

        -

        Complexity. Linear (in the n).

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - - - - - -

        alloc

        The allocator.

        capacity_ctrl

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        item

        The element the created circular_buffer_space_optimized will be filled with.

        n

        The number of elements the created circular_buffer_space_optimized will be filled with.

        Requires:

        capacity_ctrl.capacity() >= n

        Postconditions:

        capacity() == capacity_ctrl && size() == n && (*this)[0] == item && (*this)[1] == item && ... && (*this)[n - 1] == item
        -
        - The amount of allocated memory in the internal buffer is max[n, capacity_ctrl.min_capacity()].

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      8. -
      9. -
        circular_buffer_space_optimized(const circular_buffer_space_optimized< T, Alloc > & cb);
        The copy constructor.

        Creates a copy of the specified circular_buffer_space_optimized. - - -

        -

        Complexity. Linear (in the size of cb).

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        cb

        The circular_buffer_space_optimized to be copied.

        Postconditions:

        *this == cb
        -
        - The amount of allocated memory in the internal buffer is cb.size().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      10. -
      11. -
        circular_buffer_space_optimized(circular_buffer_space_optimized< T, Alloc > && cb) noexcept;
        The move constructor.

        Move constructs a circular_buffer_space_optimized from cb, leaving cb empty. - - - -

        -

        Constant. 

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        cb

        circular_buffer to 'steal' value from.

        Requires:

        C++ compiler with rvalue references support.

        Postconditions:

        cb.empty()

        Throws:

        Nothing.
        -
      12. -
      13. -
        template<typename InputIterator> 
        -  circular_buffer_space_optimized(InputIterator first, InputIterator last, 
        -                                  const allocator_type & alloc = allocator_type());
        Create a full space optimized circular buffer filled with a copy of the range.

        - - - -

        -

        Complexity. Linear (in the std::distance(first, last)).

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - -

        alloc

        The allocator.

        first

        The beginning of the range to be copied.

        last

        The end of the range to be copied.

        Requires:

        Valid range [first, last).
        - first and last have to meet the requirements of InputIterator.

        Postconditions:

        capacity().capacity() == std::distance(first, last) && capacity().min_capacity() == 0 && full() && (*this)[0]== *first && (*this)[1] == *(first + 1) && ... && (*this)[std::distance(first, last) - 1] == *(last - 1)
        -
        - The amount of allocated memory in the internal buffer is std::distance(first, last).

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept and InputIterator is a move iterator.
        -
      14. -
      15. -
        template<typename InputIterator> 
        -  circular_buffer_space_optimized(capacity_type capacity_ctrl, 
        -                                  InputIterator first, InputIterator last, 
        -                                  const allocator_type & alloc = allocator_type());
        Create a space optimized circular buffer with the specified capacity (and the minimal guaranteed amount of allocated memory) filled with a copy of the range.

        - - - -

        -

        Complexity. Linear (in std::distance(first, last); in min[capacity_ctrl.capacity(), std::distance(first, last)] if the InputIterator is a RandomAccessIterator).

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - - - - - -

        alloc

        The allocator.

        capacity_ctrl

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        first

        The beginning of the range to be copied.

        last

        The end of the range to be copied.

        Requires:

        Valid range [first, last).
        - first and last have to meet the requirements of InputIterator.

        Postconditions:

        capacity() == capacity_ctrl && size() <= std::distance(first, last) && (*this)[0]== (last - capacity_ctrl.capacity()) && (*this)[1] == *(last - capacity_ctrl.capacity() + 1) && ... && (*this)[capacity_ctrl.capacity() - 1] == *(last - 1)
        -
        - If the number of items to be copied from the range [first, last) is greater than the specified capacity_ctrl.capacity() then only elements from the range [last - capacity_ctrl.capacity(), last) will be copied.
        -
        - The amount of allocated memory in the internal buffer is max[capacity_ctrl.min_capacity(), min[capacity_ctrl.capacity(), std::distance(first, last)]].

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      16. -
      17. -
        circular_buffer_space_optimized< T, Alloc > & 
        -operator=(const circular_buffer_space_optimized< T, Alloc > & cb);
        The assign operator.

        Makes this circular_buffer_space_optimized to become a copy of the specified circular_buffer_space_optimized. - - -

        -

        Exception Safety. Strong.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to this circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of cb).

        -

        -

        -

        See Also:

        -

        assign(size_type, const_reference), assign(capacity_type, size_type, const_reference), assign(InputIterator, InputIterator), assign(capacity_type, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        cb

        The circular_buffer_space_optimized to be copied.

        Postconditions:

        *this == cb
        -
        - The amount of allocated memory in the internal buffer is cb.size().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). T::T(const T&) throws.
        -
      18. -
      19. -
        circular_buffer_space_optimized< T, Alloc > & 
        -operator=(circular_buffer_space_optimized< T, Alloc > && cb) noexcept;
        Move assigns content of cb to *this, leaving cb empty.

        - - - -

        -

        Complexity. Constant.

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        cb

        circular_buffer to 'steal' value from.

        Requires:

        C++ compiler with rvalue references support.

        Postconditions:

        cb.empty()

        Throws:

        Nothing.
        -
      20. -
      -
      -
      -

      -circular_buffer_space_optimized public member functions

      -
        -
      1. -
        bool full() const noexcept;
        Is the circular_buffer_space_optimized full?

        - -

        -

        Exception Safety. No-throw.

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -

        Complexity. Constant (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        empty()

        -

        -

        -
        ---- - - - - - - - - - - -

        Returns:

        true if the number of elements stored in the circular_buffer_space_optimized equals the capacity of the circular_buffer_space_optimized; false otherwise.

        Throws:

        Nothing.
        -
      2. -
      3. -
        size_type reserve() const noexcept;
        Get the maximum number of elements which can be inserted into the circular_buffer_space_optimized without overwriting any of already stored elements.

        - -

        -

        Exception Safety. No-throw.

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -

        Complexity. Constant (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        capacity(), size(), max_size()

        -

        -

        -
        ---- - - - - - - - - - - -

        Returns:

        capacity().capacity() - size()

        Throws:

        Nothing.
        -
      4. -
      5. -
        const capacity_type & capacity() const noexcept;
        Get the capacity of the circular_buffer_space_optimized.

        - -

        -

        Exception Safety. No-throw.

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -

        Complexity. Constant (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        reserve(), size(), max_size(), set_capacity(const capacity_type&)

        -

        -

        -
        ---- - - - - - - - - - - -

        Returns:

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        Throws:

        Nothing.
        -
      6. -
      7. -
        void set_capacity(const capacity_type & capacity_ctrl);
        Change the capacity (and the minimal guaranteed amount of allocated memory) of the circular_buffer_space_optimized.

        - - -

        -

        Exception Safety. Strong.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in min[size(), capacity_ctrl.capacity()]).

        -

        -

        -
        - - - - - -
        [Note]Note

        To explicitly clear the extra allocated memory use the shrink-to-fit technique:
        -
        - boost::circular_buffer_space_optimized<int> cb(1000);
        - ...
        - boost::circular_buffer_space_optimized<int>(cb).swap(cb);

        -
        - For more information about the shrink-to-fit technique in STL see http://www.gotw.ca/gotw/054.htm.

        -

        -

        -

        See Also:

        -

        rset_capacity(const capacity_type&), resize(size_type, const_reference)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        capacity_ctrl

        The new capacity controller.

        Postconditions:

        capacity() == capacity_ctrl && size() <= capacity_ctrl.capacity()
        -
        - If the current number of elements stored in the circular_buffer_space_optimized is greater than the desired new capacity then number of [size() - capacity_ctrl.capacity()] last elements will be removed and the new size will be equal to capacity_ctrl.capacity().
        -
        - If the current number of elements stored in the circular_buffer_space_optimized is lower than the new capacity then the amount of allocated memory in the internal buffer may be accommodated as necessary but it will never drop below capacity_ctrl.min_capacity().

        Throws:

        An allocation error if memory is exhausted, (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      8. -
      9. -
        void resize(size_type new_size, param_value_type item = value_type());
        Change the size of the circular_buffer_space_optimized.

        - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the new size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        rresize(size_type, const_reference), set_capacity(const capacity_type&)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        item

        The element the circular_buffer_space_optimized will be filled with in order to gain the requested size. (See the Effect.)

        new_size

        The new size.

        Postconditions:

        size() == new_size && capacity().capacity() >= new_size
        -
        - If the new size is greater than the current size, copies of item will be inserted at the back of the of the circular_buffer_space_optimized in order to achieve the desired size. In the case the resulting size exceeds the current capacity the capacity will be set to new_size.
        -
        - If the current number of elements stored in the circular_buffer_space_optimized is greater than the desired new size then number of [size() - new_size] last elements will be removed. (The capacity will remain unchanged.)
        -
        - The amount of allocated memory in the internal buffer may be accommodated as necessary.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      10. -
      11. -
        void rset_capacity(const capacity_type & capacity_ctrl);
        Change the capacity (and the minimal guaranteed amount of allocated memory) of the circular_buffer_space_optimized.

        - - -

        -

        Exception Safety. Strong.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in min[size(), capacity_ctrl.capacity()]).

        -

        -

        -

        See Also:

        -

        set_capacity(const capacity_type&), rresize(size_type, const_reference)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        capacity_ctrl

        The new capacity controller.

        Postconditions:

        capacity() == capacity_ctrl && size() <= capacity_ctrl
        -
        - If the current number of elements stored in the circular_buffer_space_optimized is greater than the desired new capacity then number of [size() - capacity_ctrl.capacity()] first elements will be removed and the new size will be equal to capacity_ctrl.capacity().
        -
        - If the current number of elements stored in the circular_buffer_space_optimized is lower than the new capacity then the amount of allocated memory in the internal buffer may be accommodated as necessary but it will never drop below capacity_ctrl.min_capacity().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      12. -
      13. -
        void rresize(size_type new_size, param_value_type item = value_type());
        Change the size of the circular_buffer_space_optimized.

        - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the new size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        resize(size_type, const_reference), rset_capacity(const capacity_type&)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        item

        The element the circular_buffer_space_optimized will be filled with in order to gain the requested size. (See the Effect.)

        new_size

        The new size.

        Postconditions:

        size() == new_size && capacity().capacity() >= new_size
        -
        - If the new size is greater than the current size, copies of item will be inserted at the front of the of the circular_buffer_space_optimized in order to achieve the desired size. In the case the resulting size exceeds the current capacity the capacity will be set to new_size.
        -
        - If the current number of elements stored in the circular_buffer_space_optimized is greater than the desired new size then number of [size() - new_size] first elements will be removed. (The capacity will remain unchanged.)
        -
        - The amount of allocated memory in the internal buffer may be accommodated as necessary.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      14. -
      15. -
        void assign(size_type n, param_value_type item);
        Assign n items into the space optimized circular buffer.

        The content of the circular_buffer_space_optimized will be removed and replaced with n copies of the item. - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the n).

        -

        -

        -

        See Also:

        -

        operator=, assign(capacity_type, size_type, const_reference), assign(InputIterator, InputIterator), assign(capacity_type, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        item

        The element the circular_buffer_space_optimized will be filled with.

        n

        The number of elements the circular_buffer_space_optimized will be filled with.

        Postconditions:

        capacity().capacity() == n && capacity().min_capacity() == 0 && size() == n && (*this)[0] == item && (*this)[1] == item && ... && (*this) [n - 1] == item
        -
        - The amount of allocated memory in the internal buffer is n.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      16. -
      17. -
        void assign(capacity_type capacity_ctrl, size_type n, param_value_type item);
        Assign n items into the space optimized circular buffer specifying the capacity.

        The capacity of the circular_buffer_space_optimized will be set to the specified value and the content of the circular_buffer_space_optimized will be removed and replaced with n copies of the item. - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the n).

        -

        -

        -

        See Also:

        -

        operator=, assign(size_type, const_reference), assign(InputIterator, InputIterator), assign(capacity_type, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - -

        capacity_ctrl

        The new capacity controller.

        item

        The element the circular_buffer_space_optimized will be filled with.

        n

        The number of elements the circular_buffer_space_optimized will be filled with.

        Requires:

        capacity_ctrl.capacity() >= n

        Postconditions:

        capacity() == capacity_ctrl && size() == n && (*this)[0] == item && (*this)[1] == item && ... && (*this) [n - 1] == item
        -
        - The amount of allocated memory will be max[n, capacity_ctrl.min_capacity()].

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      18. -
      19. -
        template<typename InputIterator> 
        -  void assign(InputIterator first, InputIterator last);
        Assign a copy of the range into the space optimized circular buffer.

        The content of the circular_buffer_space_optimized will be removed and replaced with copies of elements from the specified range. - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the std::distance(first, last)).

        -

        -

        -

        See Also:

        -

        operator=, assign(size_type, const_reference), assign(capacity_type, size_type, const_reference), assign(capacity_type, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        first

        The beginning of the range to be copied.

        last

        The end of the range to be copied.

        Requires:

        Valid range [first, last).
        - first and last have to meet the requirements of InputIterator.

        Postconditions:

        capacity().capacity() == std::distance(first, last) && capacity().min_capacity() == 0 && size() == std::distance(first, last) && (*this)[0]== *first && (*this)[1] == *(first + 1) && ... && (*this)[std::distance(first, last) - 1] == *(last - 1)
        -
        - The amount of allocated memory in the internal buffer is std::distance(first, last).

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept and InputIterator is a move iterator.
        -
      20. -
      21. -
        template<typename InputIterator> 
        -  void assign(capacity_type capacity_ctrl, InputIterator first, 
        -              InputIterator last);
        Assign a copy of the range into the space optimized circular buffer specifying the capacity.

        The capacity of the circular_buffer_space_optimized will be set to the specified value and the content of the circular_buffer_space_optimized will be removed and replaced with copies of elements from the specified range. - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in std::distance(first, last); in min[capacity_ctrl.capacity(), std::distance(first, last)] if the InputIterator is a RandomAccessIterator).

        -

        -

        -

        See Also:

        -

        operator=, assign(size_type, const_reference), assign(capacity_type, size_type, const_reference), assign(InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - -

        capacity_ctrl

        The new capacity controller.

        first

        The beginning of the range to be copied.

        last

        The end of the range to be copied.

        Requires:

        Valid range [first, last).
        - first and last have to meet the requirements of InputIterator.

        Postconditions:

        capacity() == capacity_ctrl && size() <= std::distance(first, last) && (*this)[0]== *(last - capacity) && (*this)[1] == *(last - capacity + 1) && ... && (*this)[capacity - 1] == *(last - 1)
        -
        - If the number of items to be copied from the range [first, last) is greater than the specified capacity then only elements from the range [last - capacity, last) will be copied.
        -
        - The amount of allocated memory in the internal buffer is max[std::distance(first, last), capacity_ctrl.min_capacity()].

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept and InputIterator is a move iterator.
        -
      22. -
      23. -
        void swap(circular_buffer_space_optimized< T, Alloc > & cb) noexcept;
        Swap the contents of two space-optimized circular-buffers.

        - - -

        -

        Exception Safety. No-throw.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators of both circular_buffer_space_optimized containers. (On the other hand the iterators still point to the same elements but within another container. If you want to rely on this feature you have to turn the __debug_support off, otherwise an assertion will report an error if such invalidated iterator is used.)

        -

        -

        -

        Complexity. Constant (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        swap(circular_buffer<T, Alloc>&, circular_buffer<T, Alloc>&), swap(circular_buffer_space_optimized<T, Alloc>&, circular_buffer_space_optimized<T, Alloc>&)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        cb

        The circular_buffer_space_optimized whose content will be swapped.

        Postconditions:

        this contains elements of cb and vice versa; the capacity and the amount of allocated memory in the internal buffer of this equal to the capacity and the amount of allocated memory of cb and vice versa.

        Throws:

        Nothing.
        -
      24. -
      25. -
        void push_back(param_value_type item);
        Insert a new element at the end of the space optimized circular buffer.

        - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        push_front(const_reference), pop_back(), pop_front()

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        item

        The element to be inserted.

        Postconditions:

        if capacity().capacity() > 0 then back() == item
        - If the circular_buffer_space_optimized is full, the first element will be removed. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      26. -
      27. -
        void push_back(rvalue_type item);
        Insert a new element at the end of the space optimized circular buffer.

        - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        push_front(const_reference), pop_back(), pop_front()

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        item

        The element to be inserted.

        Postconditions:

        if capacity().capacity() > 0 then back() == item
        - If the circular_buffer_space_optimized is full, the first element will be removed. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        -
      28. -
      29. -
        void push_back();
        Insert a new element at the end of the space optimized circular buffer.

        - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        push_front(const_reference), pop_back(), pop_front()

        -

        -

        -
        ---- - - - - - - - - - - -

        Postconditions:

        if capacity().capacity() > 0 then back() == item
        - If the circular_buffer_space_optimized is full, the first element will be removed. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T() throws. Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      30. -
      31. -
        void push_front(param_value_type item);
        Insert a new element at the beginning of the space optimized circular buffer.

        - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        push_back(const_reference), pop_back(), pop_front()

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        item

        The element to be inserted.

        Postconditions:

        if capacity().capacity() > 0 then front() == item
        - If the circular_buffer_space_optimized is full, the last element will be removed. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        -
      32. -
      33. -
        void push_front(rvalue_type item);
        Insert a new element at the beginning of the space optimized circular buffer.

        - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        push_back(const_reference), pop_back(), pop_front()

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        item

        The element to be inserted.

        Postconditions:

        if capacity().capacity() > 0 then front() == item
        - If the circular_buffer_space_optimized is full, the last element will be removed. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      34. -
      35. -
        void push_front();
        Insert a new element at the beginning of the space optimized circular buffer.

        - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        push_back(const_reference), pop_back(), pop_front()

        -

        -

        -
        ---- - - - - - - - - - - -

        Postconditions:

        if capacity().capacity() > 0 then front() == item
        - If the circular_buffer_space_optimized is full, the last element will be removed. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T() throws. Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      36. -
      37. -
        void pop_back();
        Remove the last element from the space optimized circular buffer.

        - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        pop_front(), push_back(const_reference), push_front(const_reference)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Requires:

        !empty()

        Postconditions:

        The last element is removed from the circular_buffer_space_optimized.
        -
        - The amount of allocated memory in the internal buffer may be predictively decreased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        -
      38. -
      39. -
        void pop_front();
        Remove the first element from the space optimized circular buffer.

        - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        pop_back(), push_back(const_reference), push_front(const_reference)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Requires:

        !empty()

        Postconditions:

        The first element is removed from the circular_buffer_space_optimized.
        -
        - The amount of allocated memory in the internal buffer may be predictively decreased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        -
      40. -
      41. -
        iterator insert(iterator pos, param_value_type item);
        Insert an element at the specified position.

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        item

        The element to be inserted.

        pos

        An iterator specifying the position where the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted at the position pos.
        - If the circular_buffer_space_optimized is full, the first element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to begin(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or begin() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        -
      42. -
      43. -
        iterator insert(iterator pos, rvalue_type item);
        Insert an element at the specified position.

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        item

        The element to be inserted.

        pos

        An iterator specifying the position where the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted at the position pos.
        - If the circular_buffer_space_optimized is full, the first element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to begin(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or begin() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      44. -
      45. -
        iterator insert(iterator pos);
        Insert an element at the specified position.

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        pos

        An iterator specifying the position where the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted at the position pos.
        - If the circular_buffer_space_optimized is full, the first element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to begin(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or begin() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T() throws. Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      46. -
      47. -
        void insert(iterator pos, size_type n, param_value_type item);
        Insert n copies of the item at the specified position.

        - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in min[capacity().capacity(), size() + n]).

        -

        -

        -

        Example. Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.
        -
        - |1|2|3|4| | |
        - p ___^
        -
        -After inserting 5 elements at the position p:
        -
        - insert(p, (size_t)5, 0);
        -
        -actually only 4 elements get inserted and elements 1 and 2 are overwritten. This is due to the fact the insert operation preserves the capacity. After insertion the internal buffer looks like this:
        -
        -|0|0|0|0|3|4|
        -
        -For comparison if the capacity would not be preserved the internal buffer would then result in |1|2|0|0|0|0|0|3|4|.

        -

        -

        -

        See Also:

        -

        insert(iterator, value_type), insert(iterator, InputIterator, InputIterator), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - -

        item

        The element whose copies will be inserted.

        n

        The number of items the to be inserted.

        pos

        An iterator specifying the position where the items will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The number of min[n, (pos - begin()) + reserve()] elements will be inserted at the position pos.
        -The number of min[pos - begin(), max[0, n - reserve()]] elements will be overwritten at the beginning of the circular_buffer_space_optimized.
        -(See Example for the explanation.)
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        -
      48. -
      49. -
        template<typename InputIterator> 
        -  void insert(iterator pos, InputIterator first, InputIterator last);
        Insert the range [first, last) at the specified position.

        - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in [size() + std::distance(first, last)]; in min[capacity().capacity(), size() + std::distance(first, last)] if the InputIterator is a RandomAccessIterator).

        -

        -

        -

        Example. Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.
        -
        - |1|2|3|4| | |
        - p ___^
        -
        -After inserting a range of elements at the position p:
        -
        - int array[] = { 5, 6, 7, 8, 9 };
        -insert(p, array, array + 5);
        -
        - actually only elements 6, 7, 8 and 9 from the specified range get inserted and elements 1 and 2 are overwritten. This is due to the fact the insert operation preserves the capacity. After insertion the internal buffer looks like this:
        -
        -|6|7|8|9|3|4|
        -
        -For comparison if the capacity would not be preserved the internal buffer would then result in |1|2|5|6|7|8|9|3|4|.

        -

        -

        -

        See Also:

        -

        insert(iterator, value_type), insert(iterator, size_type, value_type), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - -

        first

        The beginning of the range to be inserted.

        last

        The end of the range to be inserted.

        pos

        An iterator specifying the position where the range will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.
        -Valid range [first, last) where first and last meet the requirements of an InputIterator.

        Postconditions:

        Elements from the range [first + max[0, distance(first, last) - (pos - begin()) - reserve()], last) will be inserted at the position pos.
        -The number of min[pos - begin(), max[0, distance(first, last) - reserve()]] elements will be overwritten at the beginning of the circular_buffer_space_optimized.
        -(See Example for the explanation.)
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      50. -
      51. -
        iterator rinsert(iterator pos, param_value_type item);
        Insert an element before the specified position.

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        item

        The element to be inserted.

        pos

        An iterator specifying the position before which the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted before the position pos.
        - If the circular_buffer_space_optimized is full, the last element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to end(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or end() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        -
      52. -
      53. -
        iterator rinsert(iterator pos, rvalue_type item);
        Insert an element before the specified position.

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        item

        The element to be inserted.

        pos

        An iterator specifying the position before which the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted before the position pos.
        - If the circular_buffer_space_optimized is full, the last element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to end(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or end() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      54. -
      55. -
        iterator rinsert(iterator pos);
        Insert an element before the specified position.

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        pos

        An iterator specifying the position before which the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted before the position pos.
        - If the circular_buffer_space_optimized is full, the last element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to end(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or end() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T() throws. Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        -
      56. -
      57. -
        void rinsert(iterator pos, size_type n, param_value_type item);
        Insert n copies of the item before the specified position.

        - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in min[capacity().capacity(), size() + n]).

        -

        -

        -

        Example. Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.
        -
        - |1|2|3|4| | |
        - p ___^
        -
        -After inserting 5 elements before the position p:
        -
        - rinsert(p, (size_t)5, 0);
        -
        -actually only 4 elements get inserted and elements 3 and 4 are overwritten. This is due to the fact the rinsert operation preserves the capacity. After insertion the internal buffer looks like this:
        -
        -|1|2|0|0|0|0|
        -
        -For comparison if the capacity would not be preserved the internal buffer would then result in |1|2|0|0|0|0|0|3|4|.

        -

        -

        -

        See Also:

        -

        rinsert(iterator, value_type), rinsert(iterator, InputIterator, InputIterator), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - -

        item

        The element whose copies will be inserted.

        n

        The number of items the to be inserted.

        pos

        An iterator specifying the position where the items will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The number of min[n, (end() - pos) + reserve()] elements will be inserted before the position pos.
        -The number of min[end() - pos, max[0, n - reserve()]] elements will be overwritten at the end of the circular_buffer_space_optimized.
        -(See Example for the explanation.)
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        -
      58. -
      59. -
        template<typename InputIterator> 
        -  void rinsert(iterator pos, InputIterator first, InputIterator last);
        Insert the range [first, last) before the specified position.

        - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in [size() + std::distance(first, last)]; in min[capacity().capacity(), size() + std::distance(first, last)] if the InputIterator is a RandomAccessIterator).

        -

        -

        -

        Example. Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.
        -
        - |1|2|3|4| | |
        - p ___^
        -
        -After inserting a range of elements before the position p:
        -
        - int array[] = { 5, 6, 7, 8, 9 };
        -insert(p, array, array + 5);
        -
        - actually only elements 5, 6, 7 and 8 from the specified range get inserted and elements 3 and 4 are overwritten. This is due to the fact the rinsert operation preserves the capacity. After insertion the internal buffer looks like this:
        -
        -|1|2|5|6|7|8|
        -
        -For comparison if the capacity would not be preserved the internal buffer would then result in |1|2|5|6|7|8|9|3|4|.

        -

        -

        -

        See Also:

        -

        rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - - - - - -

        first

        The beginning of the range to be inserted.

        last

        The end of the range to be inserted.

        pos

        An iterator specifying the position where the range will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.
        - Valid range [first, last) where first and last meet the requirements of an InputIterator.

        Postconditions:

        Elements from the range [first, last - max[0, distance(first, last) - (end() - pos) - reserve()]) will be inserted before the position pos.
        -The number of min[end() - pos, max[0, distance(first, last) - reserve()]] elements will be overwritten at the end of the circular_buffer.
        -(See Example for the explanation.)
        -
        - The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        -
      60. -
      61. -
        iterator erase(iterator pos);
        Remove an element at the specified position.

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        erase(iterator, iterator), rerase(iterator), rerase(iterator, iterator), clear()

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        pos

        An iterator pointing at the element to be removed.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized (but not an end()).

        Postconditions:

        The element at the position pos is removed.
        -
        - The amount of allocated memory in the internal buffer may be predictively decreased.

        Returns:

        Iterator to the first element remaining beyond the removed element or end() if no such element exists.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::operator = (const T&) throws or nothing if T::operator = (T&&) is noexcept.
        -
      62. -
      63. -
        iterator erase(iterator first, iterator last);
        Erase the range [first, last).

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        erase(iterator), rerase(iterator), rerase(iterator, iterator), clear()

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        first

        The beginning of the range to be removed.

        last

        The end of the range to be removed.

        Requires:

        Valid range [first, last).

        Postconditions:

        The elements from the range [first, last) are removed. (If first == last nothing is removed.)
        -
        - The amount of allocated memory in the internal buffer may be predictively decreased.

        Returns:

        Iterator to the first element remaining beyond the removed elements or end() if no such element exists.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::operator = (const T&) throws or nothing if T::operator = (T&&) is noexcept.
        -
      64. -
      65. -
        iterator rerase(iterator pos);
        Remove an element at the specified position.

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -
        - - - - - -
        [Note]Note

        Basically there is no difference between erase(iterator) and this method. It is implemented only for consistency with the base circular_buffer.

        -

        -

        -

        See Also:

        -

        erase(iterator), erase(iterator, iterator), rerase(iterator, iterator), clear()

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - -

        pos

        An iterator pointing at the element to be removed.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized (but not an end()).
        -
        - The amount of allocated memory in the internal buffer may be predictively decreased.

        Postconditions:

        The element at the position pos is removed.

        Returns:

        Iterator to the first element remaining in front of the removed element or begin() if no such element exists.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::operator = (const T&) throws or nothing if T::operator = (T&&) is noexcept.
        -
      66. -
      67. -
        iterator rerase(iterator first, iterator last);
        Erase the range [first, last).

        - - - - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -
        - - - - - -
        [Note]Note

        Basically there is no difference between erase(iterator, iterator) and this method. It is implemented only for consistency with the base <circular_buffer.

        -

        -

        -

        See Also:

        -

        erase(iterator), erase(iterator, iterator), rerase(iterator), clear()

        -

        -

        -
        ---- - - - - - - - - - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        first

        The beginning of the range to be removed.

        last

        The end of the range to be removed.

        Requires:

        Valid range [first, last).

        Postconditions:

        The elements from the range [first, last) are removed. (If first == last nothing is removed.)
        -
        - The amount of allocated memory in the internal buffer may be predictively decreased.

        Returns:

        Iterator to the first element remaining in front of the removed elements or begin() if no such element exists.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::operator = (const T&) throws or nothing if T::operator = (T&&) is noexcept.
        -
      68. -
      69. -
        void clear();
        Remove all stored elements from the space optimized circular buffer.

        - -

        -

        Exception Safety. Basic.

        -

        -

        -

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        -

        -

        -

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        -

        -

        -

        See Also:

        -

        ~circular_buffer_space_optimized(), erase(iterator), erase(iterator, iterator), rerase(iterator), rerase(iterator, iterator)

        -

        -

        -
        ---- - - - - - - - - - - -

        Postconditions:

        size() == 0
        -
        - The amount of allocated memory in the internal buffer may be predictively decreased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        -
      70. -
      -
      -
      -

      -circular_buffer_space_optimized private member functions

      -
        -
      1. -
        void adjust_min_capacity();
        Adjust the amount of allocated memory.
      2. -
      3. -
        size_type ensure_reserve(size_type new_capacity, size_type buffer_size) const;
        Ensure the reserve for possible growth up.
      4. -
      5. -
        void check_low_capacity(size_type n = 1);
        Check for low capacity.
      6. -
      7. -
        void check_high_capacity();
        Check for high capacity.
      8. -
      9. -
        void reduce_capacity(const true_type &);
        Specialized method for reducing the capacity.
      10. -
      11. -
        void reduce_capacity(const false_type &);
        Specialized method for reducing the capacity.
      12. -
      13. -
        template<typename IntegralType> 
        -  void insert(const iterator & pos, IntegralType n, IntegralType item, 
        -              const true_type &);
        Specialized insert method.
      14. -
      15. -
        template<typename Iterator> 
        -  void insert(const iterator & pos, Iterator first, Iterator last, 
        -              const false_type &);
        Specialized insert method.
      16. -
      17. -
        template<typename IntegralType> 
        -  void rinsert(const iterator & pos, IntegralType n, IntegralType item, 
        -               const true_type &);
        Specialized rinsert method.
      18. -
      19. -
        template<typename Iterator> 
        -  void rinsert(const iterator & pos, Iterator first, Iterator last, 
        -               const false_type &);
        Specialized rinsert method.
      20. -
      -
      -
      -

      -circular_buffer_space_optimized private static functions

      -
        -
      1. -
        static size_type 
        -init_capacity(const capacity_type & capacity_ctrl, size_type n);
        Determine the initial capacity.
      2. -
      3. -
        template<typename IntegralType> 
        -  static size_type 
        -  init_capacity(const capacity_type & capacity_ctrl, IntegralType n, 
        -                IntegralType, const true_type &);
        Specialized method for determining the initial capacity.
      4. -
      5. -
        template<typename Iterator> 
        -  static size_type 
        -  init_capacity(const capacity_type & capacity_ctrl, Iterator first, 
        -                Iterator last, const false_type &);
        Specialized method for determining the initial capacity.
      6. -
      7. -
        template<typename InputIterator> 
        -  static size_type 
        -  init_capacity(const capacity_type & capacity_ctrl, InputIterator, 
        -                InputIterator, const std::input_iterator_tag &);
        Specialized method for determining the initial capacity.
      8. -
      9. -
        template<typename ForwardIterator> 
        -  static size_type 
        -  init_capacity(const capacity_type & capacity_ctrl, ForwardIterator first, 
        -                ForwardIterator last, const std::forward_iterator_tag &);
        Specialized method for determining the initial capacity.
      10. -
      -
      -
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/circular_buffe_idp43443760.html b/doc/html/boost/circular_buffe_idp43443760.html new file mode 100644 index 0000000000..1a92b2bee5 --- /dev/null +++ b/doc/html/boost/circular_buffe_idp43443760.html @@ -0,0 +1,2828 @@ + + + + +Class template circular_buffer_space_optimized + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Class template circular_buffer_space_optimized

      +

      boost::circular_buffer_space_optimized — Space optimized circular buffer container adaptor. T must be a copyable class or must have an noexcept move constructor and move assignment operator.

      +
      +

      Synopsis

      +
      // In header: <boost/circular_buffer/space_optimized.hpp>
      +
      +template<typename T, typename Alloc> 
      +class circular_buffer_space_optimized :
      +  private boost::circular_buffer< T, Alloc >
      +{
      +public:
      +  // types
      +  typedef circular_buffer< T, Alloc >::value_type             value_type;            
      +  typedef circular_buffer< T, Alloc >::pointer                pointer;               
      +  typedef circular_buffer< T, Alloc >::const_pointer          const_pointer;         
      +  typedef circular_buffer< T, Alloc >::reference              reference;             
      +  typedef circular_buffer< T, Alloc >::const_reference        const_reference;       
      +  typedef circular_buffer< T, Alloc >::size_type              size_type;             
      +  typedef circular_buffer< T, Alloc >::difference_type        difference_type;       
      +  typedef circular_buffer< T, Alloc >::allocator_type         allocator_type;        
      +  typedef circular_buffer< T, Alloc >::const_iterator         const_iterator;        
      +  typedef circular_buffer< T, Alloc >::iterator               iterator;              
      +  typedef circular_buffer< T, Alloc >::const_reverse_iterator const_reverse_iterator;
      +  typedef circular_buffer< T, Alloc >::reverse_iterator       reverse_iterator;      
      +  typedef circular_buffer< T, Alloc >::array_range            array_range;           
      +  typedef circular_buffer< T, Alloc >::const_array_range      const_array_range;     
      +  typedef circular_buffer< T, Alloc >::param_value_type       param_value_type;      
      +  typedef circular_buffer< T, Alloc >::rvalue_type            rvalue_type;           
      +  typedef cb_details::capacity_control< size_type >           capacity_type;         
      +
      +  // construct/copy/destruct
      +  explicit circular_buffer_space_optimized(const allocator_type & = allocator_type()) noexcept;
      +  explicit circular_buffer_space_optimized(capacity_type, 
      +                                           const allocator_type & = allocator_type());
      +  circular_buffer_space_optimized(capacity_type, param_value_type, 
      +                                  const allocator_type & = allocator_type());
      +  circular_buffer_space_optimized(capacity_type, size_type, param_value_type, 
      +                                  const allocator_type & = allocator_type());
      +  circular_buffer_space_optimized(const circular_buffer_space_optimized< T, Alloc > &);
      +  circular_buffer_space_optimized(circular_buffer_space_optimized< T, Alloc > &&) noexcept;
      +  template<typename InputIterator> 
      +    circular_buffer_space_optimized(InputIterator, InputIterator, 
      +                                    const allocator_type & = allocator_type());
      +  template<typename InputIterator> 
      +    circular_buffer_space_optimized(capacity_type, InputIterator, 
      +                                    InputIterator, 
      +                                    const allocator_type & = allocator_type());
      +  circular_buffer_space_optimized< T, Alloc > & 
      +  operator=(const circular_buffer_space_optimized< T, Alloc > &);
      +  circular_buffer_space_optimized< T, Alloc > & 
      +  operator=(circular_buffer_space_optimized< T, Alloc > &&) noexcept;
      +
      +  // public member functions
      +  bool full() const noexcept;
      +  size_type reserve() const noexcept;
      +  const capacity_type & capacity() const noexcept;
      +  void set_capacity(const capacity_type &);
      +  void resize(size_type, param_value_type = value_type());
      +  void rset_capacity(const capacity_type &);
      +  void rresize(size_type, param_value_type = value_type());
      +  void assign(size_type, param_value_type);
      +  void assign(capacity_type, size_type, param_value_type);
      +  template<typename InputIterator> void assign(InputIterator, InputIterator);
      +  template<typename InputIterator> 
      +    void assign(capacity_type, InputIterator, InputIterator);
      +  void swap(circular_buffer_space_optimized< T, Alloc > &) noexcept;
      +  void push_back(param_value_type);
      +  void push_back(rvalue_type);
      +  void push_back();
      +  void push_front(param_value_type);
      +  void push_front(rvalue_type);
      +  void push_front();
      +  void pop_back();
      +  void pop_front();
      +  iterator insert(iterator, param_value_type);
      +  iterator insert(iterator, rvalue_type);
      +  iterator insert(iterator);
      +  void insert(iterator, size_type, param_value_type);
      +  template<typename InputIterator> 
      +    void insert(iterator, InputIterator, InputIterator);
      +  iterator rinsert(iterator, param_value_type);
      +  iterator rinsert(iterator, rvalue_type);
      +  iterator rinsert(iterator);
      +  void rinsert(iterator, size_type, param_value_type);
      +  template<typename InputIterator> 
      +    void rinsert(iterator, InputIterator, InputIterator);
      +  iterator erase(iterator);
      +  iterator erase(iterator, iterator);
      +  iterator rerase(iterator);
      +  iterator rerase(iterator, iterator);
      +  void clear();
      +
      +  // private member functions
      +  void adjust_min_capacity();
      +  size_type ensure_reserve(size_type, size_type) const;
      +  void check_low_capacity(size_type = 1);
      +  void check_high_capacity();
      +  void reduce_capacity(const true_type &);
      +  void reduce_capacity(const false_type &);
      +  template<typename IntegralType> 
      +    void insert(const iterator &, IntegralType, IntegralType, 
      +                const true_type &);
      +  template<typename Iterator> 
      +    void insert(const iterator &, Iterator, Iterator, const false_type &);
      +  template<typename IntegralType> 
      +    void rinsert(const iterator &, IntegralType, IntegralType, 
      +                 const true_type &);
      +  template<typename Iterator> 
      +    void rinsert(const iterator &, Iterator, Iterator, const false_type &);
      +
      +  // private static functions
      +  static size_type init_capacity(const capacity_type &, size_type);
      +  template<typename IntegralType> 
      +    static size_type 
      +    init_capacity(const capacity_type &, IntegralType, IntegralType, 
      +                  const true_type &);
      +  template<typename Iterator> 
      +    static size_type 
      +    init_capacity(const capacity_type &, Iterator, Iterator, 
      +                  const false_type &);
      +  template<typename InputIterator> 
      +    static size_type 
      +    init_capacity(const capacity_type &, InputIterator, InputIterator, 
      +                  const std::input_iterator_tag &);
      +  template<typename ForwardIterator> 
      +    static size_type 
      +    init_capacity(const capacity_type &, ForwardIterator, ForwardIterator, 
      +                  const std::forward_iterator_tag &);
      +};
      +
      +

      Description

      +
      +

      +circular_buffer_space_optimized + public + types

      +
      1. +

        +typedef cb_details::capacity_control< size_type > capacity_type;

        +

        Capacity controller of the space optimized circular buffer.

        +

        See Also:

        +

        capacity_control in details.hpp.

        +

        + class capacity_control
        + {
        + size_type m_capacity; // Available capacity.
        + size_type m_min_capacity; // Minimum capacity.
        + public:
        + capacity_control(size_type capacity, size_type min_capacity = 0)
        + : m_capacity(capacity), m_min_capacity(min_capacity)
        + {};
        + size_type capacity() const { return m_capacity; }
        + size_type min_capacity() const { return m_min_capacity; }
        + operator size_type() const { return m_capacity; }
        + };
        +

        +

        Always capacity >= min_capacity.

        +

        The capacity() represents the capacity of the circular_buffer_space_optimized and the min_capacity() determines the minimal allocated size of its internal buffer.

        +

        The converting constructor of the capacity_control allows implicit conversion from size_type-like types which ensures compatibility of creating an instance of the circular_buffer_space_optimized with other STL containers.

        +

        On the other hand the operator size_type() provides implicit conversion to the size_type which allows to treat the capacity of the circular_buffer_space_optimized the same way as in the circular_buffer.

        +
      +
      +
      +

      +circular_buffer_space_optimized + public + construct/copy/destruct

      +
        +
      1. +
        explicit circular_buffer_space_optimized(const allocator_type & alloc = allocator_type()) noexcept;
        Create an empty space optimized circular buffer with zero capacity.

        + + +

        +

        Complexity. Constant.

        +

        +

        +
        + + + + + +
        [Warning]Warning

        Since Boost version 1.36 the behaviour of this constructor has changed. Now it creates a space optimized circular buffer with zero capacity.

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        alloc

        The allocator.

        Postconditions:

        capacity().capacity() == 0 && capacity().min_capacity() == 0 && size() == 0

        Throws:

        Nothing.
        +
      2. +
      3. +
        explicit circular_buffer_space_optimized(capacity_type capacity_ctrl, 
        +                                         const allocator_type & alloc = allocator_type());
        Create an empty space optimized circular buffer with the specified capacity.

        + + +

        +

        Complexity. Constant.

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        alloc

        The allocator.

        capacity_ctrl

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        Postconditions:

        capacity() == capacity_ctrl && size() == 0
        +
        + The amount of allocated memory in the internal buffer is capacity_ctrl.min_capacity().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        +
      4. +
      5. +
        circular_buffer_space_optimized(capacity_type capacity_ctrl, 
        +                                param_value_type item, 
        +                                const allocator_type & alloc = allocator_type());
        Create a full space optimized circular buffer with the specified capacity filled with capacity_ctrl.capacity() copies of item.

        + + +

        +

        Complexity. Linear (in the capacity_ctrl.capacity()).

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + +

        alloc

        The allocator.

        capacity_ctrl

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        item

        The element the created circular_buffer_space_optimized will be filled with.

        Postconditions:

        capacity() == capacity_ctrl && full() && (*this)[0] == item && (*this)[1] == item && ... && (*this) [capacity_ctrl.capacity() - 1] == item
        +
        + The amount of allocated memory in the internal buffer is capacity_ctrl.capacity().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). T::T(const T&) throws.
        +
      6. +
      7. +
        circular_buffer_space_optimized(capacity_type capacity_ctrl, size_type n, 
        +                                param_value_type item, 
        +                                const allocator_type & alloc = allocator_type());
        Create a space optimized circular buffer with the specified capacity filled with n copies of item.

        + + + +

        +

        Complexity. Linear (in the n).

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + + + + + +

        alloc

        The allocator.

        capacity_ctrl

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        item

        The element the created circular_buffer_space_optimized will be filled with.

        n

        The number of elements the created circular_buffer_space_optimized will be filled with.

        Requires:

        capacity_ctrl.capacity() >= n

        Postconditions:

        capacity() == capacity_ctrl && size() == n && (*this)[0] == item && (*this)[1] == item && ... && (*this)[n - 1] == item
        +
        + The amount of allocated memory in the internal buffer is max[n, capacity_ctrl.min_capacity()].

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      8. +
      9. +
        circular_buffer_space_optimized(const circular_buffer_space_optimized< T, Alloc > & cb);
        The copy constructor.

        Creates a copy of the specified circular_buffer_space_optimized. + + +

        +

        Complexity. Linear (in the size of cb).

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        cb

        The circular_buffer_space_optimized to be copied.

        Postconditions:

        *this == cb
        +
        + The amount of allocated memory in the internal buffer is cb.size().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      10. +
      11. +
        circular_buffer_space_optimized(circular_buffer_space_optimized< T, Alloc > && cb) noexcept;
        The move constructor.

        Move constructs a circular_buffer_space_optimized from cb, leaving cb empty. + + + +

        +

        Constant. 

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        cb

        circular_buffer to 'steal' value from.

        Requires:

        C++ compiler with rvalue references support.

        Postconditions:

        cb.empty()

        Throws:

        Nothing.
        +
      12. +
      13. +
        template<typename InputIterator> 
        +  circular_buffer_space_optimized(InputIterator first, InputIterator last, 
        +                                  const allocator_type & alloc = allocator_type());
        Create a full space optimized circular buffer filled with a copy of the range.

        + + + +

        +

        Complexity. Linear (in the std::distance(first, last)).

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + +

        alloc

        The allocator.

        first

        The beginning of the range to be copied.

        last

        The end of the range to be copied.

        Requires:

        Valid range [first, last).
        + first and last have to meet the requirements of InputIterator.

        Postconditions:

        capacity().capacity() == std::distance(first, last) && capacity().min_capacity() == 0 && full() && (*this)[0]== *first && (*this)[1] == *(first + 1) && ... && (*this)[std::distance(first, last) - 1] == *(last - 1)
        +
        + The amount of allocated memory in the internal buffer is std::distance(first, last).

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept and InputIterator is a move iterator.
        +
      14. +
      15. +
        template<typename InputIterator> 
        +  circular_buffer_space_optimized(capacity_type capacity_ctrl, 
        +                                  InputIterator first, InputIterator last, 
        +                                  const allocator_type & alloc = allocator_type());
        Create a space optimized circular buffer with the specified capacity (and the minimal guaranteed amount of allocated memory) filled with a copy of the range.

        + + + +

        +

        Complexity. Linear (in std::distance(first, last); in min[capacity_ctrl.capacity(), std::distance(first, last)] if the InputIterator is a RandomAccessIterator).

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + + + + + +

        alloc

        The allocator.

        capacity_ctrl

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        first

        The beginning of the range to be copied.

        last

        The end of the range to be copied.

        Requires:

        Valid range [first, last).
        + first and last have to meet the requirements of InputIterator.

        Postconditions:

        capacity() == capacity_ctrl && size() <= std::distance(first, last) && (*this)[0]== (last - capacity_ctrl.capacity()) && (*this)[1] == *(last - capacity_ctrl.capacity() + 1) && ... && (*this)[capacity_ctrl.capacity() - 1] == *(last - 1)
        +
        + If the number of items to be copied from the range [first, last) is greater than the specified capacity_ctrl.capacity() then only elements from the range [last - capacity_ctrl.capacity(), last) will be copied.
        +
        + The amount of allocated memory in the internal buffer is max[capacity_ctrl.min_capacity(), min[capacity_ctrl.capacity(), std::distance(first, last)]].

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      16. +
      17. +
        circular_buffer_space_optimized< T, Alloc > & 
        +operator=(const circular_buffer_space_optimized< T, Alloc > & cb);
        The assign operator.

        Makes this circular_buffer_space_optimized to become a copy of the specified circular_buffer_space_optimized. + + +

        +

        Exception Safety. Strong.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to this circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of cb).

        +

        +

        +

        See Also:

        +

        assign(size_type, const_reference), assign(capacity_type, size_type, const_reference), assign(InputIterator, InputIterator), assign(capacity_type, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        cb

        The circular_buffer_space_optimized to be copied.

        Postconditions:

        *this == cb
        +
        + The amount of allocated memory in the internal buffer is cb.size().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). T::T(const T&) throws.
        +
      18. +
      19. +
        circular_buffer_space_optimized< T, Alloc > & 
        +operator=(circular_buffer_space_optimized< T, Alloc > && cb) noexcept;
        Move assigns content of cb to *this, leaving cb empty.

        + + + +

        +

        Complexity. Constant.

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        cb

        circular_buffer to 'steal' value from.

        Requires:

        C++ compiler with rvalue references support.

        Postconditions:

        cb.empty()

        Throws:

        Nothing.
        +
      20. +
      +
      +
      +

      +circular_buffer_space_optimized public member functions

      +
        +
      1. +
        bool full() const noexcept;
        Is the circular_buffer_space_optimized full?

        + +

        +

        Exception Safety. No-throw.

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +

        Complexity. Constant (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        empty()

        +

        +

        +
        ++++ + + + + + + + + + + +

        Returns:

        true if the number of elements stored in the circular_buffer_space_optimized equals the capacity of the circular_buffer_space_optimized; false otherwise.

        Throws:

        Nothing.
        +
      2. +
      3. +
        size_type reserve() const noexcept;
        Get the maximum number of elements which can be inserted into the circular_buffer_space_optimized without overwriting any of already stored elements.

        + +

        +

        Exception Safety. No-throw.

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +

        Complexity. Constant (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        capacity(), size(), max_size()

        +

        +

        +
        ++++ + + + + + + + + + + +

        Returns:

        capacity().capacity() - size()

        Throws:

        Nothing.
        +
      4. +
      5. +
        const capacity_type & capacity() const noexcept;
        Get the capacity of the circular_buffer_space_optimized.

        + +

        +

        Exception Safety. No-throw.

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +

        Complexity. Constant (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        reserve(), size(), max_size(), set_capacity(const capacity_type&)

        +

        +

        +
        ++++ + + + + + + + + + + +

        Returns:

        The capacity controller representing the maximum number of elements which can be stored in the circular_buffer_space_optimized and the minimal allocated size of the internal buffer.

        Throws:

        Nothing.
        +
      6. +
      7. +
        void set_capacity(const capacity_type & capacity_ctrl);
        Change the capacity (and the minimal guaranteed amount of allocated memory) of the circular_buffer_space_optimized.

        + + +

        +

        Exception Safety. Strong.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in min[size(), capacity_ctrl.capacity()]).

        +

        +

        +
        + + + + + +
        [Note]Note

        To explicitly clear the extra allocated memory use the shrink-to-fit technique:
        +
        + boost::circular_buffer_space_optimized<int> cb(1000);
        + ...
        + boost::circular_buffer_space_optimized<int>(cb).swap(cb);

        +
        + For more information about the shrink-to-fit technique in STL see http://www.gotw.ca/gotw/054.htm.

        +

        +

        +

        See Also:

        +

        rset_capacity(const capacity_type&), resize(size_type, const_reference)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        capacity_ctrl

        The new capacity controller.

        Postconditions:

        capacity() == capacity_ctrl && size() <= capacity_ctrl.capacity()
        +
        + If the current number of elements stored in the circular_buffer_space_optimized is greater than the desired new capacity then number of [size() - capacity_ctrl.capacity()] last elements will be removed and the new size will be equal to capacity_ctrl.capacity().
        +
        + If the current number of elements stored in the circular_buffer_space_optimized is lower than the new capacity then the amount of allocated memory in the internal buffer may be accommodated as necessary but it will never drop below capacity_ctrl.min_capacity().

        Throws:

        An allocation error if memory is exhausted, (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      8. +
      9. +
        void resize(size_type new_size, param_value_type item = value_type());
        Change the size of the circular_buffer_space_optimized.

        + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the new size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        rresize(size_type, const_reference), set_capacity(const capacity_type&)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        item

        The element the circular_buffer_space_optimized will be filled with in order to gain the requested size. (See the Effect.)

        new_size

        The new size.

        Postconditions:

        size() == new_size && capacity().capacity() >= new_size
        +
        + If the new size is greater than the current size, copies of item will be inserted at the back of the of the circular_buffer_space_optimized in order to achieve the desired size. In the case the resulting size exceeds the current capacity the capacity will be set to new_size.
        +
        + If the current number of elements stored in the circular_buffer_space_optimized is greater than the desired new size then number of [size() - new_size] last elements will be removed. (The capacity will remain unchanged.)
        +
        + The amount of allocated memory in the internal buffer may be accommodated as necessary.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      10. +
      11. +
        void rset_capacity(const capacity_type & capacity_ctrl);
        Change the capacity (and the minimal guaranteed amount of allocated memory) of the circular_buffer_space_optimized.

        + + +

        +

        Exception Safety. Strong.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in min[size(), capacity_ctrl.capacity()]).

        +

        +

        +

        See Also:

        +

        set_capacity(const capacity_type&), rresize(size_type, const_reference)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        capacity_ctrl

        The new capacity controller.

        Postconditions:

        capacity() == capacity_ctrl && size() <= capacity_ctrl
        +
        + If the current number of elements stored in the circular_buffer_space_optimized is greater than the desired new capacity then number of [size() - capacity_ctrl.capacity()] first elements will be removed and the new size will be equal to capacity_ctrl.capacity().
        +
        + If the current number of elements stored in the circular_buffer_space_optimized is lower than the new capacity then the amount of allocated memory in the internal buffer may be accommodated as necessary but it will never drop below capacity_ctrl.min_capacity().

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      12. +
      13. +
        void rresize(size_type new_size, param_value_type item = value_type());
        Change the size of the circular_buffer_space_optimized.

        + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the new size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        resize(size_type, const_reference), rset_capacity(const capacity_type&)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        item

        The element the circular_buffer_space_optimized will be filled with in order to gain the requested size. (See the Effect.)

        new_size

        The new size.

        Postconditions:

        size() == new_size && capacity().capacity() >= new_size
        +
        + If the new size is greater than the current size, copies of item will be inserted at the front of the of the circular_buffer_space_optimized in order to achieve the desired size. In the case the resulting size exceeds the current capacity the capacity will be set to new_size.
        +
        + If the current number of elements stored in the circular_buffer_space_optimized is greater than the desired new size then number of [size() - new_size] first elements will be removed. (The capacity will remain unchanged.)
        +
        + The amount of allocated memory in the internal buffer may be accommodated as necessary.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      14. +
      15. +
        void assign(size_type n, param_value_type item);
        Assign n items into the space optimized circular buffer.

        The content of the circular_buffer_space_optimized will be removed and replaced with n copies of the item. + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the n).

        +

        +

        +

        See Also:

        +

        operator=, assign(capacity_type, size_type, const_reference), assign(InputIterator, InputIterator), assign(capacity_type, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        item

        The element the circular_buffer_space_optimized will be filled with.

        n

        The number of elements the circular_buffer_space_optimized will be filled with.

        Postconditions:

        capacity().capacity() == n && capacity().min_capacity() == 0 && size() == n && (*this)[0] == item && (*this)[1] == item && ... && (*this) [n - 1] == item
        +
        + The amount of allocated memory in the internal buffer is n.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      16. +
      17. +
        void assign(capacity_type capacity_ctrl, size_type n, param_value_type item);
        Assign n items into the space optimized circular buffer specifying the capacity.

        The capacity of the circular_buffer_space_optimized will be set to the specified value and the content of the circular_buffer_space_optimized will be removed and replaced with n copies of the item. + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the n).

        +

        +

        +

        See Also:

        +

        operator=, assign(size_type, const_reference), assign(InputIterator, InputIterator), assign(capacity_type, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + +

        capacity_ctrl

        The new capacity controller.

        item

        The element the circular_buffer_space_optimized will be filled with.

        n

        The number of elements the circular_buffer_space_optimized will be filled with.

        Requires:

        capacity_ctrl.capacity() >= n

        Postconditions:

        capacity() == capacity_ctrl && size() == n && (*this)[0] == item && (*this)[1] == item && ... && (*this) [n - 1] == item
        +
        + The amount of allocated memory will be max[n, capacity_ctrl.min_capacity()].

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      18. +
      19. +
        template<typename InputIterator> 
        +  void assign(InputIterator first, InputIterator last);
        Assign a copy of the range into the space optimized circular buffer.

        The content of the circular_buffer_space_optimized will be removed and replaced with copies of elements from the specified range. + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the std::distance(first, last)).

        +

        +

        +

        See Also:

        +

        operator=, assign(size_type, const_reference), assign(capacity_type, size_type, const_reference), assign(capacity_type, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        first

        The beginning of the range to be copied.

        last

        The end of the range to be copied.

        Requires:

        Valid range [first, last).
        + first and last have to meet the requirements of InputIterator.

        Postconditions:

        capacity().capacity() == std::distance(first, last) && capacity().min_capacity() == 0 && size() == std::distance(first, last) && (*this)[0]== *first && (*this)[1] == *(first + 1) && ... && (*this)[std::distance(first, last) - 1] == *(last - 1)
        +
        + The amount of allocated memory in the internal buffer is std::distance(first, last).

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept and InputIterator is a move iterator.
        +
      20. +
      21. +
        template<typename InputIterator> 
        +  void assign(capacity_type capacity_ctrl, InputIterator first, 
        +              InputIterator last);
        Assign a copy of the range into the space optimized circular buffer specifying the capacity.

        The capacity of the circular_buffer_space_optimized will be set to the specified value and the content of the circular_buffer_space_optimized will be removed and replaced with copies of elements from the specified range. + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in std::distance(first, last); in min[capacity_ctrl.capacity(), std::distance(first, last)] if the InputIterator is a RandomAccessIterator).

        +

        +

        +

        See Also:

        +

        operator=, assign(size_type, const_reference), assign(capacity_type, size_type, const_reference), assign(InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + +

        capacity_ctrl

        The new capacity controller.

        first

        The beginning of the range to be copied.

        last

        The end of the range to be copied.

        Requires:

        Valid range [first, last).
        + first and last have to meet the requirements of InputIterator.

        Postconditions:

        capacity() == capacity_ctrl && size() <= std::distance(first, last) && (*this)[0]== *(last - capacity) && (*this)[1] == *(last - capacity + 1) && ... && (*this)[capacity - 1] == *(last - 1)
        +
        + If the number of items to be copied from the range [first, last) is greater than the specified capacity then only elements from the range [last - capacity, last) will be copied.
        +
        + The amount of allocated memory in the internal buffer is max[std::distance(first, last), capacity_ctrl.min_capacity()].

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept and InputIterator is a move iterator.
        +
      22. +
      23. +
        void swap(circular_buffer_space_optimized< T, Alloc > & cb) noexcept;
        Swap the contents of two space-optimized circular-buffers.

        + + +

        +

        Exception Safety. No-throw.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators of both circular_buffer_space_optimized containers. (On the other hand the iterators still point to the same elements but within another container. If you want to rely on this feature you have to turn the __debug_support off, otherwise an assertion will report an error if such invalidated iterator is used.)

        +

        +

        +

        Complexity. Constant (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        swap(circular_buffer<T, Alloc>&, circular_buffer<T, Alloc>&), swap(circular_buffer_space_optimized<T, Alloc>&, circular_buffer_space_optimized<T, Alloc>&)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        cb

        The circular_buffer_space_optimized whose content will be swapped.

        Postconditions:

        this contains elements of cb and vice versa; the capacity and the amount of allocated memory in the internal buffer of this equal to the capacity and the amount of allocated memory of cb and vice versa.

        Throws:

        Nothing.
        +
      24. +
      25. +
        void push_back(param_value_type item);
        Insert a new element at the end of the space optimized circular buffer.

        + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        push_front(const_reference), pop_back(), pop_front()

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        item

        The element to be inserted.

        Postconditions:

        if capacity().capacity() > 0 then back() == item
        + If the circular_buffer_space_optimized is full, the first element will be removed. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      26. +
      27. +
        void push_back(rvalue_type item);
        Insert a new element at the end of the space optimized circular buffer.

        + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        push_front(const_reference), pop_back(), pop_front()

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        item

        The element to be inserted.

        Postconditions:

        if capacity().capacity() > 0 then back() == item
        + If the circular_buffer_space_optimized is full, the first element will be removed. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        +
      28. +
      29. +
        void push_back();
        Insert a new element at the end of the space optimized circular buffer.

        + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        push_front(const_reference), pop_back(), pop_front()

        +

        +

        +
        ++++ + + + + + + + + + + +

        Postconditions:

        if capacity().capacity() > 0 then back() == item
        + If the circular_buffer_space_optimized is full, the first element will be removed. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T() throws. Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      30. +
      31. +
        void push_front(param_value_type item);
        Insert a new element at the beginning of the space optimized circular buffer.

        + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        push_back(const_reference), pop_back(), pop_front()

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        item

        The element to be inserted.

        Postconditions:

        if capacity().capacity() > 0 then front() == item
        + If the circular_buffer_space_optimized is full, the last element will be removed. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws.
        +
      32. +
      33. +
        void push_front(rvalue_type item);
        Insert a new element at the beginning of the space optimized circular buffer.

        + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        push_back(const_reference), pop_back(), pop_front()

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        item

        The element to be inserted.

        Postconditions:

        if capacity().capacity() > 0 then front() == item
        + If the circular_buffer_space_optimized is full, the last element will be removed. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      34. +
      35. +
        void push_front();
        Insert a new element at the beginning of the space optimized circular buffer.

        + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        push_back(const_reference), pop_back(), pop_front()

        +

        +

        +
        ++++ + + + + + + + + + + +

        Postconditions:

        if capacity().capacity() > 0 then front() == item
        + If the circular_buffer_space_optimized is full, the last element will be removed. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T() throws. Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      36. +
      37. +
        void pop_back();
        Remove the last element from the space optimized circular buffer.

        + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        pop_front(), push_back(const_reference), push_front(const_reference)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Requires:

        !empty()

        Postconditions:

        The last element is removed from the circular_buffer_space_optimized.
        +
        + The amount of allocated memory in the internal buffer may be predictively decreased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        +
      38. +
      39. +
        void pop_front();
        Remove the first element from the space optimized circular buffer.

        + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        pop_back(), push_back(const_reference), push_front(const_reference)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Requires:

        !empty()

        Postconditions:

        The first element is removed from the circular_buffer_space_optimized.
        +
        + The amount of allocated memory in the internal buffer may be predictively decreased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        +
      40. +
      41. +
        iterator insert(iterator pos, param_value_type item);
        Insert an element at the specified position.

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        item

        The element to be inserted.

        pos

        An iterator specifying the position where the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted at the position pos.
        + If the circular_buffer_space_optimized is full, the first element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to begin(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or begin() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        +
      42. +
      43. +
        iterator insert(iterator pos, rvalue_type item);
        Insert an element at the specified position.

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        item

        The element to be inserted.

        pos

        An iterator specifying the position where the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted at the position pos.
        + If the circular_buffer_space_optimized is full, the first element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to begin(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or begin() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      44. +
      45. +
        iterator insert(iterator pos);
        Insert an element at the specified position.

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        pos

        An iterator specifying the position where the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted at the position pos.
        + If the circular_buffer_space_optimized is full, the first element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to begin(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or begin() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T() throws. Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      46. +
      47. +
        void insert(iterator pos, size_type n, param_value_type item);
        Insert n copies of the item at the specified position.

        + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in min[capacity().capacity(), size() + n]).

        +

        +

        +

        Example. Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.
        +
        + |1|2|3|4| | |
        + p ___^
        +
        +After inserting 5 elements at the position p:
        +
        + insert(p, (size_t)5, 0);
        +
        +actually only 4 elements get inserted and elements 1 and 2 are overwritten. This is due to the fact the insert operation preserves the capacity. After insertion the internal buffer looks like this:
        +
        +|0|0|0|0|3|4|
        +
        +For comparison if the capacity would not be preserved the internal buffer would then result in |1|2|0|0|0|0|0|3|4|.

        +

        +

        +

        See Also:

        +

        insert(iterator, value_type), insert(iterator, InputIterator, InputIterator), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + +

        item

        The element whose copies will be inserted.

        n

        The number of items the to be inserted.

        pos

        An iterator specifying the position where the items will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The number of min[n, (pos - begin()) + reserve()] elements will be inserted at the position pos.
        +The number of min[pos - begin(), max[0, n - reserve()]] elements will be overwritten at the beginning of the circular_buffer_space_optimized.
        +(See Example for the explanation.)
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        +
      48. +
      49. +
        template<typename InputIterator> 
        +  void insert(iterator pos, InputIterator first, InputIterator last);
        Insert the range [first, last) at the specified position.

        + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in [size() + std::distance(first, last)]; in min[capacity().capacity(), size() + std::distance(first, last)] if the InputIterator is a RandomAccessIterator).

        +

        +

        +

        Example. Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.
        +
        + |1|2|3|4| | |
        + p ___^
        +
        +After inserting a range of elements at the position p:
        +
        + int array[] = { 5, 6, 7, 8, 9 };
        +insert(p, array, array + 5);
        +
        + actually only elements 6, 7, 8 and 9 from the specified range get inserted and elements 1 and 2 are overwritten. This is due to the fact the insert operation preserves the capacity. After insertion the internal buffer looks like this:
        +
        +|6|7|8|9|3|4|
        +
        +For comparison if the capacity would not be preserved the internal buffer would then result in |1|2|5|6|7|8|9|3|4|.

        +

        +

        +

        See Also:

        +

        insert(iterator, value_type), insert(iterator, size_type, value_type), rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + +

        first

        The beginning of the range to be inserted.

        last

        The end of the range to be inserted.

        pos

        An iterator specifying the position where the range will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.
        +Valid range [first, last) where first and last meet the requirements of an InputIterator.

        Postconditions:

        Elements from the range [first + max[0, distance(first, last) - (pos - begin()) - reserve()], last) will be inserted at the position pos.
        +The number of min[pos - begin(), max[0, distance(first, last) - reserve()]] elements will be overwritten at the beginning of the circular_buffer_space_optimized.
        +(See Example for the explanation.)
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      50. +
      51. +
        iterator rinsert(iterator pos, param_value_type item);
        Insert an element before the specified position.

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        item

        The element to be inserted.

        pos

        An iterator specifying the position before which the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted before the position pos.
        + If the circular_buffer_space_optimized is full, the last element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to end(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or end() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        +
      52. +
      53. +
        iterator rinsert(iterator pos, rvalue_type item);
        Insert an element before the specified position.

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        item

        The element to be inserted.

        pos

        An iterator specifying the position before which the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted before the position pos.
        + If the circular_buffer_space_optimized is full, the last element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to end(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or end() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      54. +
      55. +
        iterator rinsert(iterator pos);
        Insert an element before the specified position.

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        rinsert(iterator, size_type, value_type), rinsert(iterator, InputIterator, InputIterator), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        pos

        An iterator specifying the position before which the item will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The item will be inserted before the position pos.
        + If the circular_buffer_space_optimized is full, the last element will be overwritten. If the circular_buffer_space_optimized is full and the pos points to end(), then the item will not be inserted. If the capacity is 0, nothing will be inserted.
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Returns:

        Iterator to the inserted element or end() if the item is not inserted. (See the Effect.)

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T() throws. Whatever T::T(const T&) throws or nothing if T::T(T&&) is noexcept.
        +
      56. +
      57. +
        void rinsert(iterator pos, size_type n, param_value_type item);
        Insert n copies of the item before the specified position.

        + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in min[capacity().capacity(), size() + n]).

        +

        +

        +

        Example. Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.
        +
        + |1|2|3|4| | |
        + p ___^
        +
        +After inserting 5 elements before the position p:
        +
        + rinsert(p, (size_t)5, 0);
        +
        +actually only 4 elements get inserted and elements 3 and 4 are overwritten. This is due to the fact the rinsert operation preserves the capacity. After insertion the internal buffer looks like this:
        +
        +|1|2|0|0|0|0|
        +
        +For comparison if the capacity would not be preserved the internal buffer would then result in |1|2|0|0|0|0|0|3|4|.

        +

        +

        +

        See Also:

        +

        rinsert(iterator, value_type), rinsert(iterator, InputIterator, InputIterator), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + +

        item

        The element whose copies will be inserted.

        n

        The number of items the to be inserted.

        pos

        An iterator specifying the position where the items will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.

        Postconditions:

        The number of min[n, (end() - pos) + reserve()] elements will be inserted before the position pos.
        +The number of min[end() - pos, max[0, n - reserve()]] elements will be overwritten at the end of the circular_buffer_space_optimized.
        +(See Example for the explanation.)
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        +
      58. +
      59. +
        template<typename InputIterator> 
        +  void rinsert(iterator pos, InputIterator first, InputIterator last);
        Insert the range [first, last) before the specified position.

        + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in [size() + std::distance(first, last)]; in min[capacity().capacity(), size() + std::distance(first, last)] if the InputIterator is a RandomAccessIterator).

        +

        +

        +

        Example. Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.
        +
        + |1|2|3|4| | |
        + p ___^
        +
        +After inserting a range of elements before the position p:
        +
        + int array[] = { 5, 6, 7, 8, 9 };
        +insert(p, array, array + 5);
        +
        + actually only elements 5, 6, 7 and 8 from the specified range get inserted and elements 3 and 4 are overwritten. This is due to the fact the rinsert operation preserves the capacity. After insertion the internal buffer looks like this:
        +
        +|1|2|5|6|7|8|
        +
        +For comparison if the capacity would not be preserved the internal buffer would then result in |1|2|5|6|7|8|9|3|4|.

        +

        +

        +

        See Also:

        +

        rinsert(iterator, value_type), rinsert(iterator, size_type, value_type), insert(iterator, value_type), insert(iterator, size_type, value_type), insert(iterator, InputIterator, InputIterator)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + + + + + +

        first

        The beginning of the range to be inserted.

        last

        The end of the range to be inserted.

        pos

        An iterator specifying the position where the range will be inserted.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.
        + Valid range [first, last) where first and last meet the requirements of an InputIterator.

        Postconditions:

        Elements from the range [first, last - max[0, distance(first, last) - (end() - pos) - reserve()]) will be inserted before the position pos.
        +The number of min[end() - pos, max[0, distance(first, last) - reserve()]] elements will be overwritten at the end of the circular_buffer.
        +(See Example for the explanation.)
        +
        + The amount of allocated memory in the internal buffer may be predictively increased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::T(const T&) throws. Whatever T::operator = (const T&) throws.
        +
      60. +
      61. +
        iterator erase(iterator pos);
        Remove an element at the specified position.

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        erase(iterator, iterator), rerase(iterator), rerase(iterator, iterator), clear()

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        pos

        An iterator pointing at the element to be removed.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized (but not an end()).

        Postconditions:

        The element at the position pos is removed.
        +
        + The amount of allocated memory in the internal buffer may be predictively decreased.

        Returns:

        Iterator to the first element remaining beyond the removed element or end() if no such element exists.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::operator = (const T&) throws or nothing if T::operator = (T&&) is noexcept.
        +
      62. +
      63. +
        iterator erase(iterator first, iterator last);
        Erase the range [first, last).

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        erase(iterator), rerase(iterator), rerase(iterator, iterator), clear()

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        first

        The beginning of the range to be removed.

        last

        The end of the range to be removed.

        Requires:

        Valid range [first, last).

        Postconditions:

        The elements from the range [first, last) are removed. (If first == last nothing is removed.)
        +
        + The amount of allocated memory in the internal buffer may be predictively decreased.

        Returns:

        Iterator to the first element remaining beyond the removed elements or end() if no such element exists.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::operator = (const T&) throws or nothing if T::operator = (T&&) is noexcept.
        +
      64. +
      65. +
        iterator rerase(iterator pos);
        Remove an element at the specified position.

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +
        + + + + + +
        [Note]Note

        Basically there is no difference between erase(iterator) and this method. It is implemented only for consistency with the base circular_buffer.

        +

        +

        +

        See Also:

        +

        erase(iterator), erase(iterator, iterator), rerase(iterator, iterator), clear()

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + +

        pos

        An iterator pointing at the element to be removed.

        Requires:

        pos is a valid iterator pointing to the circular_buffer_space_optimized (but not an end()).
        +
        + The amount of allocated memory in the internal buffer may be predictively decreased.

        Postconditions:

        The element at the position pos is removed.

        Returns:

        Iterator to the first element remaining in front of the removed element or begin() if no such element exists.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::operator = (const T&) throws or nothing if T::operator = (T&&) is noexcept.
        +
      66. +
      67. +
        iterator rerase(iterator first, iterator last);
        Erase the range [first, last).

        + + + + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +
        + + + + + +
        [Note]Note

        Basically there is no difference between erase(iterator, iterator) and this method. It is implemented only for consistency with the base <circular_buffer.

        +

        +

        +

        See Also:

        +

        erase(iterator), erase(iterator, iterator), rerase(iterator), clear()

        +

        +

        +
        ++++ + + + + + + + + + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        first

        The beginning of the range to be removed.

        last

        The end of the range to be removed.

        Requires:

        Valid range [first, last).

        Postconditions:

        The elements from the range [first, last) are removed. (If first == last nothing is removed.)
        +
        + The amount of allocated memory in the internal buffer may be predictively decreased.

        Returns:

        Iterator to the first element remaining in front of the removed elements or begin() if no such element exists.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used). Whatever T::operator = (const T&) throws or nothing if T::operator = (T&&) is noexcept.
        +
      68. +
      69. +
        void clear();
        Remove all stored elements from the space optimized circular buffer.

        + +

        +

        Exception Safety. Basic.

        +

        +

        +

        Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer_space_optimized (except iterators equal to end()).

        +

        +

        +

        Complexity. Linear (in the size of the circular_buffer_space_optimized).

        +

        +

        +

        See Also:

        +

        ~circular_buffer_space_optimized(), erase(iterator), erase(iterator, iterator), rerase(iterator), rerase(iterator, iterator)

        +

        +

        +
        ++++ + + + + + + + + + + +

        Postconditions:

        size() == 0
        +
        + The amount of allocated memory in the internal buffer may be predictively decreased.

        Throws:

        An allocation error if memory is exhausted (std::bad_alloc if the standard allocator is used).
        +
      70. +
      +
      +
      +

      +circular_buffer_space_optimized private member functions

      +
        +
      1. +
        void adjust_min_capacity();
        Adjust the amount of allocated memory.
      2. +
      3. +
        size_type ensure_reserve(size_type new_capacity, size_type buffer_size) const;
        Ensure the reserve for possible growth up.
      4. +
      5. +
        void check_low_capacity(size_type n = 1);
        Check for low capacity.
      6. +
      7. +
        void check_high_capacity();
        Check for high capacity.
      8. +
      9. +
        void reduce_capacity(const true_type &);
        Specialized method for reducing the capacity.
      10. +
      11. +
        void reduce_capacity(const false_type &);
        Specialized method for reducing the capacity.
      12. +
      13. +
        template<typename IntegralType> 
        +  void insert(const iterator & pos, IntegralType n, IntegralType item, 
        +              const true_type &);
        Specialized insert method.
      14. +
      15. +
        template<typename Iterator> 
        +  void insert(const iterator & pos, Iterator first, Iterator last, 
        +              const false_type &);
        Specialized insert method.
      16. +
      17. +
        template<typename IntegralType> 
        +  void rinsert(const iterator & pos, IntegralType n, IntegralType item, 
        +               const true_type &);
        Specialized rinsert method.
      18. +
      19. +
        template<typename Iterator> 
        +  void rinsert(const iterator & pos, Iterator first, Iterator last, 
        +               const false_type &);
        Specialized rinsert method.
      20. +
      +
      +
      +

      +circular_buffer_space_optimized private static functions

      +
        +
      1. +
        static size_type 
        +init_capacity(const capacity_type & capacity_ctrl, size_type n);
        Determine the initial capacity.
      2. +
      3. +
        template<typename IntegralType> 
        +  static size_type 
        +  init_capacity(const capacity_type & capacity_ctrl, IntegralType n, 
        +                IntegralType, const true_type &);
        Specialized method for determining the initial capacity.
      4. +
      5. +
        template<typename Iterator> 
        +  static size_type 
        +  init_capacity(const capacity_type & capacity_ctrl, Iterator first, 
        +                Iterator last, const false_type &);
        Specialized method for determining the initial capacity.
      6. +
      7. +
        template<typename InputIterator> 
        +  static size_type 
        +  init_capacity(const capacity_type & capacity_ctrl, InputIterator, 
        +                InputIterator, const std::input_iterator_tag &);
        Specialized method for determining the initial capacity.
      8. +
      9. +
        template<typename ForwardIterator> 
        +  static size_type 
        +  init_capacity(const capacity_type & capacity_ctrl, ForwardIterator first, 
        +                ForwardIterator last, const std::forward_iterator_tag &);
        Specialized method for determining the initial capacity.
      10. +
      +
      +
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/circular_buffer.html b/doc/html/boost/circular_buffer.html index 32d2bbd081..a6a0dedbb7 100644 --- a/doc/html/boost/circular_buffer.html +++ b/doc/html/boost/circular_buffer.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -56,201 +56,201 @@ typedef value_type && rvalue_type; // construct/copy/destruct - explicit circular_buffer(const allocator_type & = allocator_type()) noexcept; - explicit circular_buffer(capacity_type, + explicit circular_buffer(const allocator_type & = allocator_type()) noexcept; + explicit circular_buffer(capacity_type, const allocator_type & = allocator_type()); - circular_buffer(size_type, param_value_type, + circular_buffer(size_type, param_value_type, const allocator_type & = allocator_type()); - circular_buffer(capacity_type, size_type, param_value_type, + circular_buffer(capacity_type, size_type, param_value_type, const allocator_type & = allocator_type()); - circular_buffer(const circular_buffer< T, Alloc > &); - circular_buffer(circular_buffer< T, Alloc > &&) noexcept; + circular_buffer(const circular_buffer< T, Alloc > &); + circular_buffer(circular_buffer< T, Alloc > &&) noexcept; template<typename InputIterator> - circular_buffer(InputIterator, InputIterator, + circular_buffer(InputIterator, InputIterator, const allocator_type & = allocator_type()); template<typename InputIterator> - circular_buffer(capacity_type, InputIterator, InputIterator, + circular_buffer(capacity_type, InputIterator, InputIterator, const allocator_type & = allocator_type()); - circular_buffer< T, Alloc > & operator=(const circular_buffer< T, Alloc > &); + circular_buffer< T, Alloc > & operator=(const circular_buffer< T, Alloc > &); circular_buffer< T, Alloc > & - operator=(circular_buffer< T, Alloc > &&) noexcept; - ~circular_buffer(); - - // public member functions - allocator_type get_allocator() const noexcept; - allocator_type & get_allocator() noexcept; - iterator begin() noexcept; - iterator end() noexcept; - const_iterator begin() const noexcept; - const_iterator end() const noexcept; - reverse_iterator rbegin() noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rbegin() const noexcept; - const_reverse_iterator rend() const noexcept; - reference operator[](size_type); - const_reference operator[](size_type) const; - reference at(size_type); - const_reference at(size_type) const; - reference front(); - reference back(); - const_reference front() const; - const_reference back() const; - array_range array_one(); - array_range array_two(); - const_array_range array_one() const; - const_array_range array_two() const; - pointer linearize(); - bool is_linearized() const noexcept; - void rotate(const_iterator); - size_type size() const noexcept; - size_type max_size() const noexcept; - bool empty() const noexcept; - bool full() const noexcept; - size_type reserve() const noexcept; - capacity_type capacity() const noexcept; - void set_capacity(capacity_type); - void resize(size_type, param_value_type = value_type()); - void rset_capacity(capacity_type); - void rresize(size_type, param_value_type = value_type()); - void assign(size_type, param_value_type); - void assign(capacity_type, size_type, param_value_type); - template<typename InputIterator> void assign(InputIterator, InputIterator); + operator=(circular_buffer< T, Alloc > &&) noexcept; + ~circular_buffer(); + + // public member functions + allocator_type get_allocator() const noexcept; + allocator_type & get_allocator() noexcept; + iterator begin() noexcept; + iterator end() noexcept; + const_iterator begin() const noexcept; + const_iterator end() const noexcept; + reverse_iterator rbegin() noexcept; + reverse_iterator rend() noexcept; + const_reverse_iterator rbegin() const noexcept; + const_reverse_iterator rend() const noexcept; + reference operator[](size_type); + const_reference operator[](size_type) const; + reference at(size_type); + const_reference at(size_type) const; + reference front(); + reference back(); + const_reference front() const; + const_reference back() const; + array_range array_one(); + array_range array_two(); + const_array_range array_one() const; + const_array_range array_two() const; + pointer linearize(); + bool is_linearized() const noexcept; + void rotate(const_iterator); + size_type size() const noexcept; + size_type max_size() const noexcept; + bool empty() const noexcept; + bool full() const noexcept; + size_type reserve() const noexcept; + capacity_type capacity() const noexcept; + void set_capacity(capacity_type); + void resize(size_type, param_value_type = value_type()); + void rset_capacity(capacity_type); + void rresize(size_type, param_value_type = value_type()); + void assign(size_type, param_value_type); + void assign(capacity_type, size_type, param_value_type); + template<typename InputIterator> void assign(InputIterator, InputIterator); template<typename InputIterator> - void assign(capacity_type, InputIterator, InputIterator); - void swap(circular_buffer< T, Alloc > &) noexcept; - void push_back(param_value_type); - void push_back(rvalue_type); - void push_back(); - void push_front(param_value_type); - void push_front(rvalue_type); - void push_front(); - void pop_back(); - void pop_front(); - iterator insert(iterator, param_value_type); - iterator insert(iterator, rvalue_type); - iterator insert(iterator); - void insert(iterator, size_type, param_value_type); + void assign(capacity_type, InputIterator, InputIterator); + void swap(circular_buffer< T, Alloc > &) noexcept; + void push_back(param_value_type); + void push_back(rvalue_type); + void push_back(); + void push_front(param_value_type); + void push_front(rvalue_type); + void push_front(); + void pop_back(); + void pop_front(); + iterator insert(iterator, param_value_type); + iterator insert(iterator, rvalue_type); + iterator insert(iterator); + void insert(iterator, size_type, param_value_type); template<typename InputIterator> - void insert(iterator, InputIterator, InputIterator); - iterator rinsert(iterator, param_value_type); - iterator rinsert(iterator, rvalue_type); - iterator rinsert(iterator); - void rinsert(iterator, size_type, param_value_type); + void insert(iterator, InputIterator, InputIterator); + iterator rinsert(iterator, param_value_type); + iterator rinsert(iterator, rvalue_type); + iterator rinsert(iterator); + void rinsert(iterator, size_type, param_value_type); template<typename InputIterator> - void rinsert(iterator, InputIterator, InputIterator); - iterator erase(iterator); - iterator erase(iterator, iterator); - iterator rerase(iterator); - iterator rerase(iterator, iterator); - void erase_begin(size_type); - void erase_end(size_type); - void clear() noexcept; - - // private member functions - template<typename ValT> void push_back_impl(ValT); - template<typename ValT> void push_front_impl(ValT); - template<typename ValT> iterator insert_impl(iterator, ValT); - template<typename ValT> iterator rinsert_impl(iterator, ValT); - void check_position(size_type) const; - template<typename Pointer> void increment(Pointer &) const; - template<typename Pointer> void decrement(Pointer &) const; - template<typename Pointer> Pointer add(Pointer, difference_type) const; - template<typename Pointer> Pointer sub(Pointer, difference_type) const; - pointer map_pointer(pointer) const; - pointer allocate(size_type); - void deallocate(pointer, size_type); - bool is_uninitialized(const_pointer) const noexcept; - void replace(pointer, param_value_type); - void replace(pointer, rvalue_type); - void construct_or_replace(bool, pointer, param_value_type); - void construct_or_replace(bool, pointer, rvalue_type); - void destroy_item(pointer); - void destroy_if_constructed(pointer); - void destroy_content(); - void destroy_content(const true_type &); - void destroy_content(const false_type &); - void destroy() noexcept; - void initialize_buffer(capacity_type); - void initialize_buffer(capacity_type, param_value_type); + void rinsert(iterator, InputIterator, InputIterator); + iterator erase(iterator); + iterator erase(iterator, iterator); + iterator rerase(iterator); + iterator rerase(iterator, iterator); + void erase_begin(size_type); + void erase_end(size_type); + void clear() noexcept; + + // private member functions + template<typename ValT> void push_back_impl(ValT); + template<typename ValT> void push_front_impl(ValT); + template<typename ValT> iterator insert_impl(iterator, ValT); + template<typename ValT> iterator rinsert_impl(iterator, ValT); + void check_position(size_type) const; + template<typename Pointer> void increment(Pointer &) const; + template<typename Pointer> void decrement(Pointer &) const; + template<typename Pointer> Pointer add(Pointer, difference_type) const; + template<typename Pointer> Pointer sub(Pointer, difference_type) const; + pointer map_pointer(pointer) const; + pointer allocate(size_type); + void deallocate(pointer, size_type); + bool is_uninitialized(const_pointer) const noexcept; + void replace(pointer, param_value_type); + void replace(pointer, rvalue_type); + void construct_or_replace(bool, pointer, param_value_type); + void construct_or_replace(bool, pointer, rvalue_type); + void destroy_item(pointer); + void destroy_if_constructed(pointer); + void destroy_content(); + void destroy_content(const true_type &); + void destroy_content(const false_type &); + void destroy() noexcept; + void initialize_buffer(capacity_type); + void initialize_buffer(capacity_type, param_value_type); template<typename IntegralType> - void initialize(IntegralType, IntegralType, const true_type &); + void initialize(IntegralType, IntegralType, const true_type &); template<typename Iterator> - void initialize(Iterator, Iterator, const false_type &); + void initialize(Iterator, Iterator, const false_type &); template<typename InputIterator> - void initialize(InputIterator, InputIterator, + void initialize(InputIterator, InputIterator, const std::input_iterator_tag &); template<typename ForwardIterator> - void initialize(ForwardIterator, ForwardIterator, + void initialize(ForwardIterator, ForwardIterator, const std::forward_iterator_tag &); template<typename IntegralType> - void initialize(capacity_type, IntegralType, IntegralType, + void initialize(capacity_type, IntegralType, IntegralType, const true_type &); template<typename Iterator> - void initialize(capacity_type, Iterator, Iterator, const false_type &); + void initialize(capacity_type, Iterator, Iterator, const false_type &); template<typename InputIterator> - void initialize(capacity_type, InputIterator, InputIterator, + void initialize(capacity_type, InputIterator, InputIterator, const std::input_iterator_tag &); template<typename ForwardIterator> - void initialize(capacity_type, ForwardIterator, ForwardIterator, + void initialize(capacity_type, ForwardIterator, ForwardIterator, const std::forward_iterator_tag &); template<typename ForwardIterator> - void initialize(capacity_type, ForwardIterator, ForwardIterator, + void initialize(capacity_type, ForwardIterator, ForwardIterator, size_type); - void reset(pointer, pointer, capacity_type); - void swap_allocator(circular_buffer< T, Alloc > &, const true_type &); - void swap_allocator(circular_buffer< T, Alloc > &, const false_type &); + void reset(pointer, pointer, capacity_type); + void swap_allocator(circular_buffer< T, Alloc > &, const true_type &); + void swap_allocator(circular_buffer< T, Alloc > &, const false_type &); template<typename IntegralType> - void assign(IntegralType, IntegralType, const true_type &); + void assign(IntegralType, IntegralType, const true_type &); template<typename Iterator> - void assign(Iterator, Iterator, const false_type &); + void assign(Iterator, Iterator, const false_type &); template<typename InputIterator> - void assign(InputIterator, InputIterator, const std::input_iterator_tag &); + void assign(InputIterator, InputIterator, const std::input_iterator_tag &); template<typename ForwardIterator> - void assign(ForwardIterator, ForwardIterator, + void assign(ForwardIterator, ForwardIterator, const std::forward_iterator_tag &); template<typename IntegralType> - void assign(capacity_type, IntegralType, IntegralType, const true_type &); + void assign(capacity_type, IntegralType, IntegralType, const true_type &); template<typename Iterator> - void assign(capacity_type, Iterator, Iterator, const false_type &); + void assign(capacity_type, Iterator, Iterator, const false_type &); template<typename InputIterator> - void assign(capacity_type, InputIterator, InputIterator, + void assign(capacity_type, InputIterator, InputIterator, const std::input_iterator_tag &); template<typename ForwardIterator> - void assign(capacity_type, ForwardIterator, ForwardIterator, + void assign(capacity_type, ForwardIterator, ForwardIterator, const std::forward_iterator_tag &); template<typename Functor> - void assign_n(capacity_type, size_type, const Functor &); - template<typename ValT> iterator insert_item(const iterator &, ValT); + void assign_n(capacity_type, size_type, const Functor &); + template<typename ValT> iterator insert_item(const iterator &, ValT); template<typename IntegralType> - void insert(const iterator &, IntegralType, IntegralType, + void insert(const iterator &, IntegralType, IntegralType, const true_type &); template<typename Iterator> - void insert(const iterator &, Iterator, Iterator, const false_type &); + void insert(const iterator &, Iterator, Iterator, const false_type &); template<typename InputIterator> - void insert(iterator, InputIterator, InputIterator, + void insert(iterator, InputIterator, InputIterator, const std::input_iterator_tag &); template<typename ForwardIterator> - void insert(const iterator &, ForwardIterator, ForwardIterator, + void insert(const iterator &, ForwardIterator, ForwardIterator, const std::forward_iterator_tag &); template<typename Wrapper> - void insert_n(const iterator &, size_type, const Wrapper &); + void insert_n(const iterator &, size_type, const Wrapper &); template<typename IntegralType> - void rinsert(const iterator &, IntegralType, IntegralType, + void rinsert(const iterator &, IntegralType, IntegralType, const true_type &); template<typename Iterator> - void rinsert(const iterator &, Iterator, Iterator, const false_type &); + void rinsert(const iterator &, Iterator, Iterator, const false_type &); template<typename InputIterator> - void rinsert(iterator, InputIterator, InputIterator, + void rinsert(iterator, InputIterator, InputIterator, const std::input_iterator_tag &); template<typename ForwardIterator> - void rinsert(const iterator &, ForwardIterator, ForwardIterator, + void rinsert(const iterator &, ForwardIterator, ForwardIterator, const std::forward_iterator_tag &); template<typename Wrapper> - void rinsert_n(const iterator &, size_type, const Wrapper &); - void erase_begin(size_type, const true_type &); - void erase_begin(size_type, const false_type &); - void erase_end(size_type, const true_type &); - void erase_end(size_type, const false_type &); + void rinsert_n(const iterator &, size_type, const Wrapper &); + void erase_begin(size_type, const true_type &); + void erase_begin(size_type, const false_type &); + void erase_end(size_type, const true_type &); + void erase_end(size_type, const false_type &); };

      Description

      @@ -324,7 +324,7 @@ For detailed documentation of the
      1. -
        explicit circular_buffer(const allocator_type & alloc = allocator_type()) noexcept;
        Create an empty circular_buffer with zero capacity.

        +

        explicit circular_buffer(const allocator_type & alloc = allocator_type()) noexcept;
        Create an empty circular_buffer with zero capacity.

        @@ -384,7 +384,7 @@ For detailed documentation of the
    2. -
      explicit circular_buffer(capacity_type buffer_capacity, 
      +
      explicit circular_buffer(capacity_type buffer_capacity, 
                                const allocator_type & alloc = allocator_type());
      Create an empty circular_buffer with the specified capacity.

      @@ -429,7 +429,7 @@ For detailed documentation of the

  • -
    circular_buffer(size_type n, param_value_type item, 
    +
    circular_buffer(size_type n, param_value_type item, 
                     const allocator_type & alloc = allocator_type());
    Create a full circular_buffer with the specified capacity and filled with n copies of item.

    @@ -478,7 +478,7 @@ For detailed documentation of the

  • -
    circular_buffer(capacity_type buffer_capacity, size_type n, 
    +
    circular_buffer(capacity_type buffer_capacity, size_type n, 
                     param_value_type item, 
                     const allocator_type & alloc = allocator_type());
    Create a circular_buffer with the specified capacity and filled with n copies of item.

    @@ -537,7 +537,7 @@ For detailed documentation of the

  • -
    circular_buffer(const circular_buffer< T, Alloc > & cb);
    The copy constructor.

    Creates a copy of the specified circular_buffer. +

    circular_buffer(const circular_buffer< T, Alloc > & cb);
    The copy constructor.

    Creates a copy of the specified circular_buffer.

    @@ -575,7 +575,7 @@ For detailed documentation of the
  • -
    circular_buffer(circular_buffer< T, Alloc > && cb) noexcept;
    The move constructor.

    Move constructs a circular_buffer from cb, leaving cb empty. +

    circular_buffer(circular_buffer< T, Alloc > && cb) noexcept;
    The move constructor.

    Move constructs a circular_buffer from cb, leaving cb empty. @@ -619,7 +619,7 @@ For detailed documentation of the

  • template<typename InputIterator> 
    -  circular_buffer(InputIterator first, InputIterator last, 
    +  circular_buffer(InputIterator first, InputIterator last, 
                       const allocator_type & alloc = allocator_type());
    Create a full circular_buffer filled with a copy of the range.

    @@ -675,7 +675,7 @@ For detailed documentation of the

  • template<typename InputIterator> 
    -  circular_buffer(capacity_type buffer_capacity, InputIterator first, 
    +  circular_buffer(capacity_type buffer_capacity, InputIterator first, 
                       InputIterator last, 
                       const allocator_type & alloc = allocator_type());
    Create a circular_buffer with the specified capacity and filled with a copy of the range.

    @@ -738,7 +738,7 @@ For detailed documentation of the

  • circular_buffer< T, Alloc > & 
    -operator=(const circular_buffer< T, Alloc > & cb);
    The assign operator.

    Makes this circular_buffer to become a copy of the specified circular_buffer. +operator=(const circular_buffer< T, Alloc > & cb);The assign operator.

    Makes this circular_buffer to become a copy of the specified circular_buffer.

    @@ -787,7 +787,7 @@ For detailed documentation of the
  • circular_buffer< T, Alloc > & 
    -operator=(circular_buffer< T, Alloc > && cb) noexcept;
    Move assigns content of cb to *this, leaving cb empty.

    +operator=(circular_buffer< T, Alloc > && cb) noexcept;Move assigns content of cb to *this, leaving cb empty.

    @@ -830,7 +830,7 @@ For detailed documentation of the

  • -
    ~circular_buffer();
    The destructor.

    Destroys the circular_buffer. +

    ~circular_buffer();
    The destructor.

    Destroys the circular_buffer.

    Iterator Invalidation. Invalidates all iterators pointing to the circular_buffer (including iterators equal to end()).

    @@ -857,10 +857,10 @@ For detailed documentation of the

    -circular_buffer public member functions

    +circular_buffer public member functions
    1. -
      allocator_type get_allocator() const noexcept;
      Get the allocator.

      +

      allocator_type get_allocator() const noexcept;
      Get the allocator.

      Exception Safety. No-throw.

      @@ -894,7 +894,7 @@ For detailed documentation of the
  • -
    allocator_type & get_allocator() noexcept;
    Get the allocator reference.

    +

    allocator_type & get_allocator() noexcept;
    Get the allocator reference.

    Exception Safety. No-throw.

    @@ -937,7 +937,7 @@ For detailed documentation of the
  • -
    iterator begin() noexcept;
    Get the iterator pointing to the beginning of the circular_buffer.

    +

    iterator begin() noexcept;
    Get the iterator pointing to the beginning of the circular_buffer.

    Exception Safety. No-throw.

    @@ -971,7 +971,7 @@ For detailed documentation of the
  • -
    iterator end() noexcept;
    Get the iterator pointing to the end of the circular_buffer.

    +

    iterator end() noexcept;
    Get the iterator pointing to the end of the circular_buffer.

    Exception Safety. No-throw.

    @@ -1005,7 +1005,7 @@ For detailed documentation of the
  • -
    const_iterator begin() const noexcept;
    Get the const iterator pointing to the beginning of the circular_buffer.

    +

    const_iterator begin() const noexcept;
    Get the const iterator pointing to the beginning of the circular_buffer.

    Exception Safety. No-throw.

    @@ -1039,7 +1039,7 @@ For detailed documentation of the
  • -
    const_iterator end() const noexcept;
    Get the const iterator pointing to the end of the circular_buffer.

    +

    const_iterator end() const noexcept;
    Get the const iterator pointing to the end of the circular_buffer.

    Exception Safety. No-throw.

    @@ -1073,7 +1073,7 @@ For detailed documentation of the
  • -
    reverse_iterator rbegin() noexcept;
    Get the iterator pointing to the beginning of the "reversed" circular_buffer.

    +

    reverse_iterator rbegin() noexcept;
    Get the iterator pointing to the beginning of the "reversed" circular_buffer.

    Exception Safety. No-throw.

    @@ -1107,7 +1107,7 @@ For detailed documentation of the
  • -
    reverse_iterator rend() noexcept;
    Get the iterator pointing to the end of the "reversed" circular_buffer.

    +

    reverse_iterator rend() noexcept;
    Get the iterator pointing to the end of the "reversed" circular_buffer.

    Exception Safety. No-throw.

    @@ -1141,7 +1141,7 @@ For detailed documentation of the
  • -
    const_reverse_iterator rbegin() const noexcept;
    Get the const iterator pointing to the beginning of the "reversed" circular_buffer.

    +

    const_reverse_iterator rbegin() const noexcept;
    Get the const iterator pointing to the beginning of the "reversed" circular_buffer.

    Exception Safety. No-throw.

    @@ -1175,7 +1175,7 @@ For detailed documentation of the
  • -
    const_reverse_iterator rend() const noexcept;
    Get the const iterator pointing to the end of the "reversed" circular_buffer.

    +

    const_reverse_iterator rend() const noexcept;
    Get the const iterator pointing to the end of the "reversed" circular_buffer.

    Exception Safety. No-throw.

    @@ -1209,7 +1209,7 @@ For detailed documentation of the
  • -
    reference operator[](size_type index);
    Get the element at the index position.

    +

    reference operator[](size_type index);
    Get the element at the index position.

    @@ -1262,7 +1262,7 @@ For detailed documentation of the

  • -
    const_reference operator[](size_type index) const;
    Get the element at the index position.

    +

    const_reference operator[](size_type index) const;
    Get the element at the index position.

    @@ -1315,7 +1315,7 @@ For detailed documentation of the

  • -
    reference at(size_type index);
    Get the element at the index position.

    +

    reference at(size_type index);
    Get the element at the index position.

    @@ -1363,7 +1363,7 @@ For detailed documentation of the
  • -
    const_reference at(size_type index) const;
    Get the element at the index position.

    +

    const_reference at(size_type index) const;
    Get the element at the index position.

    @@ -1411,7 +1411,7 @@ For detailed documentation of the
  • -
    reference front();
    Get the first element.

    +

    reference front();
    Get the first element.

    @@ -1450,7 +1450,7 @@ For detailed documentation of the
  • -
    reference back();
    Get the last element.

    +

    reference back();
    Get the last element.

    @@ -1489,7 +1489,7 @@ For detailed documentation of the
  • -
    const_reference front() const;
    Get the first element.

    +

    const_reference front() const;
    Get the first element.

    @@ -1528,7 +1528,7 @@ For detailed documentation of the
  • -
    const_reference back() const;
    Get the last element.

    +

    const_reference back() const;
    Get the last element.

    @@ -1567,7 +1567,7 @@ For detailed documentation of the
  • -
    array_range array_one();
    Get the first continuous array of the internal buffer.

    This method in combination with array_two() can be useful when passing the stored data into a legacy C API as an array. Suppose there is a circular_buffer of capacity 10, containing 7 characters 'a', 'b', ..., 'g' where buff[0] == 'a', buff[1] == 'b', ... and buff[6] == 'g':
    +

    array_range array_one();
    Get the first continuous array of the internal buffer.

    This method in combination with array_two() can be useful when passing the stored data into a legacy C API as an array. Suppose there is a circular_buffer of capacity 10, containing 7 characters 'a', 'b', ..., 'g' where buff[0] == 'a', buff[1] == 'b', ... and buff[6] == 'g':

    circular_buffer<char> buff(10);

    @@ -1646,7 +1646,7 @@ For detailed documentation of the

  • -
    array_range array_two();
    Get the second continuous array of the internal buffer.

    This method in combination with array_one() can be useful when passing the stored data into a legacy C API as an array. +

    array_range array_two();
    Get the second continuous array of the internal buffer.

    This method in combination with array_one() can be useful when passing the stored data into a legacy C API as an array.

    Exception Safety. No-throw.

    @@ -1680,7 +1680,7 @@ For detailed documentation of the
  • -
    const_array_range array_one() const;
    Get the first continuous array of the internal buffer.

    This method in combination with array_two() const can be useful when passing the stored data into a legacy C API as an array. +

    const_array_range array_one() const;
    Get the first continuous array of the internal buffer.

    This method in combination with array_two() const can be useful when passing the stored data into a legacy C API as an array.

    Exception Safety. No-throw.

    @@ -1714,7 +1714,7 @@ For detailed documentation of the
  • -
    const_array_range array_two() const;
    Get the second continuous array of the internal buffer.

    This method in combination with array_one() const can be useful when passing the stored data into a legacy C API as an array. +

    const_array_range array_two() const;
    Get the second continuous array of the internal buffer.

    This method in combination with array_one() const can be useful when passing the stored data into a legacy C API as an array.

    Exception Safety. No-throw.

    @@ -1748,7 +1748,7 @@ For detailed documentation of the
  • -
    pointer linearize();
    Linearize the internal buffer into a continuous array.

    This method can be useful when passing the stored data into a legacy C API as an array. +

    pointer linearize();
    Linearize the internal buffer into a continuous array.

    This method can be useful when passing the stored data into a legacy C API as an array.

    @@ -1796,7 +1796,7 @@ For detailed documentation of the
  • -
    bool is_linearized() const noexcept;
    Is the circular_buffer linearized?

    +

    bool is_linearized() const noexcept;
    Is the circular_buffer linearized?

    Exception Safety. No-throw.

    @@ -1830,7 +1830,7 @@ For detailed documentation of the
  • -
    void rotate(const_iterator new_begin);
    Rotate elements in the circular_buffer.

    A more effective implementation of std::rotate. +

    void rotate(const_iterator new_begin);
    Rotate elements in the circular_buffer.

    A more effective implementation of std::rotate. @@ -1892,7 +1892,7 @@ then after call to the method:

  • -
    size_type size() const noexcept;
    Get the number of elements currently stored in the circular_buffer.

    +

    size_type size() const noexcept;
    Get the number of elements currently stored in the circular_buffer.

    Exception Safety. No-throw.

    @@ -1926,7 +1926,7 @@ then after call to the method:
  • -
    size_type max_size() const noexcept;
    Get the largest possible size or capacity of the circular_buffer. (It depends on allocator's max_size()).

    +

    size_type max_size() const noexcept;
    Get the largest possible size or capacity of the circular_buffer. (It depends on allocator's max_size()).

    Exception Safety. No-throw.

    @@ -1960,7 +1960,7 @@ then after call to the method:
  • -
    bool empty() const noexcept;
    Is the circular_buffer empty?

    +

    bool empty() const noexcept;
    Is the circular_buffer empty?

    Exception Safety. No-throw.

    @@ -1994,7 +1994,7 @@ then after call to the method:
  • -
    bool full() const noexcept;
    Is the circular_buffer full?

    +

    bool full() const noexcept;
    Is the circular_buffer full?

    Exception Safety. No-throw.

    @@ -2028,7 +2028,7 @@ then after call to the method:
  • -
    size_type reserve() const noexcept;
    Get the maximum number of elements which can be inserted into the circular_buffer without overwriting any of already stored elements.

    +

    size_type reserve() const noexcept;
    Get the maximum number of elements which can be inserted into the circular_buffer without overwriting any of already stored elements.

    Exception Safety. No-throw.

    @@ -2062,7 +2062,7 @@ then after call to the method:
  • -
    capacity_type capacity() const noexcept;
    Get the capacity of the circular_buffer.

    +

    capacity_type capacity() const noexcept;
    Get the capacity of the circular_buffer.

    Exception Safety. No-throw.

    @@ -2096,7 +2096,7 @@ then after call to the method:
  • -
    void set_capacity(capacity_type new_capacity);
    Change the capacity of the circular_buffer.

    +

    void set_capacity(capacity_type new_capacity);
    Change the capacity of the circular_buffer.

    @@ -2151,7 +2151,7 @@ then after call to the method:

  • -
    void resize(size_type new_size, param_value_type item = value_type());
    Change the size of the circular_buffer.

    +

    void resize(size_type new_size, param_value_type item = value_type());
    Change the size of the circular_buffer.

    @@ -2208,7 +2208,7 @@ then after call to the method:
  • -
    void rset_capacity(capacity_type new_capacity);
    Change the capacity of the circular_buffer.

    +

    void rset_capacity(capacity_type new_capacity);
    Change the capacity of the circular_buffer.

    @@ -2263,7 +2263,7 @@ then after call to the method:

  • -
    void rresize(size_type new_size, param_value_type item = value_type());
    Change the size of the circular_buffer.

    +

    void rresize(size_type new_size, param_value_type item = value_type());
    Change the size of the circular_buffer.

    @@ -2320,7 +2320,7 @@ then after call to the method:
  • -
    void assign(size_type n, param_value_type item);
    Assign n items into the circular_buffer.

    The content of the circular_buffer will be removed and replaced with n copies of the item. +

    void assign(size_type n, param_value_type item);
    Assign n items into the circular_buffer.

    The content of the circular_buffer will be removed and replaced with n copies of the item.

    @@ -2374,7 +2374,7 @@ then after call to the method:
  • -
    void assign(capacity_type buffer_capacity, size_type n, param_value_type item);
    Assign n items into the circular_buffer specifying the capacity.

    The capacity of the circular_buffer will be set to the specified value and the content of the circular_buffer will be removed and replaced with n copies of the item. +

    void assign(capacity_type buffer_capacity, size_type n, param_value_type item);
    Assign n items into the circular_buffer specifying the capacity.

    The capacity of the circular_buffer will be set to the specified value and the content of the circular_buffer will be removed and replaced with n copies of the item. @@ -2438,7 +2438,7 @@ then after call to the method:

  • template<typename InputIterator> 
    -  void assign(InputIterator first, InputIterator last);
    Assign a copy of the range into the circular_buffer.

    The content of the circular_buffer will be removed and replaced with copies of elements from the specified range. + void assign(InputIterator first, InputIterator last);Assign a copy of the range into the circular_buffer.

    The content of the circular_buffer will be removed and replaced with copies of elements from the specified range. @@ -2499,7 +2499,7 @@ then after call to the method:

  • template<typename InputIterator> 
    -  void assign(capacity_type buffer_capacity, InputIterator first, 
    +  void assign(capacity_type buffer_capacity, InputIterator first, 
                   InputIterator last);
    Assign a copy of the range into the circular_buffer specifying the capacity.

    The capacity of the circular_buffer will be set to the specified value and the content of the circular_buffer will be removed and replaced with copies of elements from the specified range. @@ -2566,7 +2566,7 @@ then after call to the method:

  • -
    void swap(circular_buffer< T, Alloc > & cb) noexcept;
    Swap the contents of two circular_buffers.

    +

    void swap(circular_buffer< T, Alloc > & cb) noexcept;
    Swap the contents of two circular_buffers.

    @@ -2614,7 +2614,7 @@ then after call to the method:
  • -
    void push_back(param_value_type item);
    Insert a new element at the end of the circular_buffer.

    +

    void push_back(param_value_type item);
    Insert a new element at the end of the circular_buffer.

    @@ -2663,7 +2663,7 @@ then after call to the method:
  • -
    void push_back(rvalue_type item);
    Insert a new element at the end of the circular_buffer using rvalue references or rvalues references emulation.

    +

    void push_back(rvalue_type item);
    Insert a new element at the end of the circular_buffer using rvalue references or rvalues references emulation.

    @@ -2712,7 +2712,7 @@ then after call to the method:
  • -
    void push_back();
    Insert a new default-constructed element at the end of the circular_buffer.

    +

    void push_back();
    Insert a new default-constructed element at the end of the circular_buffer.

    Exception Safety. Basic; no-throw if the operation in the Throws section does not throw anything.

    @@ -2747,7 +2747,7 @@ then after call to the method:
  • -
    void push_front(param_value_type item);
    Insert a new element at the beginning of the circular_buffer.

    +

    void push_front(param_value_type item);
    Insert a new element at the beginning of the circular_buffer.

    @@ -2796,7 +2796,7 @@ then after call to the method:
  • -
    void push_front(rvalue_type item);
    Insert a new element at the beginning of the circular_buffer using rvalue references or rvalues references emulation.

    +

    void push_front(rvalue_type item);
    Insert a new element at the beginning of the circular_buffer using rvalue references or rvalues references emulation.

    @@ -2845,7 +2845,7 @@ then after call to the method:
  • -
    void push_front();
    Insert a new default-constructed element at the beginning of the circular_buffer.

    +

    void push_front();
    Insert a new default-constructed element at the beginning of the circular_buffer.

    Exception Safety. Basic; no-throw if the operation in the Throws section does not throw anything.

    @@ -2880,7 +2880,7 @@ then after call to the method:
  • -
    void pop_back();
    Remove the last element from the circular_buffer.

    +

    void pop_back();
    Remove the last element from the circular_buffer.

    @@ -2919,7 +2919,7 @@ then after call to the method:
  • -
    void pop_front();
    Remove the first element from the circular_buffer.

    +

    void pop_front();
    Remove the first element from the circular_buffer.

    @@ -2958,7 +2958,7 @@ then after call to the method:
  • -
    iterator insert(iterator pos, param_value_type item);
    Insert an element at the specified position.

    +

    iterator insert(iterator pos, param_value_type item);
    Insert an element at the specified position.

    @@ -3023,7 +3023,7 @@ then after call to the method:

  • -
    iterator insert(iterator pos, rvalue_type item);
    Insert an element at the specified position.

    +

    iterator insert(iterator pos, rvalue_type item);
    Insert an element at the specified position.

    @@ -3088,7 +3088,7 @@ then after call to the method:

  • -
    iterator insert(iterator pos);
    Insert a default-constructed element at the specified position.

    +

    iterator insert(iterator pos);
    Insert a default-constructed element at the specified position.

    @@ -3147,7 +3147,7 @@ then after call to the method:

  • -
    void insert(iterator pos, size_type n, param_value_type item);
    Insert n copies of the item at the specified position.

    +

    void insert(iterator pos, size_type n, param_value_type item);
    Insert n copies of the item at the specified position.

    @@ -3229,7 +3229,7 @@ The number of min[pos - begin(), max[0, n - reserve

  • template<typename InputIterator> 
    -  void insert(iterator pos, InputIterator first, InputIterator last);
    Insert the range [first, last) at the specified position.

    + void insert(iterator pos, InputIterator first, InputIterator last);Insert the range [first, last) at the specified position.

    @@ -3312,7 +3312,7 @@ The number of min[pos - begin(), max[0, distance(fi

  • -
    iterator rinsert(iterator pos, param_value_type item);
    Insert an element before the specified position.

    +

    iterator rinsert(iterator pos, param_value_type item);
    Insert an element before the specified position.

    @@ -3377,7 +3377,7 @@ The number of min[pos - begin(), max[0, distance(fi

  • -
    iterator rinsert(iterator pos, rvalue_type item);
    Insert an element before the specified position.

    +

    iterator rinsert(iterator pos, rvalue_type item);
    Insert an element before the specified position.

    @@ -3442,7 +3442,7 @@ The number of min[pos - begin(), max[0, distance(fi

  • -
    iterator rinsert(iterator pos);
    Insert an element before the specified position.

    +

    iterator rinsert(iterator pos);
    Insert an element before the specified position.

    @@ -3501,7 +3501,7 @@ The number of min[pos - begin(), max[0, distance(fi

  • -
    void rinsert(iterator pos, size_type n, param_value_type item);
    Insert n copies of the item before the specified position.

    +

    void rinsert(iterator pos, size_type n, param_value_type item);
    Insert n copies of the item before the specified position.

    @@ -3583,7 +3583,7 @@ The number of min[end() - pos, max[0, n - reserve()

  • template<typename InputIterator> 
    -  void rinsert(iterator pos, InputIterator first, InputIterator last);
    Insert the range [first, last) before the specified position.

    + void rinsert(iterator pos, InputIterator first, InputIterator last);Insert the range [first, last) before the specified position.

    @@ -3666,7 +3666,7 @@ The number of min[end() - pos, max[0, distance(firs

  • -
    iterator erase(iterator pos);
    Remove an element at the specified position.

    +

    iterator erase(iterator pos);
    Remove an element at the specified position.

    @@ -3724,7 +3724,7 @@ The number of min[end() - pos, max[0, distance(firs

  • -
    iterator erase(iterator first, iterator last);
    Erase the range [first, last).

    +

    iterator erase(iterator first, iterator last);
    Erase the range [first, last).

    @@ -3788,7 +3788,7 @@ The number of min[end() - pos, max[0, distance(firs

  • -
    iterator rerase(iterator pos);
    Remove an element at the specified position.

    +

    iterator rerase(iterator pos);
    Remove an element at the specified position.

    @@ -3855,7 +3855,7 @@ The number of min[end() - pos, max[0, distance(firs

  • -
    iterator rerase(iterator first, iterator last);
    Erase the range [first, last).

    +

    iterator rerase(iterator first, iterator last);
    Erase the range [first, last).

    @@ -3928,7 +3928,7 @@ The number of min[end() - pos, max[0, distance(firs

  • -
    void erase_begin(size_type n);
    Remove first n elements (with constant complexity for scalar types).

    +

    void erase_begin(size_type n);
    Remove first n elements (with constant complexity for scalar types).

    @@ -3990,7 +3990,7 @@ The number of min[end() - pos, max[0, distance(firs

  • -
    void erase_end(size_type n);
    Remove last n elements (with constant complexity for scalar types).

    +

    void erase_end(size_type n);
    Remove last n elements (with constant complexity for scalar types).

    @@ -4052,7 +4052,7 @@ The number of min[end() - pos, max[0, distance(firs

  • -
    void clear() noexcept;
    Remove all stored elements from the circular_buffer.

    +

    void clear() noexcept;
    Remove all stored elements from the circular_buffer.

    Exception Safety. No-throw.

    @@ -4089,177 +4089,177 @@ The number of min[end() - pos, max[0, distance(firs

    -circular_buffer private member functions

    +circular_buffer private member functions
      -
    1. template<typename ValT> void push_back_impl(ValT item);
    2. -
    3. template<typename ValT> void push_front_impl(ValT item);
    4. -
    5. template<typename ValT> iterator insert_impl(iterator pos, ValT item);
    6. -
    7. template<typename ValT> iterator rinsert_impl(iterator pos, ValT item);
    8. +
    9. template<typename ValT> void push_back_impl(ValT item);
    10. +
    11. template<typename ValT> void push_front_impl(ValT item);
    12. +
    13. template<typename ValT> iterator insert_impl(iterator pos, ValT item);
    14. +
    15. template<typename ValT> iterator rinsert_impl(iterator pos, ValT item);
    16. -
      void check_position(size_type index) const;
      Check if the index is valid.
    17. +
      void check_position(size_type index) const;
      Check if the index is valid.
    18. -
      template<typename Pointer> void increment(Pointer & p) const;
      Increment the pointer.
    19. +
      template<typename Pointer> void increment(Pointer & p) const;
      Increment the pointer.
    20. -
      template<typename Pointer> void decrement(Pointer & p) const;
      Decrement the pointer.
    21. +
      template<typename Pointer> void decrement(Pointer & p) const;
      Decrement the pointer.
    22. -
      template<typename Pointer> Pointer add(Pointer p, difference_type n) const;
      Add n to the pointer.
    23. +
      template<typename Pointer> Pointer add(Pointer p, difference_type n) const;
      Add n to the pointer.
    24. -
      template<typename Pointer> Pointer sub(Pointer p, difference_type n) const;
      Subtract n from the pointer.
    25. +
      template<typename Pointer> Pointer sub(Pointer p, difference_type n) const;
      Subtract n from the pointer.
    26. -
      pointer map_pointer(pointer p) const;
      Map the null pointer to virtual end of circular buffer.
    27. +
      pointer map_pointer(pointer p) const;
      Map the null pointer to virtual end of circular buffer.
    28. -
      pointer allocate(size_type n);
      Allocate memory.
    29. +
      pointer allocate(size_type n);
      Allocate memory.
    30. -
      void deallocate(pointer p, size_type n);
      Deallocate memory.
    31. +
      void deallocate(pointer p, size_type n);
      Deallocate memory.
    32. -
      bool is_uninitialized(const_pointer p) const noexcept;
      Does the pointer point to the uninitialized memory?
    33. +
      bool is_uninitialized(const_pointer p) const noexcept;
      Does the pointer point to the uninitialized memory?
    34. -
      void replace(pointer pos, param_value_type item);
      Replace an element.
    35. +
      void replace(pointer pos, param_value_type item);
      Replace an element.
    36. -
      void replace(pointer pos, rvalue_type item);
      Replace an element.
    37. +
      void replace(pointer pos, rvalue_type item);
      Replace an element.
    38. -
      void construct_or_replace(bool construct, pointer pos, param_value_type item);
      Construct or replace an element.

      construct has to be set to true if and only if pos points to an uninitialized memory.

      +
      void construct_or_replace(bool construct, pointer pos, param_value_type item);
      Construct or replace an element.

      construct has to be set to true if and only if pos points to an uninitialized memory.

    39. -
      void construct_or_replace(bool construct, pointer pos, rvalue_type item);
      Construct or replace an element.

      construct has to be set to true if and only if pos points to an uninitialized memory.

      +
      void construct_or_replace(bool construct, pointer pos, rvalue_type item);
      Construct or replace an element.

      construct has to be set to true if and only if pos points to an uninitialized memory.

    40. -
      void destroy_item(pointer p);
      Destroy an item.
    41. +
      void destroy_item(pointer p);
      Destroy an item.
    42. -
      void destroy_if_constructed(pointer pos);
      Destroy an item only if it has been constructed.
    43. +
      void destroy_if_constructed(pointer pos);
      Destroy an item only if it has been constructed.
    44. -
      void destroy_content();
      Destroy the whole content of the circular buffer.
    45. +
      void destroy_content();
      Destroy the whole content of the circular buffer.
    46. -
      void destroy_content(const true_type &);
      Specialized destroy_content method.
    47. +
      void destroy_content(const true_type &);
      Specialized destroy_content method.
    48. -
      void destroy_content(const false_type &);
      Specialized destroy_content method.
    49. +
      void destroy_content(const false_type &);
      Specialized destroy_content method.
    50. -
      void destroy() noexcept;
      Destroy content and free allocated memory.
    51. +
      void destroy() noexcept;
      Destroy content and free allocated memory.
    52. -
      void initialize_buffer(capacity_type buffer_capacity);
      Initialize the internal buffer.
    53. +
      void initialize_buffer(capacity_type buffer_capacity);
      Initialize the internal buffer.
    54. -
      void initialize_buffer(capacity_type buffer_capacity, param_value_type item);
      Initialize the internal buffer.
    55. +
      void initialize_buffer(capacity_type buffer_capacity, param_value_type item);
      Initialize the internal buffer.
    56. template<typename IntegralType> 
      -  void initialize(IntegralType n, IntegralType item, const true_type &);
      Specialized initialize method.
    57. + void initialize(IntegralType n, IntegralType item, const true_type &);Specialized initialize method.
    58. template<typename Iterator> 
      -  void initialize(Iterator first, Iterator last, const false_type &);
      Specialized initialize method.
    59. + void initialize(Iterator first, Iterator last, const false_type &);Specialized initialize method.
    60. template<typename InputIterator> 
      -  void initialize(InputIterator first, InputIterator last, 
      +  void initialize(InputIterator first, InputIterator last, 
                         const std::input_iterator_tag &);
      Specialized initialize method.
    61. template<typename ForwardIterator> 
      -  void initialize(ForwardIterator first, ForwardIterator last, 
      +  void initialize(ForwardIterator first, ForwardIterator last, 
                         const std::forward_iterator_tag &);
      Specialized initialize method.
    62. template<typename IntegralType> 
      -  void initialize(capacity_type buffer_capacity, IntegralType n, 
      +  void initialize(capacity_type buffer_capacity, IntegralType n, 
                         IntegralType item, const true_type &);
      Specialized initialize method.
    63. template<typename Iterator> 
      -  void initialize(capacity_type buffer_capacity, Iterator first, 
      +  void initialize(capacity_type buffer_capacity, Iterator first, 
                         Iterator last, const false_type &);
      Specialized initialize method.
    64. template<typename InputIterator> 
      -  void initialize(capacity_type buffer_capacity, InputIterator first, 
      +  void initialize(capacity_type buffer_capacity, InputIterator first, 
                         InputIterator last, const std::input_iterator_tag &);
      Specialized initialize method.
    65. template<typename ForwardIterator> 
      -  void initialize(capacity_type buffer_capacity, ForwardIterator first, 
      +  void initialize(capacity_type buffer_capacity, ForwardIterator first, 
                         ForwardIterator last, const std::forward_iterator_tag &);
      Specialized initialize method.
    66. template<typename ForwardIterator> 
      -  void initialize(capacity_type buffer_capacity, ForwardIterator first, 
      +  void initialize(capacity_type buffer_capacity, ForwardIterator first, 
                         ForwardIterator last, size_type distance);
      Initialize the circular buffer.
    67. -
      void reset(pointer buff, pointer last, capacity_type new_capacity);
      Reset the circular buffer.
    68. +
      void reset(pointer buff, pointer last, capacity_type new_capacity);
      Reset the circular buffer.
    69. -
      void swap_allocator(circular_buffer< T, Alloc > &, const true_type &);
      Specialized method for swapping the allocator.
    70. +
      void swap_allocator(circular_buffer< T, Alloc > &, const true_type &);
      Specialized method for swapping the allocator.
    71. -
      void swap_allocator(circular_buffer< T, Alloc > & cb, const false_type &);
      Specialized method for swapping the allocator.
    72. +
      void swap_allocator(circular_buffer< T, Alloc > & cb, const false_type &);
      Specialized method for swapping the allocator.
    73. template<typename IntegralType> 
      -  void assign(IntegralType n, IntegralType item, const true_type &);
      Specialized assign method.
    74. + void assign(IntegralType n, IntegralType item, const true_type &);Specialized assign method.
    75. template<typename Iterator> 
      -  void assign(Iterator first, Iterator last, const false_type &);
      Specialized assign method.
    76. + void assign(Iterator first, Iterator last, const false_type &);Specialized assign method.
    77. template<typename InputIterator> 
      -  void assign(InputIterator first, InputIterator last, 
      +  void assign(InputIterator first, InputIterator last, 
                     const std::input_iterator_tag &);
      Specialized assign method.
    78. template<typename ForwardIterator> 
      -  void assign(ForwardIterator first, ForwardIterator last, 
      +  void assign(ForwardIterator first, ForwardIterator last, 
                     const std::forward_iterator_tag &);
      Specialized assign method.
    79. template<typename IntegralType> 
      -  void assign(capacity_type new_capacity, IntegralType n, IntegralType item, 
      +  void assign(capacity_type new_capacity, IntegralType n, IntegralType item, 
                     const true_type &);
      Specialized assign method.
    80. template<typename Iterator> 
      -  void assign(capacity_type new_capacity, Iterator first, Iterator last, 
      +  void assign(capacity_type new_capacity, Iterator first, Iterator last, 
                     const false_type &);
      Specialized assign method.
    81. template<typename InputIterator> 
      -  void assign(capacity_type new_capacity, InputIterator first, 
      +  void assign(capacity_type new_capacity, InputIterator first, 
                     InputIterator last, const std::input_iterator_tag &);
      Specialized assign method.
    82. template<typename ForwardIterator> 
      -  void assign(capacity_type new_capacity, ForwardIterator first, 
      +  void assign(capacity_type new_capacity, ForwardIterator first, 
                     ForwardIterator last, const std::forward_iterator_tag &);
      Specialized assign method.
    83. template<typename Functor> 
      -  void assign_n(capacity_type new_capacity, size_type n, const Functor & fnc);
      Helper assign method.
    84. + void assign_n(capacity_type new_capacity, size_type n, const Functor & fnc);Helper assign method.
    85. -
      template<typename ValT> iterator insert_item(const iterator & pos, ValT item);
      Helper insert method.
    86. +
      template<typename ValT> iterator insert_item(const iterator & pos, ValT item);
      Helper insert method.
    87. template<typename IntegralType> 
      -  void insert(const iterator & pos, IntegralType n, IntegralType item, 
      +  void insert(const iterator & pos, IntegralType n, IntegralType item, 
                     const true_type &);
      Specialized insert method.
    88. template<typename Iterator> 
      -  void insert(const iterator & pos, Iterator first, Iterator last, 
      +  void insert(const iterator & pos, Iterator first, Iterator last, 
                     const false_type &);
      Specialized insert method.
    89. template<typename InputIterator> 
      -  void insert(iterator pos, InputIterator first, InputIterator last, 
      +  void insert(iterator pos, InputIterator first, InputIterator last, 
                     const std::input_iterator_tag &);
      Specialized insert method.
    90. template<typename ForwardIterator> 
      -  void insert(const iterator & pos, ForwardIterator first, 
      +  void insert(const iterator & pos, ForwardIterator first, 
                     ForwardIterator last, const std::forward_iterator_tag &);
      Specialized insert method.
    91. template<typename Wrapper> 
      -  void insert_n(const iterator & pos, size_type n, const Wrapper & wrapper);
      Helper insert method.
    92. + void insert_n(const iterator & pos, size_type n, const Wrapper & wrapper);Helper insert method.
    93. template<typename IntegralType> 
      -  void rinsert(const iterator & pos, IntegralType n, IntegralType item, 
      +  void rinsert(const iterator & pos, IntegralType n, IntegralType item, 
                      const true_type &);
      Specialized rinsert method.
    94. template<typename Iterator> 
      -  void rinsert(const iterator & pos, Iterator first, Iterator last, 
      +  void rinsert(const iterator & pos, Iterator first, Iterator last, 
                      const false_type &);
      Specialized rinsert method.
    95. template<typename InputIterator> 
      -  void rinsert(iterator pos, InputIterator first, InputIterator last, 
      +  void rinsert(iterator pos, InputIterator first, InputIterator last, 
                      const std::input_iterator_tag &);
      Specialized insert method.
    96. template<typename ForwardIterator> 
      -  void rinsert(const iterator & pos, ForwardIterator first, 
      +  void rinsert(const iterator & pos, ForwardIterator first, 
                      ForwardIterator last, const std::forward_iterator_tag &);
      Specialized rinsert method.
    97. template<typename Wrapper> 
      -  void rinsert_n(const iterator & pos, size_type n, const Wrapper & wrapper);
      Helper rinsert method.
    98. + void rinsert_n(const iterator & pos, size_type n, const Wrapper & wrapper);Helper rinsert method.
    99. -
      void erase_begin(size_type n, const true_type &);
      Specialized erase_begin method.
    100. +
      void erase_begin(size_type n, const true_type &);
      Specialized erase_begin method.
    101. -
      void erase_begin(size_type n, const false_type &);
      Specialized erase_begin method.
    102. +
      void erase_begin(size_type n, const false_type &);
      Specialized erase_begin method.
    103. -
      void erase_end(size_type n, const true_type &);
      Specialized erase_end method.
    104. +
      void erase_end(size_type n, const true_type &);
      Specialized erase_end method.
    105. -
      void erase_end(size_type n, const false_type &);
      Specialized erase_end method.
    106. +
      void erase_end(size_type n, const false_type &);
      Specialized erase_end method.
    @@ -4274,7 +4274,7 @@ The number of min[end() - pos, max[0, distance(firs
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/container/adaptive_pool.html b/doc/html/boost/container/adaptive_pool.html index 2cc1de3aff..b041af950f 100644 --- a/doc/html/boost/container/adaptive_pool.html +++ b/doc/html/boost/container/adaptive_pool.html @@ -43,11 +43,11 @@ typedef T value_type; typedef T * pointer; typedef const T * const_pointer; - typedef unspecified reference; - typedef unspecified const_reference; + typedef ::boost::container::dtl::unvoid_ref< T >::type reference; + typedef ::boost::container::dtl::unvoid_ref< const T >::type const_reference; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; - typedef unspecified version; + typedef boost::container::dtl::version_type< self_t, Version > version; // member classes/structs/unions template<typename T2> @@ -57,38 +57,38 @@ }; // construct/copy/destruct - adaptive_pool() noexcept; - adaptive_pool(const adaptive_pool &) noexcept; + adaptive_pool() noexcept; + adaptive_pool(const adaptive_pool &) noexcept; template<typename T2> - adaptive_pool(const adaptive_pool< T2, NodesPerBlock, MaxFreeBlocks, OverheadPercent BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I Version)> &) noexcept; - ~adaptive_pool(); + adaptive_pool(const adaptive_pool< T2, NodesPerBlock, MaxFreeBlocks, OverheadPercent BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I Version)> &) noexcept; + ~adaptive_pool(); - // public member functions - BOOST_CONTAINER_DOCIGN(BOOST_STATIC_ASSERT((Version<=2))); - size_type max_size() const noexcept; - pointer allocate(size_type, const void * = 0); - void deallocate(const pointer &, size_type) noexcept; - pointer allocation_command(allocation_type, size_type, size_type &, + // public member functions + BOOST_CONTAINER_DOCIGN(BOOST_STATIC_ASSERT((Version<=2))); + size_type max_size() const noexcept; + pointer allocate(size_type, const void * = 0); + void deallocate(const pointer &, size_type) noexcept; + pointer allocation_command(allocation_type, size_type, size_type &, pointer &); - size_type size(pointer) const noexcept; - pointer allocate_one(); - void allocate_individual(std::size_t, multiallocation_chain &); - void deallocate_one(pointer) noexcept; - void deallocate_individual(multiallocation_chain &) noexcept; - void allocate_many(size_type, std::size_t, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &) noexcept; + size_type size(pointer) const noexcept; + pointer allocate_one(); + void allocate_individual(std::size_t, multiallocation_chain &); + void deallocate_one(pointer) noexcept; + void deallocate_individual(multiallocation_chain &) noexcept; + void allocate_many(size_type, std::size_t, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &) noexcept; - // public static functions - static void deallocate_free_blocks() noexcept; + // public static functions + static void deallocate_free_blocks() noexcept; - // friend functions - friend void swap(adaptive_pool &, adaptive_pool &) noexcept; - friend bool operator==(const adaptive_pool &, const adaptive_pool &) noexcept; - friend bool operator!=(const adaptive_pool &, const adaptive_pool &) noexcept; + // friend functions + friend void swap(adaptive_pool &, adaptive_pool &) noexcept; + friend bool operator==(const adaptive_pool &, const adaptive_pool &) noexcept; + friend bool operator!=(const adaptive_pool &, const adaptive_pool &) noexcept; - // private member functions - pointer priv_allocation_command(allocation_type, std::size_t, size_type &, + // private member functions + pointer priv_allocation_command(allocation_type, std::size_t, size_type &, pointer &); // public data members @@ -98,13 +98,13 @@ static const std::size_t real_nodes_per_block; };
    -

    Description

    +

    Description

    An STL node allocator that uses a modified DLMalloc as memory source.

    This node allocator shares a segregated storage between all instances of adaptive_pool with equal sizeof(T).

    NodesPerBlock is the number of nodes allocated at once when the allocator needs runs out of nodes. MaxFreeBlocks is the maximum number of totally free blocks that the adaptive node pool will hold. The rest of the totally free blocks will be deallocated to the memory manager.

    OverheadPercent is the (approximated) maximum size overhead (1-20%) of the allocator: (memory usable for nodes / total memory allocated from the memory allocator)

    -

    +

    adaptive_pool public types

    @@ -115,101 +115,101 @@
  • -

    +

    adaptive_pool public construct/copy/destruct

    1. -
      adaptive_pool() noexcept;
      Default constructor.
    2. +
      adaptive_pool() noexcept;
      Default constructor.
    3. -
      adaptive_pool(const adaptive_pool &) noexcept;
      Copy constructor from other adaptive_pool.
    4. +
      adaptive_pool(const adaptive_pool &) noexcept;
      Copy constructor from other adaptive_pool.
    5. template<typename T2> 
      -  adaptive_pool(const adaptive_pool< T2, NodesPerBlock, MaxFreeBlocks, OverheadPercent BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I Version)> &) noexcept;
      Copy constructor from related adaptive_pool.
    6. + adaptive_pool(const adaptive_pool< T2, NodesPerBlock, MaxFreeBlocks, OverheadPercent BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I Version)> &) noexcept;Copy constructor from related adaptive_pool.
    7. -
      ~adaptive_pool();
      Destructor.
    8. +
      ~adaptive_pool();
      Destructor.
    -

    -adaptive_pool public member functions

    +

    +adaptive_pool public member functions

      -
    1.  BOOST_CONTAINER_DOCIGN(BOOST_STATIC_ASSERT((Version<=2)));
    2. +
    3.  BOOST_CONTAINER_DOCIGN(BOOST_STATIC_ASSERT((Version<=2)));
    4. -
      size_type max_size() const noexcept;
      +
      size_type max_size() const noexcept;

      Returns the number of elements that could be allocated. Never throws

    5. -
      pointer allocate(size_type count, const void * = 0);
      +
      pointer allocate(size_type count, const void * = 0);

      Allocate memory for an array of count elements. Throws std::bad_alloc if there is no enough memory

    6. -
      void deallocate(const pointer & ptr, size_type count) noexcept;
      +
      void deallocate(const pointer & ptr, size_type count) noexcept;

      Deallocate allocated memory. Never throws

    7. -
    8. pointer allocation_command(allocation_type command, size_type limit_size, 
      +
    9. pointer allocation_command(allocation_type command, size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);
    10. -
      size_type size(pointer p) const noexcept;
      +
      size_type size(pointer p) const noexcept;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold.

    11. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws bad_alloc if there is no enough memory

    12. -
      void allocate_individual(std::size_t num_elements, 
      +
      void allocate_individual(std::size_t num_elements, 
                                multiallocation_chain & chain);

      Allocates many elements of size == 1. Elements must be individually deallocated with deallocate_one()

    13. -
      void deallocate_one(pointer p) noexcept;
      +
      void deallocate_one(pointer p) noexcept;

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

    14. -
    15. void deallocate_individual(multiallocation_chain & chain) noexcept;
    16. +
    17. void deallocate_individual(multiallocation_chain & chain) noexcept;
    18. -
      void allocate_many(size_type elem_size, std::size_t n_elements, 
      +
      void allocate_many(size_type elem_size, std::size_t n_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size. Elements must be individually deallocated with deallocate()

    19. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i] Elements must be individually deallocated with deallocate()

    20. -
    21. void deallocate_many(multiallocation_chain & chain) noexcept;
    22. +
    23. void deallocate_many(multiallocation_chain & chain) noexcept;
    -

    -adaptive_pool public static functions

    +

    +adaptive_pool public static functions

    1. -
      static void deallocate_free_blocks() noexcept;
      Deallocates all free blocks of the pool.
    +
    static void deallocate_free_blocks() noexcept;
    Deallocates all free blocks of the pool.
    -

    -adaptive_pool friend functions

    +

    +adaptive_pool friend functions

    1. -
      friend void swap(adaptive_pool &, adaptive_pool &) noexcept;
      +
      friend void swap(adaptive_pool &, adaptive_pool &) noexcept;

      Swaps allocators. Does not throw. If each allocator is placed in a different memory segment, the result is undefined.

    2. -
      friend bool operator==(const adaptive_pool &, const adaptive_pool &) noexcept;
      +
      friend bool operator==(const adaptive_pool &, const adaptive_pool &) noexcept;

      An allocator always compares to true, as memory allocated with one instance can be deallocated by another instance

    3. -
      friend bool operator!=(const adaptive_pool &, const adaptive_pool &) noexcept;
      +
      friend bool operator!=(const adaptive_pool &, const adaptive_pool &) noexcept;

      An allocator always compares to false, as memory allocated with one instance can be deallocated by another instance

    -

    -adaptive_pool private member functions

    -
    1. pointer priv_allocation_command(allocation_type command, 
      +

      +adaptive_pool private member functions

      +
      1. pointer priv_allocation_command(allocation_type command, 
                                         std::size_t limit_size, 
                                         size_type & prefer_in_recvd_out_size, 
                                         pointer & reuse_ptr);
      @@ -218,7 +218,8 @@
    -

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -39,13 +39,14 @@ typedef adaptive_pool< T2, NodesPerBlock, MaxFreeBlocks, OverheadPercent > other; };
    -

    Description

    +

    Description

    Obtains adaptive_pool from adaptive_pool

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/container/allocator.html b/doc/html/boost/container/allocator.html index 3039f9ca86..b336ffcf0c 100644 --- a/doc/html/boost/container/allocator.html +++ b/doc/html/boost/container/allocator.html @@ -37,14 +37,14 @@ class allocator { public: // types - typedef T value_type; - typedef T * pointer; - typedef const T * const_pointer; - typedef T & reference; - typedef const T & const_reference; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef unspecified version; + typedef T value_type; + typedef T * pointer; + typedef const T * const_pointer; + typedef T & reference; + typedef const T & const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef boost::container::dtl::version_type< self_t, Version > version; // member classes/structs/unions template<typename T2> @@ -54,140 +54,140 @@ }; // construct/copy/destruct - allocator() noexcept; - allocator(const allocator &) noexcept; - template<typename T2> allocator(const allocator< T2 > &) noexcept; + allocator() noexcept; + allocator(const allocator &) noexcept; + template<typename T2> allocator(const allocator< T2 > &) noexcept; - // public member functions - pointer allocate(size_type, const void * = 0); - void deallocate(pointer, size_type) noexcept; - size_type max_size() const noexcept; - pointer allocation_command(allocation_type, size_type, size_type &, + // public member functions + pointer allocate(size_type, const void * = 0); + void deallocate(pointer, size_type) noexcept; + size_type max_size() const noexcept; + pointer allocation_command(allocation_type, size_type, size_type &, pointer &); - size_type size(pointer) const noexcept; - pointer allocate_one(); - void allocate_individual(std::size_t, multiallocation_chain &); - void deallocate_one(pointer) noexcept; - void deallocate_individual(multiallocation_chain &) noexcept; - void allocate_many(size_type, std::size_t, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &) noexcept; + size_type size(pointer) const noexcept; + pointer allocate_one(); + void allocate_individual(std::size_t, multiallocation_chain &); + void deallocate_one(pointer) noexcept; + void deallocate_individual(multiallocation_chain &) noexcept; + void allocate_many(size_type, std::size_t, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &) noexcept; - // friend functions - friend void swap(self_t &, self_t &) noexcept; - friend bool operator==(const allocator &, const allocator &) noexcept; - friend bool operator!=(const allocator &, const allocator &) noexcept; + // friend functions + friend void swap(self_t &, self_t &) noexcept; + friend bool operator==(const allocator &, const allocator &) noexcept; + friend bool operator!=(const allocator &, const allocator &) noexcept; - // private member functions - pointer priv_allocation_command(allocation_type, std::size_t, size_type &, + // private member functions + pointer priv_allocation_command(allocation_type, std::size_t, size_type &, pointer &); };
    -

    Description

    +

    Description

    This class is an extended STL-compatible that offers advanced allocation mechanism (in-place expansion, shrinking, burst-allocation...)

    This allocator is a wrapper around a modified DLmalloc. If Version is 1, the allocator is a STL conforming allocator. If Version is 2, the allocator offers advanced expand in place and burst allocation capabilities.

    AllocationDisableMask works only if Version is 2 and it can be an inclusive OR of allocation types the user wants to disable.

    -

    +

    allocator public construct/copy/destruct

    1. -
      allocator() noexcept;
      +
      allocator() noexcept;

      Default constructor Never throws

    2. -
      allocator(const allocator &) noexcept;
      +
      allocator(const allocator &) noexcept;

      Constructor from other allocator. Never throws

    3. -
      template<typename T2> allocator(const allocator< T2 > &) noexcept;
      +
      template<typename T2> allocator(const allocator< T2 > &) noexcept;

      Constructor from related allocator. Never throws

    -

    -allocator public member functions

    +

    +allocator public member functions

    1. -
      pointer allocate(size_type count, const void * hint = 0);
      +
      pointer allocate(size_type count, const void * hint = 0);

      Allocates memory for an array of count elements. Throws std::bad_alloc if there is no enough memory If Version is 2, this allocated memory can only be deallocated with deallocate() or (for Version == 2) deallocate_many()

    2. -
      void deallocate(pointer ptr, size_type) noexcept;
      +
      void deallocate(pointer ptr, size_type) noexcept;

      Deallocates previously allocated memory. Never throws

    3. -
      size_type max_size() const noexcept;
      +
      size_type max_size() const noexcept;

      Returns the maximum number of elements that could be allocated. Never throws

    4. -
      pointer allocation_command(allocation_type command, size_type limit_size, 
      +
      pointer allocation_command(allocation_type command, size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);

      An advanced function that offers in-place expansion shrink to fit and new allocation capabilities. Memory allocated with this function can only be deallocated with deallocate() or deallocate_many(). This function is available only with Version == 2

    5. -
      size_type size(pointer p) const noexcept;
      +
      size_type size(pointer p) const noexcept;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold. Memory must not have been allocated with allocate_one or allocate_individual. This function is available only with Version == 2

    6. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws bad_alloc if there is no enough memory This function is available only with Version == 2

    7. -
      void allocate_individual(std::size_t num_elements, 
      +
      void allocate_individual(std::size_t num_elements, 
                                multiallocation_chain & chain);

      Allocates many elements of size == 1. Elements must be individually deallocated with deallocate_one() This function is available only with Version == 2

    8. -
      void deallocate_one(pointer p) noexcept;
      +
      void deallocate_one(pointer p) noexcept;

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one() or allocate_individual.

    9. -
      void deallocate_individual(multiallocation_chain & chain) noexcept;
      +
      void deallocate_individual(multiallocation_chain & chain) noexcept;

      Deallocates memory allocated with allocate_one() or allocate_individual(). This function is available only with Version == 2

    10. -
      void allocate_many(size_type elem_size, std::size_t n_elements, 
      +
      void allocate_many(size_type elem_size, std::size_t n_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size. Elements must be individually deallocated with deallocate() This function is available only with Version == 2

    11. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i] Elements must be individually deallocated with deallocate() This function is available only with Version == 2

    12. -
      void deallocate_many(multiallocation_chain & chain) noexcept;
      +
      void deallocate_many(multiallocation_chain & chain) noexcept;

      Deallocates several elements allocated by allocate_many(), allocate(), or allocation_command(). This function is available only with Version == 2

    -

    -allocator friend functions

    +

    +allocator friend functions

    1. -
      friend void swap(self_t &, self_t &) noexcept;
      +
      friend void swap(self_t &, self_t &) noexcept;

      Swaps two allocators, does nothing because this allocator is stateless

    2. -
      friend bool operator==(const allocator &, const allocator &) noexcept;
      +
      friend bool operator==(const allocator &, const allocator &) noexcept;

      An allocator always compares to true, as memory allocated with one instance can be deallocated by another instance

    3. -
      friend bool operator!=(const allocator &, const allocator &) noexcept;
      +
      friend bool operator!=(const allocator &, const allocator &) noexcept;

      An allocator always compares to false, as memory allocated with one instance can be deallocated by another instance

    -

    -allocator private member functions

    -
    1. pointer priv_allocation_command(allocation_type command, 
      +

      +allocator private member functions

      +
      1. pointer priv_allocation_command(allocation_type command, 
                                         std::size_t limit_size, 
                                         size_type & prefer_in_recvd_out_size, 
                                         pointer & reuse_ptr);
      @@ -196,7 +196,8 @@
    -

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -39,13 +39,14 @@ typedef allocator< T2, Version, AllocationDisableMask > other; };
    -

    Description

    +

    Description

    Obtains an allocator that allocates objects of type T2

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/container/allocator_arg.html b/doc/html/boost/container/allocator_arg.html index f4543a92fc..f79769e46f 100644 --- a/doc/html/boost/container/allocator_arg.html +++ b/doc/html/boost/container/allocator_arg.html @@ -34,13 +34,14 @@ static allocator_arg_t allocator_arg;
    -

    Description

    +

    Description

    A instance of type allocator_arg_t

    -
    -

    Description

    +

    Description

    The allocator_arg_t struct is an empty structure type used as a unique type to disambiguate constructor and function overloading. Specifically, several types have constructors with allocator_arg_t as the first argument, immediately followed by an argument of a type that satisfies Allocator requirements

    -
    -

    Description

    +

    Description

    The class template allocator_traits supplies a uniform interface to all allocator types. This class is a C++03-compatible implementation of std::allocator_traits

    -

    +

    allocator_traits public types

    @@ -123,17 +123,17 @@
  • -typedef see_documentation propagate_on_container_copy_assignment;

    +typedef see_documentation propagate_on_container_copy_assignment;

    Allocator::propagate_on_container_copy_assignment if such a type exists, otherwise a type with an internal constant static boolean member value == false.

  • -typedef see_documentation propagate_on_container_move_assignment;

    +typedef see_documentation propagate_on_container_move_assignment;

    Allocator::propagate_on_container_move_assignment if such a type exists, otherwise a type with an internal constant static boolean member value == false.

  • -typedef see_documentation propagate_on_container_swap;

    +typedef see_documentation propagate_on_container_swap;

    Allocator::propagate_on_container_swap if such a type exists, otherwise a type with an internal constant static boolean member value == false.

  • @@ -160,45 +160,45 @@
  • -

    -allocator_traits public static functions

    +

    +allocator_traits public static functions

    1. -
      static pointer allocate(Allocator & a, size_type n);
      +
      static pointer allocate(Allocator & a, size_type n);

      Returns: a.allocate(n)

    2. -
      static void deallocate(Allocator & a, pointer p, size_type n);
      +
      static void deallocate(Allocator & a, pointer p, size_type n);

      Returns: a.deallocate(p, n)

      Throws: Nothing

    3. -
      static pointer allocate(Allocator & a, size_type n, const_void_pointer p);
      +
      static pointer allocate(Allocator & a, size_type n, const_void_pointer p);

      Effects: calls a.allocate(n, p) if that call is well-formed; otherwise, invokes a.allocate(n)

    4. -
      template<typename T> static void destroy(Allocator & a, T * p) noexcept;
      +
      template<typename T> static void destroy(Allocator & a, T * p) noexcept;

      Effects: calls a.destroy(p) if that call is well-formed; otherwise, invokes p->~T().

    5. -
      static size_type max_size(const Allocator & a) noexcept;
      +
      static size_type max_size(const Allocator & a) noexcept;

      Returns: a.max_size() if that expression is well-formed; otherwise, numeric_limits<size_type>::max().

    6. -
      static Allocator select_on_container_copy_construction(const Allocator & a);
      +
      static Allocator select_on_container_copy_construction(const Allocator & a);

      Returns: a.select_on_container_copy_construction() if that expression is well-formed; otherwise, a.

    7. template<typename T, class... Args> 
      -  static void construct(Allocator & a, T * p, Args &&... args);
      + static void construct(Allocator & a, T * p, Args &&... args);

      Effects: calls a.construct(p, std::forward<Args>(args)...) if that call is well-formed; otherwise, invokes placement new (static_cast<void*>(p)) T(std::forward<Args>(args)...)

    8. -
      static bool storage_is_unpropagable(const Allocator & a, pointer p) noexcept;
      +
      static bool storage_is_unpropagable(const Allocator & a, pointer p) noexcept;

      Returns: a.storage_is_unpropagable(p) if is_partially_propagable::value is true; otherwise, false.

    9. -
      static bool equal(const Allocator & a, const Allocator & b) noexcept;
      +
      static bool equal(const Allocator & a, const Allocator & b) noexcept;

      Returns: true if is_always_equal::value == true, otherwise, a == b.

    @@ -207,7 +207,8 @@
    -

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -39,13 +39,14 @@ typedef see_documentation type; };
    -

    Description

    +

    Description

    Non-standard extension: Portable allocator rebind for C++03 and C++11 compilers. type is an allocator related to Allocator deduced deduced by rules explained in rebind_alloc.

    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/container/basic_string.html b/doc/html/boost/container/basic_string.html index d43ed7600d..0a8a57f20d 100644 --- a/doc/html/boost/container/basic_string.html +++ b/doc/html/boost/container/basic_string.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -34,7 +34,7 @@ template<typename CharT, typename Traits = std::char_traits<CharT>, typename Allocator = new_allocator<CharT> > -class basic_string { +class basic_string : private dtl::basic_string_base< Allocator > { public: // types typedef Traits traits_type; @@ -53,214 +53,214 @@ typedef implementation_defined const_reverse_iterator; // construct/copy/destruct - basic_string() noexcept(container_detail::is_nothrow_default_constructible< Allocator >::value)); - explicit basic_string(const allocator_type &) noexcept; - basic_string(const basic_string &); + basic_string() noexcept(dtl::is_nothrow_default_constructible< Allocator >::value)); + explicit basic_string(const allocator_type &) noexcept; + basic_string(const basic_string &); template<template< class, class > class BasicStringView> - explicit basic_string(BasicStringView< CharT, Traits >, + explicit basic_string(BasicStringView< CharT, Traits >, const Allocator & = Allocator()); - basic_string(basic_string &&) noexcept; - basic_string(const basic_string &, const allocator_type &); - basic_string(basic_string &&, const allocator_type &); - basic_string(const basic_string &, size_type, size_type = npos); - basic_string(const basic_string &, size_type, size_type, + basic_string(basic_string &&) noexcept; + basic_string(const basic_string &, const allocator_type &); + basic_string(basic_string &&, const allocator_type &); + basic_string(const basic_string &, size_type, size_type = npos); + basic_string(const basic_string &, size_type, size_type, const allocator_type &); - basic_string(const CharT *, size_type); - basic_string(const CharT *, size_type, const allocator_type &); - basic_string(const CharT *); - basic_string(const CharT *, const allocator_type &); - basic_string(size_type, CharT); - basic_string(size_type, CharT, const allocator_type &); - basic_string(size_type, default_init_t); - basic_string(size_type, default_init_t, const allocator_type &); - template<typename InputIterator> basic_string(InputIterator, InputIterator); + basic_string(const CharT *, size_type); + basic_string(const CharT *, size_type, const allocator_type &); + basic_string(const CharT *); + basic_string(const CharT *, const allocator_type &); + basic_string(size_type, CharT); + basic_string(size_type, CharT, const allocator_type &); + basic_string(size_type, default_init_t); + basic_string(size_type, default_init_t, const allocator_type &); + template<typename InputIterator> basic_string(InputIterator, InputIterator); template<typename InputIterator> - basic_string(InputIterator, InputIterator, const allocator_type &); - basic_string(std::initializer_list< value_type >, + basic_string(InputIterator, InputIterator, const allocator_type &); + basic_string(std::initializer_list< value_type >, const allocator_type & = allocator_type()); - basic_string & operator=(const basic_string &); + basic_string & operator=(const basic_string &); basic_string & - operator=(basic_string &&) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)); - basic_string & operator=(const CharT *); - basic_string & operator=(CharT); + operator=(basic_string &&) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)); + basic_string & operator=(const CharT *); + basic_string & operator=(CharT); template<template< class, class > class BasicStringView> - basic_string & operator=(BasicStringView< CharT, Traits >); - basic_string & operator=(std::initializer_list< CharT >); - ~basic_string(); + basic_string & operator=(BasicStringView< CharT, Traits >); + basic_string & operator=(std::initializer_list< CharT >); + ~basic_string(); - // public member functions - allocator_type get_allocator() const noexcept; - stored_allocator_type & get_stored_allocator() noexcept; - const stored_allocator_type & get_stored_allocator() const noexcept; - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - reverse_iterator rbegin() noexcept; - const_reverse_iterator rbegin() const noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rend() const noexcept; - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - const_reverse_iterator crbegin() const noexcept; - const_reverse_iterator crend() const noexcept; - bool empty() const noexcept; - size_type size() const noexcept; - size_type length() const noexcept; - size_type max_size() const noexcept; - void resize(size_type, CharT); - void resize(size_type); - void resize(size_type, default_init_t); - size_type capacity() const noexcept; - void reserve(size_type); - void shrink_to_fit(); - reference front() noexcept; - const_reference front() const noexcept; - reference back() noexcept; - const_reference back() const noexcept; - reference operator[](size_type) noexcept; - const_reference operator[](size_type) const noexcept; - reference at(size_type); - const_reference at(size_type) const; - basic_string & operator+=(const basic_string &); + // public member functions + allocator_type get_allocator() const noexcept; + stored_allocator_type & get_stored_allocator() noexcept; + const stored_allocator_type & get_stored_allocator() const noexcept; + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; + reverse_iterator rbegin() noexcept; + const_reverse_iterator rbegin() const noexcept; + reverse_iterator rend() noexcept; + const_reverse_iterator rend() const noexcept; + const_iterator cbegin() const noexcept; + const_iterator cend() const noexcept; + const_reverse_iterator crbegin() const noexcept; + const_reverse_iterator crend() const noexcept; + bool empty() const noexcept; + size_type size() const noexcept; + size_type length() const noexcept; + size_type max_size() const noexcept; + void resize(size_type, CharT); + void resize(size_type); + void resize(size_type, default_init_t); + size_type capacity() const noexcept; + void reserve(size_type); + void shrink_to_fit(); + reference front() noexcept; + const_reference front() const noexcept; + reference back() noexcept; + const_reference back() const noexcept; + reference operator[](size_type) noexcept; + const_reference operator[](size_type) const noexcept; + reference at(size_type); + const_reference at(size_type) const; + basic_string & operator+=(const basic_string &); template<template< class, class > class BasicStringView> - basic_string & operator+=(BasicStringView< CharT, Traits >); - basic_string & operator+=(const CharT *); - basic_string & operator+=(CharT); - basic_string & operator+=(std::initializer_list< CharT >); - basic_string & append(const basic_string &); + basic_string & operator+=(BasicStringView< CharT, Traits >); + basic_string & operator+=(const CharT *); + basic_string & operator+=(CharT); + basic_string & operator+=(std::initializer_list< CharT >); + basic_string & append(const basic_string &); template<template< class, class > class BasicStringView> - basic_string & append(BasicStringView< CharT, Traits >); - basic_string & append(const basic_string &, size_type, size_type = npos); - basic_string & append(const CharT *, size_type); - basic_string & append(const CharT *); - basic_string & append(size_type, CharT); - template<typename InputIter> basic_string & append(InputIter, InputIter); - basic_string & append(std::initializer_list< CharT >); - void push_back(CharT); - basic_string & assign(const basic_string &); + basic_string & append(BasicStringView< CharT, Traits >); + basic_string & append(const basic_string &, size_type, size_type = npos); + basic_string & append(const CharT *, size_type); + basic_string & append(const CharT *); + basic_string & append(size_type, CharT); + template<typename InputIter> basic_string & append(InputIter, InputIter); + basic_string & append(std::initializer_list< CharT >); + void push_back(CharT); + basic_string & assign(const basic_string &); template<template< class, class > class BasicStringView> - basic_string & assign(BasicStringView< CharT, Traits >); - basic_string & assign(basic_string &&) noexcept; - basic_string & assign(const basic_string &, size_type, size_type); - basic_string & assign(const CharT *, size_type); - basic_string & assign(const CharT *); - basic_string & assign(size_type, CharT); - basic_string & assign(const CharT *, const CharT *); - template<typename InputIter> basic_string & assign(InputIter, InputIter); - basic_string & assign(std::initializer_list< CharT >); - basic_string & insert(size_type, const basic_string &); + basic_string & assign(BasicStringView< CharT, Traits >); + basic_string & assign(basic_string &&) noexcept; + basic_string & assign(const basic_string &, size_type, size_type); + basic_string & assign(const CharT *, size_type); + basic_string & assign(const CharT *); + basic_string & assign(size_type, CharT); + basic_string & assign(const CharT *, const CharT *); + template<typename InputIter> basic_string & assign(InputIter, InputIter); + basic_string & assign(std::initializer_list< CharT >); + basic_string & insert(size_type, const basic_string &); basic_string & - insert(size_type, const basic_string &, size_type, size_type = npos); - basic_string & insert(size_type, const CharT *, size_type); - basic_string & insert(size_type, const CharT *); - basic_string & insert(size_type, size_type, CharT); + insert(size_type, const basic_string &, size_type, size_type = npos); + basic_string & insert(size_type, const CharT *, size_type); + basic_string & insert(size_type, const CharT *); + basic_string & insert(size_type, size_type, CharT); template<template< class, class > class BasicStringView> - basic_string & insert(size_type, BasicStringView< CharT, Traits >); - iterator insert(const_iterator, CharT); - iterator insert(const_iterator, size_type, CharT); + basic_string & insert(size_type, BasicStringView< CharT, Traits >); + iterator insert(const_iterator, CharT); + iterator insert(const_iterator, size_type, CharT); template<typename InputIter> - iterator insert(const_iterator, InputIter, InputIter); - iterator insert(const_iterator, std::initializer_list< CharT >); - void pop_back() noexcept; - basic_string & erase(size_type = 0, size_type = npos); - iterator erase(const_iterator) noexcept; - iterator erase(const_iterator, const_iterator) noexcept; - void clear() noexcept; - basic_string & replace(size_type, size_type, const basic_string &); + iterator insert(const_iterator, InputIter, InputIter); + iterator insert(const_iterator, std::initializer_list< CharT >); + void pop_back() noexcept; + basic_string & erase(size_type = 0, size_type = npos); + iterator erase(const_iterator) noexcept; + iterator erase(const_iterator, const_iterator) noexcept; + void clear() noexcept; + basic_string & replace(size_type, size_type, const basic_string &); template<template< class, class > class BasicStringView> basic_string & - replace(size_type, size_type, BasicStringView< CharT, Traits >); + replace(size_type, size_type, BasicStringView< CharT, Traits >); basic_string & - replace(size_type, size_type, const basic_string &, size_type, + replace(size_type, size_type, const basic_string &, size_type, size_type = npos); template<template< class, class > class BasicStringView> basic_string & - replace(size_type, size_type, BasicStringView< CharT, Traits >, size_type, + replace(size_type, size_type, BasicStringView< CharT, Traits >, size_type, size_type = npos); - basic_string & replace(size_type, size_type, const CharT *, size_type); - basic_string & replace(size_type, size_type, const CharT *); - basic_string & replace(size_type, size_type, size_type, CharT); - basic_string & replace(const_iterator, const_iterator, const basic_string &); + basic_string & replace(size_type, size_type, const CharT *, size_type); + basic_string & replace(size_type, size_type, const CharT *); + basic_string & replace(size_type, size_type, size_type, CharT); + basic_string & replace(const_iterator, const_iterator, const basic_string &); basic_string & - replace(const_iterator, const_iterator, const CharT *, size_type); - basic_string & replace(const_iterator, const_iterator, const CharT *); - basic_string & replace(const_iterator, const_iterator, size_type, CharT); + replace(const_iterator, const_iterator, const CharT *, size_type); + basic_string & replace(const_iterator, const_iterator, const CharT *); + basic_string & replace(const_iterator, const_iterator, size_type, CharT); template<typename InputIter> basic_string & - replace(const_iterator, const_iterator, InputIter, InputIter); + replace(const_iterator, const_iterator, InputIter, InputIter); template<template< class, class > class BasicStringView> basic_string & - replace(const_iterator, const_iterator, BasicStringView< CharT, Traits >); + replace(const_iterator, const_iterator, BasicStringView< CharT, Traits >); basic_string & - replace(const_iterator, const_iterator, std::initializer_list< CharT >); - size_type copy(CharT *, size_type, size_type = 0) const; - void swap(basic_string &) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value)); - const CharT * c_str() const noexcept; - const CharT * data() const noexcept; - CharT * data() noexcept; + replace(const_iterator, const_iterator, std::initializer_list< CharT >); + size_type copy(CharT *, size_type, size_type = 0) const; + void swap(basic_string &) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value)); + const CharT * c_str() const noexcept; + const CharT * data() const noexcept; + CharT * data() noexcept; template<template< class, class > class BasicStringView> - operator BasicStringView< CharT, Traits >() const noexcept; - template<typename BasicStringView> BasicStringView to_view() const noexcept; - size_type find(const basic_string &, size_type = 0) const; + operator BasicStringView< CharT, Traits >() const noexcept; + template<typename BasicStringView> BasicStringView to_view() const noexcept; + size_type find(const basic_string &, size_type = 0) const; template<template< class, class > class BasicStringView> - size_type find(BasicStringView< CharT, Traits >, size_type = 0) const; - size_type find(const CharT *, size_type, size_type) const; - size_type find(const CharT *, size_type = 0) const; - size_type find(CharT, size_type = 0) const; - size_type rfind(const basic_string &, size_type = npos) const; + size_type find(BasicStringView< CharT, Traits >, size_type = 0) const; + size_type find(const CharT *, size_type, size_type) const; + size_type find(const CharT *, size_type = 0) const; + size_type find(CharT, size_type = 0) const; + size_type rfind(const basic_string &, size_type = npos) const; template<template< class, class > class BasicStringView> - size_type rfind(BasicStringView< CharT, Traits >, size_type = npos) const; - size_type rfind(const CharT *, size_type, size_type) const; - size_type rfind(const CharT *, size_type = npos) const; - size_type rfind(CharT, size_type = npos) const; - size_type find_first_of(const basic_string &, size_type = 0) const; + size_type rfind(BasicStringView< CharT, Traits >, size_type = npos) const; + size_type rfind(const CharT *, size_type, size_type) const; + size_type rfind(const CharT *, size_type = npos) const; + size_type rfind(CharT, size_type = npos) const; + size_type find_first_of(const basic_string &, size_type = 0) const; template<template< class, class > class BasicStringView> - size_type find_first_of(BasicStringView< CharT, Traits >, size_type = 0) const; - size_type find_first_of(const CharT *, size_type, size_type) const; - size_type find_first_of(const CharT *, size_type = 0) const; - size_type find_first_of(CharT, size_type = 0) const; - size_type find_last_of(const basic_string &, size_type = npos) const; + size_type find_first_of(BasicStringView< CharT, Traits >, size_type = 0) const; + size_type find_first_of(const CharT *, size_type, size_type) const; + size_type find_first_of(const CharT *, size_type = 0) const; + size_type find_first_of(CharT, size_type = 0) const; + size_type find_last_of(const basic_string &, size_type = npos) const; template<template< class, class > class BasicStringView> - size_type find_last_of(BasicStringView< CharT, Traits >, size_type = npos) const; - size_type find_last_of(const CharT *, size_type, size_type) const; - size_type find_last_of(const CharT *, size_type = npos) const; - size_type find_last_of(CharT, size_type = npos) const; - size_type find_first_not_of(const basic_string &, size_type = 0) const; + size_type find_last_of(BasicStringView< CharT, Traits >, size_type = npos) const; + size_type find_last_of(const CharT *, size_type, size_type) const; + size_type find_last_of(const CharT *, size_type = npos) const; + size_type find_last_of(CharT, size_type = npos) const; + size_type find_first_not_of(const basic_string &, size_type = 0) const; template<template< class, class > class BasicStringView> - size_type find_first_not_of(BasicStringView< CharT, Traits >, + size_type find_first_not_of(BasicStringView< CharT, Traits >, size_type = 0) const; - size_type find_first_not_of(const CharT *, size_type, size_type) const; - size_type find_first_not_of(const CharT *, size_type = 0) const; - size_type find_first_not_of(CharT, size_type = 0) const; - size_type find_last_not_of(const basic_string &, size_type = npos) const; + size_type find_first_not_of(const CharT *, size_type, size_type) const; + size_type find_first_not_of(const CharT *, size_type = 0) const; + size_type find_first_not_of(CharT, size_type = 0) const; + size_type find_last_not_of(const basic_string &, size_type = npos) const; template<template< class, class > class BasicStringView> - size_type find_last_not_of(BasicStringView< CharT, Traits >, + size_type find_last_not_of(BasicStringView< CharT, Traits >, size_type = npos) const; - size_type find_last_not_of(const CharT *, size_type, size_type) const; - size_type find_last_not_of(const CharT *, size_type = npos) const; - size_type find_last_not_of(CharT, size_type = npos) const; - basic_string substr(size_type = 0, size_type = npos) const; - int compare(const basic_string &) const; + size_type find_last_not_of(const CharT *, size_type, size_type) const; + size_type find_last_not_of(const CharT *, size_type = npos) const; + size_type find_last_not_of(CharT, size_type = npos) const; + basic_string substr(size_type = 0, size_type = npos) const; + int compare(const basic_string &) const; template<template< class, class > class BasicStringView> - int compare(BasicStringView< CharT, Traits >) const; - int compare(size_type, size_type, const basic_string &) const; + int compare(BasicStringView< CharT, Traits >) const; + int compare(size_type, size_type, const basic_string &) const; template<template< class, class > class BasicStringView> - int compare(size_type, size_type, BasicStringView< CharT, Traits >) const; - int compare(size_type, size_type, const basic_string &, size_type, + int compare(size_type, size_type, BasicStringView< CharT, Traits >) const; + int compare(size_type, size_type, const basic_string &, size_type, size_type = npos) const; template<template< class, class > class BasicStringView> - int compare(size_type, size_type, BasicStringView< CharT, Traits >, + int compare(size_type, size_type, BasicStringView< CharT, Traits >, size_type, size_type) const; - int compare(const CharT *) const; - int compare(size_type, size_type, const CharT *, size_type) const; - int compare(size_type, size_type, const CharT *) const; + int compare(const CharT *) const; + int compare(size_type, size_type, const CharT *, size_type) const; + int compare(size_type, size_type, const CharT *) const; // public data members static const size_type npos; };
    -

    Description

    +

    Description

    The basic_string class represents a Sequence of characters. It contains all the usual operations of a Sequence, and, additionally, it contains standard string operations such as search and concatenation.

    The basic_string class is parameterized by character type, and by that type's Character Traits.

    This class has performance characteristics very much like vector<>, meaning, for example, that it does not perform reference-count or copy-on-write, and that concatenation of two strings is an O(N) operation.

    @@ -270,7 +270,7 @@

    -

    Template Parameters

    +

    Template Parameters

    1. typename CharT
      @@ -287,140 +287,140 @@
    -

    +

    basic_string public construct/copy/destruct

    1. -
      basic_string() noexcept(container_detail::is_nothrow_default_constructible< Allocator >::value));
      +
      basic_string() noexcept(dtl::is_nothrow_default_constructible< Allocator >::value));

      Effects: Default constructs a basic_string.

      Throws: If allocator_type's default constructor throws.

    2. -
      explicit basic_string(const allocator_type & a) noexcept;
      +
      explicit basic_string(const allocator_type & a) noexcept;

      Effects: Constructs a basic_string taking the allocator as parameter.

      Throws: Nothing

    3. -
      basic_string(const basic_string & s);
      +
      basic_string(const basic_string & s);

      Effects: Copy constructs a basic_string.

      Postcondition: x == *this.

      Throws: If allocator_type's default constructor or allocation throws.

    4. template<template< class, class > class BasicStringView> 
      -  explicit basic_string(BasicStringView< CharT, Traits > sv, 
      +  explicit basic_string(BasicStringView< CharT, Traits > sv, 
                               const Allocator & a = Allocator());

      Effects: Same as basic_string(sv.data(), sv.size(), a).

      Throws: If allocator_type's default constructor or allocation throws.

    5. -
      basic_string(basic_string && s) noexcept;
      +
      basic_string(basic_string && s) noexcept;

      Effects: Move constructor. Moves s's resources to *this.

      Throws: Nothing.

      Complexity: Constant.

    6. -
      basic_string(const basic_string & s, const allocator_type & a);
      +
      basic_string(const basic_string & s, const allocator_type & a);

      Effects: Copy constructs a basic_string using the specified allocator.

      Postcondition: x == *this.

      Throws: If allocation throws.

    7. -
      basic_string(basic_string && s, const allocator_type & a);
      +
      basic_string(basic_string && s, const allocator_type & a);

      Effects: Move constructor using the specified allocator. Moves s's resources to *this.

      Throws: If allocation throws.

      Complexity: Constant if a == s.get_allocator(), linear otherwise.

    8. -
      basic_string(const basic_string & s, size_type pos, size_type n = npos);
      +
      basic_string(const basic_string & s, size_type pos, size_type n = npos);

      Effects: Constructs a basic_string with a default-constructed allocator, and is initialized by a specific number of characters of the s string.

    9. -
      basic_string(const basic_string & s, size_type pos, size_type n, 
      +
      basic_string(const basic_string & s, size_type pos, size_type n, 
                    const allocator_type & a);

      Effects: Constructs a basic_string taking the allocator as parameter, and is initialized by a specific number of characters of the s string.

    10. -
      basic_string(const CharT * s, size_type n);
      +
      basic_string(const CharT * s, size_type n);

      Effects: Constructs a basic_string taking a default-constructed allocator, and is initialized by a specific number of characters of the s c-string.

    11. -
      basic_string(const CharT * s, size_type n, const allocator_type & a);
      +
      basic_string(const CharT * s, size_type n, const allocator_type & a);

      Effects: Constructs a basic_string taking the allocator as parameter, and is initialized by a specific number of characters of the s c-string.

    12. -
      basic_string(const CharT * s);
      +
      basic_string(const CharT * s);

      Effects: Constructs a basic_string with a default-constructed allocator, and is initialized by the null-terminated s c-string.

    13. -
      basic_string(const CharT * s, const allocator_type & a);
      +
      basic_string(const CharT * s, const allocator_type & a);

      Effects: Constructs a basic_string taking the allocator as parameter, and is initialized by the null-terminated s c-string.

    14. -
      basic_string(size_type n, CharT c);
      +
      basic_string(size_type n, CharT c);

      Effects: Constructs a basic_string with a default-constructed allocator, and is initialized by n copies of c.

    15. -
      basic_string(size_type n, CharT c, const allocator_type & a);
      +
      basic_string(size_type n, CharT c, const allocator_type & a);

      Effects: Constructs a basic_string taking the allocator as parameter, and is initialized by n copies of c.

    16. -
      basic_string(size_type n, default_init_t);
      +
      basic_string(size_type n, default_init_t);

      Effects: Constructs a basic_string with a default-constructed allocator, and is initialized by n default-initialized characters.

    17. -
      basic_string(size_type n, default_init_t, const allocator_type & a);
      +
      basic_string(size_type n, default_init_t, const allocator_type & a);

      Effects: Constructs a basic_string taking the allocator as parameter, and is initialized by n default-initialized characters.

    18. template<typename InputIterator> 
      -  basic_string(InputIterator f, InputIterator l);
      + basic_string(InputIterator f, InputIterator l);

      Effects: Constructs a basic_string with a default-constructed allocator, and a range of iterators.

    19. template<typename InputIterator> 
      -  basic_string(InputIterator f, InputIterator l, const allocator_type & a);
      + basic_string(InputIterator f, InputIterator l, const allocator_type & a);

      Effects: Constructs a basic_string taking the allocator as parameter, and a range of iterators.

    20. -
      basic_string(std::initializer_list< value_type > il, 
      +
      basic_string(std::initializer_list< value_type > il, 
                    const allocator_type & a = allocator_type());

      Effects: Same as basic_string(il.begin(), il.end(), a).

    21. -
      basic_string & operator=(const basic_string & x);
      +
      basic_string & operator=(const basic_string & x);

      Effects: Copy constructs a string.

      Postcondition: x == *this.

      Complexity: Linear to the elements x contains.

    22. basic_string & 
      -operator=(basic_string && x) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value));
      +operator=(basic_string && x) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value));

      Effects: Move constructor. Moves x's resources to *this.

      Throws: If allocator_traits_type::propagate_on_container_move_assignment is false and allocation throws

      Complexity: Constant if allocator_traits_type:: propagate_on_container_move_assignment is true or this->get>allocator() == x.get_allocator(). Linear otherwise.

    23. -
      basic_string & operator=(const CharT * s);
      +
      basic_string & operator=(const CharT * s);

      Effects: Assignment from a null-terminated c-string.

    24. -
      basic_string & operator=(CharT c);
      +
      basic_string & operator=(CharT c);

      Effects: Returns *this = basic_string(1, c).

    25. template<template< class, class > class BasicStringView> 
      -  basic_string & operator=(BasicStringView< CharT, Traits > sv);
      + basic_string & operator=(BasicStringView< CharT, Traits > sv);

      Effects: Equivalent to return assign(sv).

    26. -
      basic_string & operator=(std::initializer_list< CharT > il);
      +
      basic_string & operator=(std::initializer_list< CharT > il);

      Effects: Returns *this = basic_string(il);

    27. -
      ~basic_string();
      +
      ~basic_string();

      Effects: Destroys the basic_string. All used memory is deallocated.

      Throws: Nothing.

      Complexity: Constant.

      @@ -428,350 +428,350 @@
    -

    -basic_string public member functions

    +

    +basic_string public member functions

    1. -
      allocator_type get_allocator() const noexcept;
      +
      allocator_type get_allocator() const noexcept;

      Effects: Returns a copy of the internal allocator.

      Throws: If allocator's copy constructor throws.

      Complexity: Constant.

    2. -
      stored_allocator_type & get_stored_allocator() noexcept;
      +
      stored_allocator_type & get_stored_allocator() noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    3. -
      const stored_allocator_type & get_stored_allocator() const noexcept;
      +
      const stored_allocator_type & get_stored_allocator() const noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    4. -
      iterator begin() noexcept;
      +
      iterator begin() noexcept;

      Effects: Returns an iterator to the first element contained in the vector.

      Throws: Nothing.

      Complexity: Constant.

    5. -
      const_iterator begin() const noexcept;
      +
      const_iterator begin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the vector.

      Throws: Nothing.

      Complexity: Constant.

    6. -
      iterator end() noexcept;
      +
      iterator end() noexcept;

      Effects: Returns an iterator to the end of the vector.

      Throws: Nothing.

      Complexity: Constant.

    7. -
      const_iterator end() const noexcept;
      +
      const_iterator end() const noexcept;

      Effects: Returns a const_iterator to the end of the vector.

      Throws: Nothing.

      Complexity: Constant.

    8. -
      reverse_iterator rbegin() noexcept;
      +
      reverse_iterator rbegin() noexcept;

      Effects: Returns a reverse_iterator pointing to the beginning of the reversed vector.

      Throws: Nothing.

      Complexity: Constant.

    9. -
      const_reverse_iterator rbegin() const noexcept;
      +
      const_reverse_iterator rbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed vector.

      Throws: Nothing.

      Complexity: Constant.

    10. -
      reverse_iterator rend() noexcept;
      +
      reverse_iterator rend() noexcept;

      Effects: Returns a reverse_iterator pointing to the end of the reversed vector.

      Throws: Nothing.

      Complexity: Constant.

    11. -
      const_reverse_iterator rend() const noexcept;
      +
      const_reverse_iterator rend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed vector.

      Throws: Nothing.

      Complexity: Constant.

    12. -
      const_iterator cbegin() const noexcept;
      +
      const_iterator cbegin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the vector.

      Throws: Nothing.

      Complexity: Constant.

    13. -
      const_iterator cend() const noexcept;
      +
      const_iterator cend() const noexcept;

      Effects: Returns a const_iterator to the end of the vector.

      Throws: Nothing.

      Complexity: Constant.

    14. -
      const_reverse_iterator crbegin() const noexcept;
      +
      const_reverse_iterator crbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed vector.

      Throws: Nothing.

      Complexity: Constant.

    15. -
      const_reverse_iterator crend() const noexcept;
      +
      const_reverse_iterator crend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed vector.

      Throws: Nothing.

      Complexity: Constant.

    16. -
      bool empty() const noexcept;
      +
      bool empty() const noexcept;

      Effects: Returns true if the vector contains no elements.

      Throws: Nothing.

      Complexity: Constant.

    17. -
      size_type size() const noexcept;
      +
      size_type size() const noexcept;

      Effects: Returns the number of the elements contained in the vector.

      Throws: Nothing.

      Complexity: Constant.

    18. -
      size_type length() const noexcept;
      +
      size_type length() const noexcept;

      Effects: Returns the number of the elements contained in the vector.

      Throws: Nothing.

      Complexity: Constant.

    19. -
      size_type max_size() const noexcept;
      +
      size_type max_size() const noexcept;

      Effects: Returns the largest possible size of the vector.

      Throws: Nothing.

      Complexity: Constant.

    20. -
      void resize(size_type n, CharT c);
      +
      void resize(size_type n, CharT c);

      Effects: Inserts or erases elements at the end such that the size becomes n. New elements are copy constructed from x.

      Throws: If memory allocation throws

      Complexity: Linear to the difference between size() and new_size.

    21. -
      void resize(size_type n);
      +
      void resize(size_type n);

      Effects: Inserts or erases elements at the end such that the size becomes n. New elements are value initialized.

      Throws: If memory allocation throws

      Complexity: Linear to the difference between size() and new_size.

    22. -
      void resize(size_type n, default_init_t);
      +
      void resize(size_type n, default_init_t);

      Effects: Inserts or erases elements at the end such that the size becomes n. New elements are uninitialized.

      Throws: If memory allocation throws

      Complexity: Linear to the difference between size() and new_size.

      Note: Non-standard extension

    23. -
      size_type capacity() const noexcept;
      +
      size_type capacity() const noexcept;

      Effects: Number of elements for which memory has been allocated. capacity() is always greater than or equal to size().

      Throws: Nothing.

      Complexity: Constant.

    24. -
      void reserve(size_type res_arg);
      +
      void reserve(size_type res_arg);

      Effects: If n is less than or equal to capacity(), this call has no effect. Otherwise, it is a request for allocation of additional memory. If the request is successful, then capacity() is greater than or equal to n; otherwise, capacity() is unchanged. In either case, size() is unchanged.

      Throws: If memory allocation allocation throws

    25. -
      void shrink_to_fit();
      +
      void shrink_to_fit();

      Effects: Tries to deallocate the excess of memory created with previous allocations. The size of the string is unchanged

      Throws: Nothing

      Complexity: Linear to size().

    26. -
      reference front() noexcept;
      +
      reference front() noexcept;

      Requires: !empty()

      Effects: Returns a reference to the first element of the container.

      Throws: Nothing.

      Complexity: Constant.

    27. -
      const_reference front() const noexcept;
      +
      const_reference front() const noexcept;

      Requires: !empty()

      Effects: Returns a const reference to the first element of the container.

      Throws: Nothing.

      Complexity: Constant.

    28. -
      reference back() noexcept;
      +
      reference back() noexcept;

      Requires: !empty()

      Effects: Returns a reference to the last element of the container.

      Throws: Nothing.

      Complexity: Constant.

    29. -
      const_reference back() const noexcept;
      +
      const_reference back() const noexcept;

      Requires: !empty()

      Effects: Returns a const reference to the last element of the container.

      Throws: Nothing.

      Complexity: Constant.

    30. -
      reference operator[](size_type n) noexcept;
      +
      reference operator[](size_type n) noexcept;

      Requires: size() > n.

      Effects: Returns a reference to the nth element from the beginning of the container.

      Throws: Nothing.

      Complexity: Constant.

    31. -
      const_reference operator[](size_type n) const noexcept;
      +
      const_reference operator[](size_type n) const noexcept;

      Requires: size() > n.

      Effects: Returns a const reference to the nth element from the beginning of the container.

      Throws: Nothing.

      Complexity: Constant.

    32. -
      reference at(size_type n);
      +
      reference at(size_type n);

      Requires: size() > n.

      Effects: Returns a reference to the nth element from the beginning of the container.

      Throws: std::range_error if n >= size()

      Complexity: Constant.

    33. -
      const_reference at(size_type n) const;
      +
      const_reference at(size_type n) const;

      Requires: size() > n.

      Effects: Returns a const reference to the nth element from the beginning of the container.

      Throws: std::range_error if n >= size()

      Complexity: Constant.

    34. -
      basic_string & operator+=(const basic_string & s);
      +
      basic_string & operator+=(const basic_string & s);

      Effects: Calls append(str.data, str.size()).

      Returns: *this

    35. template<template< class, class > class BasicStringView> 
      -  basic_string & operator+=(BasicStringView< CharT, Traits > sv);
      + basic_string & operator+=(BasicStringView< CharT, Traits > sv);

      Effects: Same as return append(sv).

    36. -
      basic_string & operator+=(const CharT * s);
      +
      basic_string & operator+=(const CharT * s);

      Effects: Calls append(s).

      Returns: *this

    37. -
      basic_string & operator+=(CharT c);
      +
      basic_string & operator+=(CharT c);

      Effects: Calls append(1, c).

      Returns: *this

    38. -
      basic_string & operator+=(std::initializer_list< CharT > il);
      +
      basic_string & operator+=(std::initializer_list< CharT > il);

      Effects: Returns append(il)

    39. -
      basic_string & append(const basic_string & s);
      +
      basic_string & append(const basic_string & s);

      Effects: Calls append(str.data(), str.size()).

      Returns: *this

    40. template<template< class, class > class BasicStringView> 
      -  basic_string & append(BasicStringView< CharT, Traits > sv);
      + basic_string & append(BasicStringView< CharT, Traits > sv);

      Effects: Same as return append(sv.data(), sv.size()).

    41. basic_string & 
      -append(const basic_string & s, size_type pos, size_type n = npos);
      +append(const basic_string & s, size_type pos, size_type n = npos);

      Requires: pos <= str.size()

      Effects: Determines the effective length rlen of the string to append as the smaller of n and str.size() - pos and calls append(str.data() + pos, rlen).

      Throws: If memory allocation throws and out_of_range if pos > str.size()

      Returns: *this

    42. -
      basic_string & append(const CharT * s, size_type n);
      +
      basic_string & append(const CharT * s, size_type n);

      Requires: s points to an array of at least n elements of CharT.

      Effects: The function replaces the string controlled by *this with a string of length size() + n whose irst size() elements are a copy of the original string controlled by *this and whose remaining elements are a copy of the initial n elements of s.

      Throws: If memory allocation throws length_error if size() + n > max_size().

      Returns: *this

    43. -
      basic_string & append(const CharT * s);
      +
      basic_string & append(const CharT * s);

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Effects: Calls append(s, traits::length(s)).

      Returns: *this

    44. -
      basic_string & append(size_type n, CharT c);
      +
      basic_string & append(size_type n, CharT c);

      Effects: Equivalent to append(basic_string(n, c)).

      Returns: *this

    45. template<typename InputIter> 
      -  basic_string & append(InputIter first, InputIter last);
      + basic_string & append(InputIter first, InputIter last);

      Requires: [first,last) is a valid range.

      Effects: Equivalent to append(basic_string(first, last)).

      Returns: *this

    46. -
      basic_string & append(std::initializer_list< CharT > il);
      +
      basic_string & append(std::initializer_list< CharT > il);

      Effects: Returns append(il.begin(), il.size()).

    47. -
      void push_back(CharT c);
      +
      void push_back(CharT c);

      Effects: Equivalent to append(static_cast<size_type>(1), c).

    48. -
      basic_string & assign(const basic_string & s);
      +
      basic_string & assign(const basic_string & s);

      Effects: Equivalent to assign(str, 0, npos).

      Returns: *this

    49. template<template< class, class > class BasicStringView> 
      -  basic_string & assign(BasicStringView< CharT, Traits > sv);
      + basic_string & assign(BasicStringView< CharT, Traits > sv);

      Effects: Equivalent to return assign(sv.data(), sv.size()).

      Returns: *this

    50. -
      basic_string & assign(basic_string && ms) noexcept;
      +
      basic_string & assign(basic_string && ms) noexcept;

      Effects: The function replaces the string controlled by *this with a string of length str.size() whose elements are a copy of the string controlled by str. Leaves str in a valid but unspecified state.

      Throws: Nothing

      Returns: *this

    51. -
      basic_string & assign(const basic_string & s, size_type pos, size_type n);
      +
      basic_string & assign(const basic_string & s, size_type pos, size_type n);

      Requires: pos <= str.size()

      Effects: Determines the effective length rlen of the string to assign as the smaller of n and str.size() - pos and calls assign(str.data() + pos rlen).

      Throws: If memory allocation throws or out_of_range if pos > str.size().

      Returns: *this

    52. -
      basic_string & assign(const CharT * s, size_type n);
      +
      basic_string & assign(const CharT * s, size_type n);

      Requires: s points to an array of at least n elements of CharT.

      Effects: Replaces the string controlled by *this with a string of length n whose elements are a copy of those pointed to by s.

      Throws: If memory allocation throws or length_error if n > max_size().

      Returns: *this

    53. -
      basic_string & assign(const CharT * s);
      +
      basic_string & assign(const CharT * s);

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Effects: Calls assign(s, traits::length(s)).

      Returns: *this

    54. -
      basic_string & assign(size_type n, CharT c);
      +
      basic_string & assign(size_type n, CharT c);

      Effects: Equivalent to assign(basic_string(n, c)).

      Returns: *this

    55. -
      basic_string & assign(const CharT * first, const CharT * last);
      +
      basic_string & assign(const CharT * first, const CharT * last);

      Effects: Equivalent to assign(basic_string(first, last)). Returns: *this

    56. template<typename InputIter> 
      -  basic_string & assign(InputIter first, InputIter last);
      + basic_string & assign(InputIter first, InputIter last);

      Effects: Equivalent to assign(basic_string(first, last)).

      Returns: *this

    57. -
      basic_string & assign(std::initializer_list< CharT > il);
      +
      basic_string & assign(std::initializer_list< CharT > il);

      Effects: Returns assign(il.begin(), il.size()).

    58. -
      basic_string & insert(size_type pos, const basic_string & s);
      +
      basic_string & insert(size_type pos, const basic_string & s);

      Requires: pos <= size().

      Effects: Calls insert(pos, str.data(), str.size()).

      Throws: If memory allocation throws or out_of_range if pos > size().

      @@ -779,7 +779,7 @@
    59. basic_string & 
      -insert(size_type pos1, const basic_string & s, size_type pos2, 
      +insert(size_type pos1, const basic_string & s, size_type pos2, 
              size_type n = npos);

      Requires: pos1 <= size() and pos2 <= str.size()

      Effects: Determines the effective length rlen of the string to insert as the smaller of n and str.size() - pos2 and calls insert(pos1, str.data() + pos2, rlen).

      @@ -787,88 +787,88 @@

      Returns: *this

    60. -
      basic_string & insert(size_type pos, const CharT * s, size_type n);
      +
      basic_string & insert(size_type pos, const CharT * s, size_type n);

      Requires: s points to an array of at least n elements of CharT and pos <= size().

      Effects: Replaces the string controlled by *this with a string of length size() + n whose first pos elements are a copy of the initial elements of the original string controlled by *this and whose next n elements are a copy of the elements in s and whose remaining elements are a copy of the remaining elements of the original string controlled by *this.

      Throws: If memory allocation throws, out_of_range if pos > size() or length_error if size() + n > max_size().

      Returns: *this

    61. -
      basic_string & insert(size_type pos, const CharT * s);
      +
      basic_string & insert(size_type pos, const CharT * s);

      Requires: pos <= size() and s points to an array of at least traits::length(s) + 1 elements of CharT

      Effects: Calls insert(pos, s, traits::length(s)).

      Throws: If memory allocation throws, out_of_range if pos > size() length_error if size() > max_size() - Traits::length(s)

      Returns: *this

    62. -
      basic_string & insert(size_type pos, size_type n, CharT c);
      +
      basic_string & insert(size_type pos, size_type n, CharT c);

      Effects: Equivalent to insert(pos, basic_string(n, c)).

      Throws: If memory allocation throws, out_of_range if pos > size() length_error if size() > max_size() - n

      Returns: *this

    63. template<template< class, class > class BasicStringView> 
      -  basic_string & insert(size_type pos, BasicStringView< CharT, Traits > sv);
      + basic_string & insert(size_type pos, BasicStringView< CharT, Traits > sv);

      Effects: Same as return insert(pos, sv.data(), sv.size()).

    64. -
      iterator insert(const_iterator p, CharT c);
      +
      iterator insert(const_iterator p, CharT c);

      Requires: p is a valid iterator on *this.

      Effects: inserts a copy of c before the character referred to by p.

      Returns: An iterator which refers to the copy of the inserted character.

    65. -
      iterator insert(const_iterator p, size_type n, CharT c);
      +
      iterator insert(const_iterator p, size_type n, CharT c);

      Requires: p is a valid iterator on *this.

      Effects: Inserts n copies of c before the character referred to by p.

      Returns: an iterator to the first inserted element or p if n is 0.

    66. template<typename InputIter> 
      -  iterator insert(const_iterator p, InputIter first, InputIter last);
      + iterator insert(const_iterator p, InputIter first, InputIter last);

      Requires: p is a valid iterator on *this. [first,last) is a valid range.

      Effects: Equivalent to insert(p - begin(), basic_string(first, last)).

      Returns: an iterator to the first inserted element or p if first == last.

    67. -
      iterator insert(const_iterator p, std::initializer_list< CharT > il);
      +
      iterator insert(const_iterator p, std::initializer_list< CharT > il);

      Effects: As if by insert(p, il.begin(), il.end()).

      Returns: An iterator which refers to the copy of the first inserted character, or p if i1 is empty.

    68. -
      void pop_back() noexcept;
      +
      void pop_back() noexcept;

      Effects: Removes the last element from the container.

      Throws: Nothing.

      Complexity: Constant time.

    69. -
      basic_string & erase(size_type pos = 0, size_type n = npos);
      +
      basic_string & erase(size_type pos = 0, size_type n = npos);

      Requires: pos <= size()

      Effects: Determines the effective length xlen of the string to be removed as the smaller of n and size() - pos. The function then replaces the string controlled by *this with a string of length size() - xlen whose first pos elements are a copy of the initial elements of the original string controlled by *this, and whose remaining elements are a copy of the elements of the original string controlled by *this beginning at position pos + xlen.

      Throws: out_of_range if pos > size().

      Returns: *this

    70. -
      iterator erase(const_iterator p) noexcept;
      +
      iterator erase(const_iterator p) noexcept;

      Effects: Removes the character referred to by p.

      Throws: Nothing

      Returns: An iterator which points to the element immediately following p prior to the element being erased. If no such element exists, end() is returned.

    71. -
      iterator erase(const_iterator first, const_iterator last) noexcept;
      +
      iterator erase(const_iterator first, const_iterator last) noexcept;

      Requires: first and last are valid iterators on *this, defining a range [first,last).

      Effects: Removes the characters in the range [first,last).

      Throws: Nothing

      Returns: An iterator which points to the element pointed to by last prior to the other elements being erased. If no such element exists, end() is returned.

    72. -
      void clear() noexcept;
      +
      void clear() noexcept;

      Effects: Erases all the elements of the vector.

      Throws: Nothing.

      Complexity: Linear to the number of elements in the vector.

    73. -
      basic_string & replace(size_type pos1, size_type n1, const basic_string & str);
      +
      basic_string & replace(size_type pos1, size_type n1, const basic_string & str);

      Requires: pos1 <= size().

      Effects: Calls replace(pos1, n1, str.data(), str.size()).

      Throws: if memory allocation throws or out_of_range if pos1 > size().

      @@ -877,12 +877,12 @@
    74. template<template< class, class > class BasicStringView> 
         basic_string & 
      -  replace(size_type pos1, size_type n1, BasicStringView< CharT, Traits > sv);
      + replace(size_type pos1, size_type n1, BasicStringView< CharT, Traits > sv);

      Effects: Calls return replace(pos1, n1, sv.data(), sv.size());.

    75. basic_string & 
      -replace(size_type pos1, size_type n1, const basic_string & str, 
      +replace(size_type pos1, size_type n1, const basic_string & str, 
               size_type pos2, size_type n2 = npos);

      Requires: pos1 <= size() and pos2 <= str.size().

      Effects: Determines the effective length rlen of the string to be inserted as the smaller of n2 and str.size() - pos2 and calls replace(pos1, n1, str.data() + pos2, rlen).

      @@ -892,7 +892,7 @@
    76. template<template< class, class > class BasicStringView> 
         basic_string & 
      -  replace(size_type pos1, size_type n1, BasicStringView< CharT, Traits > sv, 
      +  replace(size_type pos1, size_type n1, BasicStringView< CharT, Traits > sv, 
                 size_type pos2, size_type n2 = npos);

      Throws: out_of_range if pos1 > size() or pos2 > sv.size().

      Effects: Determines the effective length rlen of the string to be inserted as the smaller of n2 and sv.size() - pos2 and calls replace(pos1, n1, sv.data() + pos2, rlen).

      @@ -900,21 +900,21 @@
    77. basic_string & 
      -replace(size_type pos1, size_type n1, const CharT * s, size_type n2);
      +replace(size_type pos1, size_type n1, const CharT * s, size_type n2);

      Requires: pos1 <= size() and s points to an array of at least n2 elements of CharT.

      Effects: Determines the effective length xlen of the string to be removed as the smaller of n1 and size() - pos1. If size() - xlen >= max_size() - n2 throws length_error. Otherwise, the function replaces the string controlled by *this with a string of length size() - xlen + n2 whose first pos1 elements are a copy of the initial elements of the original string controlled by *this, whose next n2 elements are a copy of the initial n2 elements of s, and whose remaining elements are a copy of the elements of the original string controlled by *this beginning at position pos + xlen.

      Throws: if memory allocation throws, out_of_range if pos1 > size() or length_error if the length of the resulting string would exceed max_size()

      Returns: *this

    78. -
      basic_string & replace(size_type pos, size_type n1, const CharT * s);
      +
      basic_string & replace(size_type pos, size_type n1, const CharT * s);

      Requires: pos1 <= size() and s points to an array of at least n2 elements of CharT.

      Effects: Determines the effective length xlen of the string to be removed as the smaller of n1 and size() - pos1. If size() - xlen >= max_size() - n2 throws length_error. Otherwise, the function replaces the string controlled by *this with a string of length size() - xlen + n2 whose first pos1 elements are a copy of the initial elements of the original string controlled by *this, whose next n2 elements are a copy of the initial n2 elements of s, and whose remaining elements are a copy of the elements of the original string controlled by *this beginning at position pos + xlen.

      Throws: if memory allocation throws, out_of_range if pos1 > size() or length_error if the length of the resulting string would exceed max_size()

      Returns: *this

    79. -
      basic_string & replace(size_type pos1, size_type n1, size_type n2, CharT c);
      +
      basic_string & replace(size_type pos1, size_type n1, size_type n2, CharT c);

      Requires: pos1 <= size().

      Effects: Equivalent to replace(pos1, n1, basic_string(n2, c)).

      Throws: if memory allocation throws, out_of_range if pos1 > size() or length_error if the length of the resulting string would exceed max_size()

      @@ -922,7 +922,7 @@
    80. basic_string & 
      -replace(const_iterator i1, const_iterator i2, const basic_string & str);
      +replace(const_iterator i1, const_iterator i2, const basic_string & str);

      Requires: [begin(),i1) and [i1,i2) are valid ranges.

      Effects: Calls replace(i1 - begin(), i2 - i1, str).

      Throws: if memory allocation throws

      @@ -930,14 +930,14 @@
    81. basic_string & 
      -replace(const_iterator i1, const_iterator i2, const CharT * s, size_type n);
      +replace(const_iterator i1, const_iterator i2, const CharT * s, size_type n);

      Requires: [begin(),i1) and [i1,i2) are valid ranges and s points to an array of at least n elements

      Effects: Calls replace(i1 - begin(), i2 - i1, s, n).

      Throws: if memory allocation throws

      Returns: *this

    82. -
      basic_string & replace(const_iterator i1, const_iterator i2, const CharT * s);
      +
      basic_string & replace(const_iterator i1, const_iterator i2, const CharT * s);

      Requires: [begin(),i1) and [i1,i2) are valid ranges and s points to an array of at least traits::length(s) + 1 elements of CharT.

      Effects: Calls replace(i1 - begin(), i2 - i1, s, traits::length(s)).

      Throws: if memory allocation throws

      @@ -945,7 +945,7 @@
    83. basic_string & 
      -replace(const_iterator i1, const_iterator i2, size_type n, CharT c);
      +replace(const_iterator i1, const_iterator i2, size_type n, CharT c);

      Requires: [begin(),i1) and [i1,i2) are valid ranges.

      Effects: Calls replace(i1 - begin(), i2 - i1, basic_string(n, c)).

      Throws: if memory allocation throws

      @@ -954,7 +954,7 @@
    84. template<typename InputIter> 
         basic_string & 
      -  replace(const_iterator i1, const_iterator i2, InputIter j1, InputIter j2);
      + replace(const_iterator i1, const_iterator i2, InputIter j1, InputIter j2);

      Requires: [begin(),i1), [i1,i2) and [j1,j2) are valid ranges.

      Effects: Calls replace(i1 - begin(), i2 - i1, basic_string(j1, j2)).

      Throws: if memory allocation throws

      @@ -963,7 +963,7 @@
    85. template<template< class, class > class BasicStringView> 
         basic_string & 
      -  replace(const_iterator i1, const_iterator i2, 
      +  replace(const_iterator i1, const_iterator i2, 
                 BasicStringView< CharT, Traits > sv);

      Requires: [begin(), i1) and [i1, i2) are valid ranges.

      Effects: Calls replace(i1 - begin(), i2 - i1, sv)..

      @@ -971,259 +971,259 @@
    86. basic_string & 
      -replace(const_iterator i1, const_iterator i2, 
      +replace(const_iterator i1, const_iterator i2, 
               std::initializer_list< CharT > il);

      Requires: [begin(), i1) and [i1, i2) are valid ranges.

      Effects: Calls replace(i1 - begin(), i2 - i1, il.begin(), il.size()).

      Returns: *this.

    87. -
      size_type copy(CharT * s, size_type n, size_type pos = 0) const;
      +
      size_type copy(CharT * s, size_type n, size_type pos = 0) const;

      Requires: pos <= size()

      Effects: Determines the effective length rlen of the string to copy as the smaller of n and size() - pos. s shall designate an array of at least rlen elements. The function then replaces the string designated by s with a string of length rlen whose elements are a copy of the string controlled by *this beginning at position pos. The function does not append a null object to the string designated by s.

      Throws: if memory allocation throws, out_of_range if pos > size().

      Returns: rlen

    88. -
      void swap(basic_string & x) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value));
      +
      void swap(basic_string & x) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value));

      Effects: *this contains the same sequence of characters that was in s, s contains the same sequence of characters that was in *this.

      Throws: Nothing

    89. -
      const CharT * c_str() const noexcept;
      +
      const CharT * c_str() const noexcept;

      Requires: The program shall not alter any of the values stored in the character array.

      Returns: A pointer p such that p + i == &operator[](i) for each i in [0,size()].

      Complexity: constant time.

    90. -
      const CharT * data() const noexcept;
      +
      const CharT * data() const noexcept;

      Requires: The program shall not alter any of the values stored in the character array.

      Returns: A pointer p such that p + i == &operator[](i) for each i in [0,size()].

      Complexity: constant time.

    91. -
      CharT * data() noexcept;
      +
      CharT * data() noexcept;

      Returns: A pointer p such that p + i == &operator[](i) for each i in [0,size()].

      Complexity: constant time.

    92. template<template< class, class > class BasicStringView> 
      -  operator BasicStringView< CharT, Traits >() const noexcept;
      + operator BasicStringView< CharT, Traits >() const noexcept;

      Returns: a string_view to the characters in the string.

      Complexity: constant time.

    93. -
      template<typename BasicStringView> BasicStringView to_view() const noexcept;
      +
      template<typename BasicStringView> BasicStringView to_view() const noexcept;

      Returns: a string_view to the characters in the string.

      Complexity: constant time.

      Note: This function is available to write portable code for compilers that don't support templated conversion operators.

    94. -
      size_type find(const basic_string & s, size_type pos = 0) const;
      +
      size_type find(const basic_string & s, size_type pos = 0) const;

      Effects: Determines the lowest position xpos, if possible, such that both of the following conditions hold: 1) pos <= xpos and xpos + str.size() <= size(); 2) traits::eq(at(xpos+I), str.at(I)) for all elements I of the string controlled by str.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    95. template<template< class, class > class BasicStringView> 
      -  size_type find(BasicStringView< CharT, Traits > sv, size_type pos = 0) const;
      + size_type find(BasicStringView< CharT, Traits > sv, size_type pos = 0) const;

      Effects: Determines the lowest position xpos, if possible, such that both of the following conditions hold: 1) pos <= xpos and xpos + sv.size() <= size(); 2) traits::eq(at(xpos+I), sv.at(I)) for all elements I of the string controlled by sv.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    96. -
      size_type find(const CharT * s, size_type pos, size_type n) const;
      +
      size_type find(const CharT * s, size_type pos, size_type n) const;

      Requires: s points to an array of at least n elements of CharT.

      Throws: Nothing

      Returns: find(basic_string<CharT,traits,Allocator>(s,n),pos).

    97. -
      size_type find(const CharT * s, size_type pos = 0) const;
      +
      size_type find(const CharT * s, size_type pos = 0) const;

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: Nothing

      Returns: find(basic_string(s), pos).

    98. -
      size_type find(CharT c, size_type pos = 0) const;
      +
      size_type find(CharT c, size_type pos = 0) const;

      Throws: Nothing

      Returns: find(basic_string<CharT,traits,Allocator>(1,c), pos).

    99. -
      size_type rfind(const basic_string & str, size_type pos = npos) const;
      +
      size_type rfind(const basic_string & str, size_type pos = npos) const;

      Effects: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos <= pos and xpos + str.size() <= size(); b) traits::eq(at(xpos+I), str.at(I)) for all elements I of the string controlled by str.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    100. template<template< class, class > class BasicStringView> 
      -  size_type rfind(BasicStringView< CharT, Traits > sv, size_type pos = npos) const;
      + size_type rfind(BasicStringView< CharT, Traits > sv, size_type pos = npos) const;

      Effects: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos <= pos and xpos + sv.size() <= size(); b) traits::eq(at(xpos+I), sv.at(I)) for all elements I of the string controlled by sv.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    101. -
      size_type rfind(const CharT * s, size_type pos, size_type n) const;
      +
      size_type rfind(const CharT * s, size_type pos, size_type n) const;

      Requires: s points to an array of at least n elements of CharT.

      Throws: Nothing

      Returns: rfind(basic_string(s, n), pos).

    102. -
      size_type rfind(const CharT * s, size_type pos = npos) const;
      +
      size_type rfind(const CharT * s, size_type pos = npos) const;

      Requires: pos <= size() and s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: Nothing

      Returns: rfind(basic_string(s), pos).

    103. -
      size_type rfind(CharT c, size_type pos = npos) const;
      +
      size_type rfind(CharT c, size_type pos = npos) const;

      Throws: Nothing

      Returns: rfind(basic_string<CharT,traits,Allocator>(1,c),pos).

    104. -
      size_type find_first_of(const basic_string & str, size_type pos = 0) const;
      +
      size_type find_first_of(const basic_string & str, size_type pos = 0) const;

      Effects: Determines the lowest position xpos, if possible, such that both of the following conditions obtain: a) pos <= xpos and xpos < size(); b) traits::eq(at(xpos), str.at(I)) for some element I of the string controlled by str.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    105. template<template< class, class > class BasicStringView> 
      -  size_type find_first_of(BasicStringView< CharT, Traits > sv, 
      +  size_type find_first_of(BasicStringView< CharT, Traits > sv, 
                                 size_type pos = 0) const;

      Effects: Determines the lowest position xpos, if possible, such that both of the following conditions obtain: a) pos <= xpos and xpos < size(); b) traits::eq(at(xpos), sv.at(I)) for some element I of the string controlled by sv.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    106. -
      size_type find_first_of(const CharT * s, size_type pos, size_type n) const;
      +
      size_type find_first_of(const CharT * s, size_type pos, size_type n) const;

      Requires: s points to an array of at least n elements of CharT.

      Throws: Nothing

      Returns: find_first_of(basic_string(s, n), pos).

    107. -
      size_type find_first_of(const CharT * s, size_type pos = 0) const;
      +
      size_type find_first_of(const CharT * s, size_type pos = 0) const;

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: Nothing

      Returns: find_first_of(basic_string(s), pos).

    108. -
      size_type find_first_of(CharT c, size_type pos = 0) const;
      +
      size_type find_first_of(CharT c, size_type pos = 0) const;

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: Nothing

      Returns: find_first_of(basic_string<CharT,traits,Allocator>(1,c), pos).

    109. -
      size_type find_last_of(const basic_string & str, size_type pos = npos) const;
      +
      size_type find_last_of(const basic_string & str, size_type pos = npos) const;

      Effects: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos <= pos and xpos < size(); b) traits::eq(at(xpos), str.at(I)) for some element I of the string controlled by str.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    110. template<template< class, class > class BasicStringView> 
      -  size_type find_last_of(BasicStringView< CharT, Traits > sv, 
      +  size_type find_last_of(BasicStringView< CharT, Traits > sv, 
                                size_type pos = npos) const;

      Effects: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos <= pos and xpos < size(); b) traits::eq(at(xpos), str.at(I)) for some element I of the string controlled by str.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    111. -
      size_type find_last_of(const CharT * s, size_type pos, size_type n) const;
      +
      size_type find_last_of(const CharT * s, size_type pos, size_type n) const;

      Requires: s points to an array of at least n elements of CharT.

      Throws: Nothing

      Returns: find_last_of(basic_string(s, n), pos).

    112. -
      size_type find_last_of(const CharT * s, size_type pos = npos) const;
      +
      size_type find_last_of(const CharT * s, size_type pos = npos) const;

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: Nothing

      Returns: find_last_of(basic_string<CharT,traits,Allocator>(1,c),pos).

    113. -
      size_type find_last_of(CharT c, size_type pos = npos) const;
      +
      size_type find_last_of(CharT c, size_type pos = npos) const;

      Throws: Nothing

      Returns: find_last_of(basic_string(s), pos).

    114. -
      size_type find_first_not_of(const basic_string & str, size_type pos = 0) const;
      +
      size_type find_first_not_of(const basic_string & str, size_type pos = 0) const;

      Effects: Determines the lowest position xpos, if possible, such that both of the following conditions obtain: a) pos <= xpos and xpos < size(); b) traits::eq(at(xpos), str.at(I)) for no element I of the string controlled by str.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    115. template<template< class, class > class BasicStringView> 
      -  size_type find_first_not_of(BasicStringView< CharT, Traits > sv, 
      +  size_type find_first_not_of(BasicStringView< CharT, Traits > sv, 
                                     size_type pos = 0) const;

      Effects: Determines the lowest position xpos, if possible, such that both of the following conditions obtain: a) pos <= xpos and xpos < size(); b) traits::eq(at(xpos), sv.at(I)) for no element I of the string controlled by sv.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    116. -
      size_type find_first_not_of(const CharT * s, size_type pos, size_type n) const;
      +
      size_type find_first_not_of(const CharT * s, size_type pos, size_type n) const;

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: Nothing

      Returns: find_first_not_of(basic_string(s, n), pos).

    117. -
      size_type find_first_not_of(const CharT * s, size_type pos = 0) const;
      +
      size_type find_first_not_of(const CharT * s, size_type pos = 0) const;

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: Nothing

      Returns: find_first_not_of(basic_string(s), pos).

    118. -
      size_type find_first_not_of(CharT c, size_type pos = 0) const;
      +
      size_type find_first_not_of(CharT c, size_type pos = 0) const;

      Throws: Nothing

      Returns: find_first_not_of(basic_string(1, c), pos).

    119. -
      size_type find_last_not_of(const basic_string & str, size_type pos = npos) const;
      +
      size_type find_last_not_of(const basic_string & str, size_type pos = npos) const;

      Effects: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos <= pos and xpos < size(); b) traits::eq(at(xpos), str.at(I)) for no element I of the string controlled by str.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    120. template<template< class, class > class BasicStringView> 
      -  size_type find_last_not_of(BasicStringView< CharT, Traits > sv, 
      +  size_type find_last_not_of(BasicStringView< CharT, Traits > sv, 
                                    size_type pos = npos) const;

      Effects: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos <= pos and xpos < size(); b) traits::eq(at(xpos), sv.at(I)) for no element I of the string controlled by sv.

      Throws: Nothing

      Returns: xpos if the function can determine such a value for xpos. Otherwise, returns npos.

    121. -
      size_type find_last_not_of(const CharT * s, size_type pos, size_type n) const;
      +
      size_type find_last_not_of(const CharT * s, size_type pos, size_type n) const;

      Requires: s points to an array of at least n elements of CharT.

      Throws: Nothing

      Returns: find_last_not_of(basic_string(s, n), pos).

    122. -
      size_type find_last_not_of(const CharT * s, size_type pos = npos) const;
      +
      size_type find_last_not_of(const CharT * s, size_type pos = npos) const;

      Requires: s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: Nothing

      Returns: find_last_not_of(basic_string(s), pos).

    123. -
      size_type find_last_not_of(CharT c, size_type pos = npos) const;
      +
      size_type find_last_not_of(CharT c, size_type pos = npos) const;

      Throws: Nothing

      Returns: find_last_not_of(basic_string(1, c), pos).

    124. -
      basic_string substr(size_type pos = 0, size_type n = npos) const;
      +
      basic_string substr(size_type pos = 0, size_type n = npos) const;

      Requires: Requires: pos <= size()

      Effects: Determines the effective length rlen of the string to copy as the smaller of n and size() - pos.

      Throws: If memory allocation throws or out_of_range if pos > size().

      Returns: basic_string<CharT,traits,Allocator>(data()+pos,rlen).

    125. -
      int compare(const basic_string & str) const;
      +
      int compare(const basic_string & str) const;

      Effects: Determines the effective length rlen of the string to compare as the smaller of size() and str.size(). The function then compares the two strings by calling traits::compare(data(), str.data(), rlen).

      Throws: Nothing

      Returns: The nonzero result if the result of the comparison is nonzero. Otherwise, returns a value < 0 if size() < str.size(), a 0 value if size() == str.size(), and value > 0 if size() > str.size()

    126. template<template< class, class > class BasicStringView> 
      -  int compare(BasicStringView< CharT, Traits > sv) const;
      + int compare(BasicStringView< CharT, Traits > sv) const;

      Throws: Nothing

      Returns: compare(basic_string(sv)).

    127. -
      int compare(size_type pos1, size_type n1, const basic_string & str) const;
      +
      int compare(size_type pos1, size_type n1, const basic_string & str) const;

      Requires: pos1 <= size()

      Effects: Determines the effective length rlen of the string to compare as the smaller of (this->size() - pos1), n1 and str.size(). The function then compares the two strings by calling traits::compare(data()+pos1, str.data(), rlen).

      Throws: out_of_range if pos1 > size()

      @@ -1231,14 +1231,14 @@
    128. template<template< class, class > class BasicStringView> 
      -  int compare(size_type pos1, size_type n1, 
      +  int compare(size_type pos1, size_type n1, 
                     BasicStringView< CharT, Traits > sv) const;

      Requires: pos1 <= size()

      Throws: out_of_range if pos1 > size()

      Returns:basic_string(*this,pos1,n1).compare(sv).

    129. -
      int compare(size_type pos1, size_type n1, const basic_string & str, 
      +
      int compare(size_type pos1, size_type n1, const basic_string & str, 
                   size_type pos2, size_type n2 = npos) const;

      Requires: pos1 <= size() and pos2 <= str.size()

      Effects: Determines the effective length rlen of the string to copy as the smaller of

      @@ -1247,7 +1247,7 @@
    130. template<template< class, class > class BasicStringView> 
      -  int compare(size_type pos1, size_type n1, 
      +  int compare(size_type pos1, size_type n1, 
                     BasicStringView< CharT, Traits > sv, size_type pos2, 
                     size_type n2) const;

      Requires: pos1 <= size() and pos2 <= str.size()

      @@ -1256,18 +1256,18 @@

      Returns: basic_string(*this, pos1, n1).compare(BasicStringView<CharT, Traits>(sv, pos2, n2)).

    131. -
      int compare(const CharT * s) const;
      +
      int compare(const CharT * s) const;

      Throws: Nothing

      Returns: compare(basic_string(s)).

    132. -
      int compare(size_type pos1, size_type n1, const CharT * s, size_type n2) const;
      +
      int compare(size_type pos1, size_type n1, const CharT * s, size_type n2) const;

      Requires: pos1 > size() and s points to an array of at least n2 elements of CharT.

      Throws: out_of_range if pos1 > size()

      Returns: basic_string(*this, pos, n1).compare(basic_string(s, n2)).

    133. -
      int compare(size_type pos1, size_type n1, const CharT * s) const;
      +
      int compare(size_type pos1, size_type n1, const CharT * s) const;

      Requires: pos1 > size() and s points to an array of at least traits::length(s) + 1 elements of CharT.

      Throws: out_of_range if pos1 > size()

      Returns: basic_string(*this, pos, n1).compare(basic_string(s, n2)).

      @@ -1278,7 +1278,8 @@
    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/container/constructible__idp60397280.html b/doc/html/boost/container/constructible__idp60397280.html new file mode 100644 index 0000000000..0d5ea68adf --- /dev/null +++ b/doc/html/boost/container/constructible__idp60397280.html @@ -0,0 +1,67 @@ + + + + +Struct template constructible_with_allocator_suffix + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct template constructible_with_allocator_suffix

    +

    boost::container::constructible_with_allocator_suffix

    +
    +

    Synopsis

    +
    // In header: <boost/container/uses_allocator.hpp>
    +
    +template<typename T> 
    +struct constructible_with_allocator_suffix {
    +
    +  // public data members
    +  static const bool value;
    +};
    +
    +

    Description

    +

    Remark: if a specialization constructible_with_allocator_suffix<X>::value is true, indicates that T may be constructed with an allocator as its last constructor argument. Ideally, all constructors of T (including the copy and move constructors) should have a variant that accepts a final argument of allocator_type.

    +

    Requires: if a specialization constructible_with_allocator_suffix<X>::value is true, T must have a nested type, allocator_type and at least one constructor for which allocator_type is the last parameter. If not all constructors of T can be called with a final allocator_type argument, and if T is used in a context where a container must call such a constructor, then the program is ill-formed.

    +

    template <class T, class Allocator = allocator<T> > class Z { public: typedef Allocator allocator_type;

    +

    // Default constructor with optional allocator suffix Z(const allocator_type& a = allocator_type());

    +

    // Copy constructor and allocator-extended copy constructor Z(const Z& zz); Z(const Z& zz, const allocator_type& a); };

    +

    // Specialize trait for class template Z template <class T, class Allocator = allocator<T> > struct constructible_with_allocator_suffix<Z<T,Allocator> > { static const bool value = true; };

    +

    Note: This trait is a workaround inspired by "N2554: The Scoped A Model (Rev 2)" (Pablo Halpern, 2008-02-29) to backport the scoped allocator model to C++03, as in C++03 there is no mechanism to detect if a type can be constructed from arbitrary arguments. Applications aiming portability with several compilers should always define this trait.

    +

    In conforming C++11 compilers or compilers supporting SFINAE expressions (when BOOST_NO_SFINAE_EXPR is NOT defined), this trait is ignored and C++11 rules will be used to detect if a type should be constructed with suffix or prefix allocator arguments.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/container/constructible__idp60406672.html b/doc/html/boost/container/constructible__idp60406672.html new file mode 100644 index 0000000000..5399588ca6 --- /dev/null +++ b/doc/html/boost/container/constructible__idp60406672.html @@ -0,0 +1,69 @@ + + + + +Struct template constructible_with_allocator_prefix + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct template constructible_with_allocator_prefix

    +

    boost::container::constructible_with_allocator_prefix

    +
    +

    Synopsis

    +
    // In header: <boost/container/uses_allocator.hpp>
    +
    +template<typename T> 
    +struct constructible_with_allocator_prefix {
    +
    +  // public data members
    +  static const bool value;
    +};
    +
    +

    Description

    +

    Remark: if a specialization constructible_with_allocator_prefix<X>::value is true, indicates that T may be constructed with allocator_arg and T::allocator_type as its first two constructor arguments. Ideally, all constructors of T (including the copy and move constructors) should have a variant that accepts these two initial arguments.

    +

    Requires: specialization constructible_with_allocator_prefix<X>::value is true, T must have a nested type, allocator_type and at least one constructor for which allocator_arg_t is the first parameter and allocator_type is the second parameter. If not all constructors of T can be called with these initial arguments, and if T is used in a context where a container must call such a constructor, then the program is ill-formed.

    +

    template <class T, class Allocator = allocator<T> > class Y { public: typedef Allocator allocator_type;

    +

    // Default constructor with and allocator-extended default constructor Y(); Y(allocator_arg_t, const allocator_type& a);

    +

    // Copy constructor and allocator-extended copy constructor Y(const Y& yy); Y(allocator_arg_t, const allocator_type& a, const Y& yy);

    +

    // Variadic constructor and allocator-extended variadic constructor template<class ...Args> Y(Args&& args...); template<class ...Args> Y(allocator_arg_t, const allocator_type& a, BOOST_FWD_REF(Args)... args); };

    +

    // Specialize trait for class template Y template <class T, class Allocator = allocator<T> > struct constructible_with_allocator_prefix<Y<T,Allocator> > { static const bool value = true; };

    +

    +

    Note: This trait is a workaround inspired by "N2554: The Scoped Allocator Model (Rev 2)" (Pablo Halpern, 2008-02-29) to backport the scoped allocator model to C++03, as in C++03 there is no mechanism to detect if a type can be constructed from arbitrary arguments. Applications aiming portability with several compilers should always define this trait.

    +

    In conforming C++11 compilers or compilers supporting SFINAE expressions (when BOOST_NO_SFINAE_EXPR is NOT defined), this trait is ignored and C++11 rules will be used to detect if a type should be constructed with suffix or prefix allocator arguments.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/container/constructible__idp67492240.html b/doc/html/boost/container/constructible__idp67492240.html deleted file mode 100644 index 9d55b5baf4..0000000000 --- a/doc/html/boost/container/constructible__idp67492240.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - -Struct template constructible_with_allocator_suffix - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct template constructible_with_allocator_suffix

    -

    boost::container::constructible_with_allocator_suffix

    -
    -

    Synopsis

    -
    // In header: <boost/container/uses_allocator.hpp>
    -
    -template<typename T> 
    -struct constructible_with_allocator_suffix {
    -
    -  // public data members
    -  static const bool value;
    -};
    -
    -

    Description

    -

    Remark: if a specialization constructible_with_allocator_suffix<X>::value is true, indicates that T may be constructed with an allocator as its last constructor argument. Ideally, all constructors of T (including the copy and move constructors) should have a variant that accepts a final argument of allocator_type.

    -

    Requires: if a specialization constructible_with_allocator_suffix<X>::value is true, T must have a nested type, allocator_type and at least one constructor for which allocator_type is the last parameter. If not all constructors of T can be called with a final allocator_type argument, and if T is used in a context where a container must call such a constructor, then the program is ill-formed.

    -

    template <class T, class Allocator = allocator<T> > class Z { public: typedef Allocator allocator_type;

    -

    // Default constructor with optional allocator suffix Z(const allocator_type& a = allocator_type());

    -

    // Copy constructor and allocator-extended copy constructor Z(const Z& zz); Z(const Z& zz, const allocator_type& a); };

    -

    // Specialize trait for class template Z template <class T, class Allocator = allocator<T> > struct constructible_with_allocator_suffix<Z<T,Allocator> > { static const bool value = true; };

    -

    Note: This trait is a workaround inspired by "N2554: The Scoped A Model (Rev 2)" (Pablo Halpern, 2008-02-29) to backport the scoped allocator model to C++03, as in C++03 there is no mechanism to detect if a type can be constructed from arbitrary arguments. Applications aiming portability with several compilers should always define this trait.

    -

    In conforming C++11 compilers or compilers supporting SFINAE expressions (when BOOST_NO_SFINAE_EXPR is NOT defined), this trait is ignored and C++11 rules will be used to detect if a type should be constructed with suffix or prefix allocator arguments.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/container/constructible__idp67501632.html b/doc/html/boost/container/constructible__idp67501632.html deleted file mode 100644 index 3ffa4b3079..0000000000 --- a/doc/html/boost/container/constructible__idp67501632.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Struct template constructible_with_allocator_prefix - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct template constructible_with_allocator_prefix

    -

    boost::container::constructible_with_allocator_prefix

    -
    -

    Synopsis

    -
    // In header: <boost/container/uses_allocator.hpp>
    -
    -template<typename T> 
    -struct constructible_with_allocator_prefix {
    -
    -  // public data members
    -  static const bool value;
    -};
    -
    -

    Description

    -

    Remark: if a specialization constructible_with_allocator_prefix<X>::value is true, indicates that T may be constructed with allocator_arg and T::allocator_type as its first two constructor arguments. Ideally, all constructors of T (including the copy and move constructors) should have a variant that accepts these two initial arguments.

    -

    Requires: specialization constructible_with_allocator_prefix<X>::value is true, T must have a nested type, allocator_type and at least one constructor for which allocator_arg_t is the first parameter and allocator_type is the second parameter. If not all constructors of T can be called with these initial arguments, and if T is used in a context where a container must call such a constructor, then the program is ill-formed.

    -

    template <class T, class Allocator = allocator<T> > class Y { public: typedef Allocator allocator_type;

    -

    // Default constructor with and allocator-extended default constructor Y(); Y(allocator_arg_t, const allocator_type& a);

    -

    // Copy constructor and allocator-extended copy constructor Y(const Y& yy); Y(allocator_arg_t, const allocator_type& a, const Y& yy);

    -

    // Variadic constructor and allocator-extended variadic constructor template<class ...Args> Y(Args&& args...); template<class ...Args> Y(allocator_arg_t, const allocator_type& a, BOOST_FWD_REF(Args)... args); };

    -

    // Specialize trait for class template Y template <class T, class Allocator = allocator<T> > struct constructible_with_allocator_prefix<Y<T,Allocator> > { static const bool value = true; };

    -

    -

    Note: This trait is a workaround inspired by "N2554: The Scoped Allocator Model (Rev 2)" (Pablo Halpern, 2008-02-29) to backport the scoped allocator model to C++03, as in C++03 there is no mechanism to detect if a type can be constructed from arbitrary arguments. Applications aiming portability with several compilers should always define this trait.

    -

    In conforming C++11 compilers or compilers supporting SFINAE expressions (when BOOST_NO_SFINAE_EXPR is NOT defined), this trait is ignored and C++11 rules will be used to detect if a type should be constructed with suffix or prefix allocator arguments.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/container/default_init.html b/doc/html/boost/container/default_init.html index 7f3f48332a..c246f97e71 100644 --- a/doc/html/boost/container/default_init.html +++ b/doc/html/boost/container/default_init.html @@ -34,13 +34,14 @@ static const default_init_t default_init;
    -

    Description

    +

    Description

    Value used to tag that the inserted values should be default initialized

    -
    -

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/container/deque.html b/doc/html/boost/container/deque.html index 2100f66766..237e1da1d7 100644 --- a/doc/html/boost/container/deque.html +++ b/doc/html/boost/container/deque.html @@ -51,100 +51,100 @@ typedef implementation_defined const_reverse_iterator; // construct/copy/destruct - deque() noexcept(container_detail::is_nothrow_default_constructible< Allocator >::value)); - explicit deque(const allocator_type &) noexcept; - explicit deque(size_type); - deque(size_type, default_init_t); - explicit deque(size_type, const allocator_type &); - deque(size_type, default_init_t, const allocator_type &); - deque(size_type, const value_type &); - deque(size_type, const value_type &, const allocator_type &); - template<typename InIt> deque(InIt, InIt); - template<typename InIt> deque(InIt, InIt, const allocator_type &); - deque(std::initializer_list< value_type >, + deque() noexcept(dtl::is_nothrow_default_constructible< Allocator >::value)); + explicit deque(const allocator_type &) noexcept; + explicit deque(size_type); + deque(size_type, default_init_t); + explicit deque(size_type, const allocator_type &); + deque(size_type, default_init_t, const allocator_type &); + deque(size_type, const value_type &); + deque(size_type, const value_type &, const allocator_type &); + template<typename InIt> deque(InIt, InIt); + template<typename InIt> deque(InIt, InIt, const allocator_type &); + deque(std::initializer_list< value_type >, const allocator_type & = allocator_type()); - deque(const deque &); - deque(deque &&) noexcept; - deque(const deque &, const allocator_type &); - deque(deque &&, const allocator_type &); - deque & operator=(const deque &); - deque & operator=(deque &&) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)); - deque & operator=(std::initializer_list< value_type >); - ~deque(); + deque(const deque &); + deque(deque &&) noexcept; + deque(const deque &, const allocator_type &); + deque(deque &&, const allocator_type &); + deque & operator=(const deque &); + deque & operator=(deque &&) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)); + deque & operator=(std::initializer_list< value_type >); + ~deque(); - // public member functions - void assign(size_type, const T &); - template<typename InIt> void assign(InIt, InIt); - void assign(std::initializer_list< value_type >); - allocator_type get_allocator() const noexcept; - const stored_allocator_type & get_stored_allocator() const noexcept; - stored_allocator_type & get_stored_allocator() noexcept; - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; - reverse_iterator rbegin() noexcept; - const_reverse_iterator rbegin() const noexcept; - reverse_iterator rend() noexcept; - const_reverse_iterator rend() const noexcept; - const_iterator cbegin() const noexcept; - const_iterator cend() const noexcept; - const_reverse_iterator crbegin() const noexcept; - const_reverse_iterator crend() const noexcept; - bool empty() const noexcept; - size_type size() const noexcept; - size_type max_size() const noexcept; - void resize(size_type); - void resize(size_type, default_init_t); - void resize(size_type, const value_type &); - void shrink_to_fit(); - reference front() noexcept; - const_reference front() const noexcept; - reference back() noexcept; - const_reference back() const noexcept; - reference operator[](size_type) noexcept; - const_reference operator[](size_type) const noexcept; - iterator nth(size_type) noexcept; - const_iterator nth(size_type) const noexcept; - size_type index_of(iterator) noexcept; - size_type index_of(const_iterator) const noexcept; - reference at(size_type); - const_reference at(size_type) const; - template<class... Args> reference emplace_front(Args &&...); - template<class... Args> reference emplace_back(Args &&...); - template<class... Args> iterator emplace(const_iterator, Args &&...); - void push_front(const T &); - void push_front(T &&); - void push_back(const T &); - void push_back(T &&); - iterator insert(const_iterator, const T &); - iterator insert(const_iterator, T &&); - iterator insert(const_iterator, size_type, const value_type &); - template<typename InIt> iterator insert(const_iterator, InIt, InIt); - iterator insert(const_iterator, std::initializer_list< value_type >); - void pop_front() noexcept; - void pop_back() noexcept; - iterator erase(const_iterator) noexcept; - iterator erase(const_iterator, const_iterator) noexcept; - void swap(deque &) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value)); - void clear() noexcept; + // public member functions + void assign(size_type, const T &); + template<typename InIt> void assign(InIt, InIt); + void assign(std::initializer_list< value_type >); + allocator_type get_allocator() const noexcept; + const stored_allocator_type & get_stored_allocator() const noexcept; + stored_allocator_type & get_stored_allocator() noexcept; + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; + reverse_iterator rbegin() noexcept; + const_reverse_iterator rbegin() const noexcept; + reverse_iterator rend() noexcept; + const_reverse_iterator rend() const noexcept; + const_iterator cbegin() const noexcept; + const_iterator cend() const noexcept; + const_reverse_iterator crbegin() const noexcept; + const_reverse_iterator crend() const noexcept; + bool empty() const noexcept; + size_type size() const noexcept; + size_type max_size() const noexcept; + void resize(size_type); + void resize(size_type, default_init_t); + void resize(size_type, const value_type &); + void shrink_to_fit(); + reference front() noexcept; + const_reference front() const noexcept; + reference back() noexcept; + const_reference back() const noexcept; + reference operator[](size_type) noexcept; + const_reference operator[](size_type) const noexcept; + iterator nth(size_type) noexcept; + const_iterator nth(size_type) const noexcept; + size_type index_of(iterator) noexcept; + size_type index_of(const_iterator) const noexcept; + reference at(size_type); + const_reference at(size_type) const; + template<class... Args> reference emplace_front(Args &&...); + template<class... Args> reference emplace_back(Args &&...); + template<class... Args> iterator emplace(const_iterator, Args &&...); + void push_front(const T &); + void push_front(T &&); + void push_back(const T &); + void push_back(T &&); + iterator insert(const_iterator, const T &); + iterator insert(const_iterator, T &&); + iterator insert(const_iterator, size_type, const value_type &); + template<typename InIt> iterator insert(const_iterator, InIt, InIt); + iterator insert(const_iterator, std::initializer_list< value_type >); + void pop_front() noexcept; + void pop_back() noexcept; + iterator erase(const_iterator) noexcept; + iterator erase(const_iterator, const_iterator) noexcept; + void swap(deque &) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value)); + void clear() noexcept; - // friend functions - friend bool operator==(const deque &, const deque &); - friend bool operator!=(const deque &, const deque &); - friend bool operator<(const deque &, const deque &); - friend bool operator>(const deque &, const deque &); - friend bool operator<=(const deque &, const deque &); - friend bool operator>=(const deque &, const deque &); - friend void swap(deque &, deque &); + // friend functions + friend bool operator==(const deque &, const deque &); + friend bool operator!=(const deque &, const deque &); + friend bool operator<(const deque &, const deque &); + friend bool operator>(const deque &, const deque &); + friend bool operator<=(const deque &, const deque &); + friend bool operator>=(const deque &, const deque &); + friend void swap(deque &, deque &); };
    -

    Description

    +

    Description

    A double-ended queue is a sequence that supports random access to elements, constant time insertion and removal of elements at the end of the sequence, and linear time insertion and removal of elements in the middle.

    -

    Template Parameters

    +

    Template Parameters

    1. typename T
      @@ -157,127 +157,127 @@
    -

    +

    deque public construct/copy/destruct

    1. -
      deque() noexcept(container_detail::is_nothrow_default_constructible< Allocator >::value));
      +
      deque() noexcept(dtl::is_nothrow_default_constructible< Allocator >::value));

      Effects: Default constructors a deque.

      Throws: If allocator_type's default constructor throws.

      Complexity: Constant.

    2. -
      explicit deque(const allocator_type & a) noexcept;
      +
      explicit deque(const allocator_type & a) noexcept;

      Effects: Constructs a deque taking the allocator as parameter.

      Throws: Nothing

      Complexity: Constant.

    3. -
      explicit deque(size_type n);
      +
      explicit deque(size_type n);

      Effects: Constructs a deque and inserts n value initialized values.

      Throws: If allocator_type's default constructor throws or T's value initialization throws.

      Complexity: Linear to n.

    4. -
      deque(size_type n, default_init_t);
      +
      deque(size_type n, default_init_t);

      Effects: Constructs a deque and inserts n default initialized values.

      Throws: If allocator_type's default constructor throws or T's default initialization or copy constructor throws.

      Complexity: Linear to n.

      Note: Non-standard extension

    5. -
      explicit deque(size_type n, const allocator_type & a);
      +
      explicit deque(size_type n, const allocator_type & a);

      Effects: Constructs a deque that will use a copy of allocator a and inserts n value initialized values.

      Throws: If allocator_type's default constructor throws or T's value initialization throws.

      Complexity: Linear to n.

    6. -
      deque(size_type n, default_init_t, const allocator_type & a);
      +
      deque(size_type n, default_init_t, const allocator_type & a);

      Effects: Constructs a deque that will use a copy of allocator a and inserts n default initialized values.

      Throws: If allocator_type's default constructor throws or T's default initialization or copy constructor throws.

      Complexity: Linear to n.

      Note: Non-standard extension

    7. -
      deque(size_type n, const value_type & value);
      +
      deque(size_type n, const value_type & value);

      Effects: Constructs a deque that will use a copy of allocator a and inserts n copies of value.

      Throws: If allocator_type's default constructor throws or T's copy constructor throws.

      Complexity: Linear to n.

    8. -
      deque(size_type n, const value_type & value, const allocator_type & a);
      +
      deque(size_type n, const value_type & value, const allocator_type & a);

      Effects: Constructs a deque that will use a copy of allocator a and inserts n copies of value.

      Throws: If allocator_type's default constructor throws or T's copy constructor throws.

      Complexity: Linear to n.

    9. -
      template<typename InIt> deque(InIt first, InIt last);
      +
      template<typename InIt> deque(InIt first, InIt last);

      Effects: Constructs a deque that will use a copy of allocator a and inserts a copy of the range [first, last) in the deque.

      Throws: If allocator_type's default constructor throws or T's constructor taking a dereferenced InIt throws.

      Complexity: Linear to the range [first, last).

    10. -
      template<typename InIt> deque(InIt first, InIt last, const allocator_type & a);
      +
      template<typename InIt> deque(InIt first, InIt last, const allocator_type & a);

      Effects: Constructs a deque that will use a copy of allocator a and inserts a copy of the range [first, last) in the deque.

      Throws: If allocator_type's default constructor throws or T's constructor taking a dereferenced InIt throws.

      Complexity: Linear to the range [first, last).

    11. -
      deque(std::initializer_list< value_type > il, 
      +
      deque(std::initializer_list< value_type > il, 
             const allocator_type & a = allocator_type());

      Effects: Constructs a deque that will use a copy of allocator a and inserts a copy of the range [il.begin(), il.end()) in the deque.

      Throws: If allocator_type's default constructor throws or T's constructor taking a dereferenced std::initializer_list iterator throws.

      Complexity: Linear to the range [il.begin(), il.end()).

    12. -
      deque(const deque & x);
      +
      deque(const deque & x);

      Effects: Copy constructs a deque.

      Postcondition: x == *this.

      Complexity: Linear to the elements x contains.

    13. -
      deque(deque && x) noexcept;
      +
      deque(deque && x) noexcept;

      Effects: Move constructor. Moves x's resources to *this.

      Throws: If allocator_type's copy constructor throws.

      Complexity: Constant.

    14. -
      deque(const deque & x, const allocator_type & a);
      +
      deque(const deque & x, const allocator_type & a);

      Effects: Copy constructs a vector using the specified allocator.

      Postcondition: x == *this.

      Throws: If allocation throws or T's copy constructor throws.

      Complexity: Linear to the elements x contains.

    15. -
      deque(deque && x, const allocator_type & a);
      +
      deque(deque && x, const allocator_type & a);

      Effects: Move constructor using the specified allocator. Moves x's resources to *this if a == allocator_type(). Otherwise copies values from x to *this.

      Throws: If allocation or T's copy constructor throws.

      Complexity: Constant if a == x.get_allocator(), linear otherwise.

    16. -
      deque & operator=(const deque & x);
      +
      deque & operator=(const deque & x);

      Effects: Makes *this contain the same elements as x.

      Postcondition: this->size() == x.size(). *this contains a copy of each of x's elements.

      Throws: If memory allocation throws or T's copy constructor throws.

      Complexity: Linear to the number of elements in x.

    17. -
      deque & operator=(deque && x) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value));
      +
      deque & operator=(deque && x) noexcept(allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value));

      Effects: Move assignment. All x's values are transferred to *this.

      Throws: If allocator_traits_type::propagate_on_container_move_assignment is false and (allocation throws or value_type's move constructor throws)

      Complexity: Constant if allocator_traits_type:: propagate_on_container_move_assignment is true or this->get>allocator() == x.get_allocator(). Linear otherwise.

    18. -
      deque & operator=(std::initializer_list< value_type > il);
      +
      deque & operator=(std::initializer_list< value_type > il);

      Effects: Makes *this contain the same elements as il.

      Postcondition: this->size() == il.size(). *this contains a copy of each of x's elements.

      Throws: If memory allocation throws or T's copy constructor throws.

      Complexity: Linear to the number of elements in il.

    19. -
      ~deque();
      +
      ~deque();

      Effects: Destroys the deque. All stored values are destroyed and used memory is deallocated.

      Throws: Nothing.

      Complexity: Linear to the number of elements.

      @@ -285,206 +285,206 @@
    -

    -deque public member functions

    +

    +deque public member functions

    1. -
      void assign(size_type n, const T & val);
      +
      void assign(size_type n, const T & val);

      Effects: Assigns the n copies of val to *this.

      Throws: If memory allocation throws or T's copy constructor throws.

      Complexity: Linear to n.

    2. -
      template<typename InIt> void assign(InIt first, InIt last);
      +
      template<typename InIt> void assign(InIt first, InIt last);

      Effects: Assigns the the range [first, last) to *this.

      Throws: If memory allocation throws or T's constructor from dereferencing InIt throws.

      Complexity: Linear to n.

    3. -
      void assign(std::initializer_list< value_type > il);
      +
      void assign(std::initializer_list< value_type > il);

      Effects: Assigns the the range [il.begin(), il.end()) to *this.

      Throws: If memory allocation throws or T's constructor from dereferencing std::initializer_list iterator throws.

      Complexity: Linear to il.size().

    4. -
      allocator_type get_allocator() const noexcept;
      +
      allocator_type get_allocator() const noexcept;

      Effects: Returns a copy of the internal allocator.

      Throws: If allocator's copy constructor throws.

      Complexity: Constant.

    5. -
      const stored_allocator_type & get_stored_allocator() const noexcept;
      +
      const stored_allocator_type & get_stored_allocator() const noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    6. -
      stored_allocator_type & get_stored_allocator() noexcept;
      +
      stored_allocator_type & get_stored_allocator() noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    7. -
      iterator begin() noexcept;
      +
      iterator begin() noexcept;

      Effects: Returns an iterator to the first element contained in the deque.

      Throws: Nothing.

      Complexity: Constant.

    8. -
      const_iterator begin() const noexcept;
      +
      const_iterator begin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the deque.

      Throws: Nothing.

      Complexity: Constant.

    9. -
      iterator end() noexcept;
      +
      iterator end() noexcept;

      Effects: Returns an iterator to the end of the deque.

      Throws: Nothing.

      Complexity: Constant.

    10. -
      const_iterator end() const noexcept;
      +
      const_iterator end() const noexcept;

      Effects: Returns a const_iterator to the end of the deque.

      Throws: Nothing.

      Complexity: Constant.

    11. -
      reverse_iterator rbegin() noexcept;
      +
      reverse_iterator rbegin() noexcept;

      Effects: Returns a reverse_iterator pointing to the beginning of the reversed deque.

      Throws: Nothing.

      Complexity: Constant.

    12. -
      const_reverse_iterator rbegin() const noexcept;
      +
      const_reverse_iterator rbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed deque.

      Throws: Nothing.

      Complexity: Constant.

    13. -
      reverse_iterator rend() noexcept;
      +
      reverse_iterator rend() noexcept;

      Effects: Returns a reverse_iterator pointing to the end of the reversed deque.

      Throws: Nothing.

      Complexity: Constant.

    14. -
      const_reverse_iterator rend() const noexcept;
      +
      const_reverse_iterator rend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed deque.

      Throws: Nothing.

      Complexity: Constant.

    15. -
      const_iterator cbegin() const noexcept;
      +
      const_iterator cbegin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the deque.

      Throws: Nothing.

      Complexity: Constant.

    16. -
      const_iterator cend() const noexcept;
      +
      const_iterator cend() const noexcept;

      Effects: Returns a const_iterator to the end of the deque.

      Throws: Nothing.

      Complexity: Constant.

    17. -
      const_reverse_iterator crbegin() const noexcept;
      +
      const_reverse_iterator crbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed deque.

      Throws: Nothing.

      Complexity: Constant.

    18. -
      const_reverse_iterator crend() const noexcept;
      +
      const_reverse_iterator crend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed deque.

      Throws: Nothing.

      Complexity: Constant.

    19. -
      bool empty() const noexcept;
      +
      bool empty() const noexcept;

      Effects: Returns true if the deque contains no elements.

      Throws: Nothing.

      Complexity: Constant.

    20. -
      size_type size() const noexcept;
      +
      size_type size() const noexcept;

      Effects: Returns the number of the elements contained in the deque.

      Throws: Nothing.

      Complexity: Constant.

    21. -
      size_type max_size() const noexcept;
      +
      size_type max_size() const noexcept;

      Effects: Returns the largest possible size of the deque.

      Throws: Nothing.

      Complexity: Constant.

    22. -
      void resize(size_type new_size);
      +
      void resize(size_type new_size);

      Effects: Inserts or erases elements at the end such that the size becomes n. New elements are value initialized.

      Throws: If memory allocation throws, or T's constructor throws.

      Complexity: Linear to the difference between size() and new_size.

    23. -
      void resize(size_type new_size, default_init_t);
      +
      void resize(size_type new_size, default_init_t);

      Effects: Inserts or erases elements at the end such that the size becomes n. New elements are default initialized.

      Throws: If memory allocation throws, or T's constructor throws.

      Complexity: Linear to the difference between size() and new_size.

      Note: Non-standard extension

    24. -
      void resize(size_type new_size, const value_type & x);
      +
      void resize(size_type new_size, const value_type & x);

      Effects: Inserts or erases elements at the end such that the size becomes n. New elements are copy constructed from x.

      Throws: If memory allocation throws, or T's copy constructor throws.

      Complexity: Linear to the difference between size() and new_size.

    25. -
      void shrink_to_fit();
      +
      void shrink_to_fit();

      Effects: Tries to deallocate the excess of memory created with previous allocations. The size of the deque is unchanged

      Throws: If memory allocation throws.

      Complexity: Constant.

    26. -
      reference front() noexcept;
      +
      reference front() noexcept;

      Requires: !empty()

      Effects: Returns a reference to the first element of the container.

      Throws: Nothing.

      Complexity: Constant.

    27. -
      const_reference front() const noexcept;
      +
      const_reference front() const noexcept;

      Requires: !empty()

      Effects: Returns a const reference to the first element from the beginning of the container.

      Throws: Nothing.

      Complexity: Constant.

    28. -
      reference back() noexcept;
      +
      reference back() noexcept;

      Requires: !empty()

      Effects: Returns a reference to the last element of the container.

      Throws: Nothing.

      Complexity: Constant.

    29. -
      const_reference back() const noexcept;
      +
      const_reference back() const noexcept;

      Requires: !empty()

      Effects: Returns a const reference to the last element of the container.

      Throws: Nothing.

      Complexity: Constant.

    30. -
      reference operator[](size_type n) noexcept;
      +
      reference operator[](size_type n) noexcept;

      Requires: size() > n.

      Effects: Returns a reference to the nth element from the beginning of the container.

      Throws: Nothing.

      Complexity: Constant.

    31. -
      const_reference operator[](size_type n) const noexcept;
      +
      const_reference operator[](size_type n) const noexcept;

      Requires: size() > n.

      Effects: Returns a const reference to the nth element from the beginning of the container.

      Throws: Nothing.

      Complexity: Constant.

    32. -
      iterator nth(size_type n) noexcept;
      +
      iterator nth(size_type n) noexcept;

      Requires: size() >= n.

      Effects: Returns an iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -492,7 +492,7 @@

      Note: Non-standard extension

    33. -
      const_iterator nth(size_type n) const noexcept;
      +
      const_iterator nth(size_type n) const noexcept;

      Requires: size() >= n.

      Effects: Returns a const_iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -500,7 +500,7 @@

      Note: Non-standard extension

    34. -
      size_type index_of(iterator p) noexcept;
      +
      size_type index_of(iterator p) noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -508,7 +508,7 @@

      Note: Non-standard extension

    35. -
      size_type index_of(const_iterator p) const noexcept;
      +
      size_type index_of(const_iterator p) const noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -516,66 +516,66 @@

      Note: Non-standard extension

    36. -
      reference at(size_type n);
      +
      reference at(size_type n);

      Requires: size() > n.

      Effects: Returns a reference to the nth element from the beginning of the container.

      Throws: std::range_error if n >= size()

      Complexity: Constant.

    37. -
      const_reference at(size_type n) const;
      +
      const_reference at(size_type n) const;

      Requires: size() > n.

      Effects: Returns a const reference to the nth element from the beginning of the container.

      Throws: std::range_error if n >= size()

      Complexity: Constant.

    38. -
      template<class... Args> reference emplace_front(Args &&... args);
      +
      template<class... Args> reference emplace_front(Args &&... args);

      Effects: Inserts an object of type T constructed with std::forward<Args>(args)... in the beginning of the deque.

      Returns: A reference to the created object.

      Throws: If memory allocation throws or the in-place constructor throws.

      Complexity: Amortized constant time

    39. -
      template<class... Args> reference emplace_back(Args &&... args);
      +
      template<class... Args> reference emplace_back(Args &&... args);

      Effects: Inserts an object of type T constructed with std::forward<Args>(args)... in the end of the deque.

      Returns: A reference to the created object.

      Throws: If memory allocation throws or the in-place constructor throws.

      Complexity: Amortized constant time

    40. -
      template<class... Args> iterator emplace(const_iterator p, Args &&... args);
      +
      template<class... Args> iterator emplace(const_iterator p, Args &&... args);

      Requires: p must be a valid iterator of *this.

      Effects: Inserts an object of type T constructed with std::forward<Args>(args)... before p

      Throws: If memory allocation throws or the in-place constructor throws.

      Complexity: If p is end(), amortized constant time Linear time otherwise.

    41. -
      void push_front(const T & x);
      +
      void push_front(const T & x);

      Effects: Inserts a copy of x at the front of the deque.

      Throws: If memory allocation throws or T's copy constructor throws.

      Complexity: Amortized constant time.

    42. -
      void push_front(T && x);
      +
      void push_front(T && x);

      Effects: Constructs a new element in the front of the deque and moves the resources of x to this new element.

      Throws: If memory allocation throws.

      Complexity: Amortized constant time.

    43. -
      void push_back(const T & x);
      +
      void push_back(const T & x);

      Effects: Inserts a copy of x at the end of the deque.

      Throws: If memory allocation throws or T's copy constructor throws.

      Complexity: Amortized constant time.

    44. -
      void push_back(T && x);
      +
      void push_back(T && x);

      Effects: Constructs a new element in the end of the deque and moves the resources of x to this new element.

      Throws: If memory allocation throws.

      Complexity: Amortized constant time.

    45. -
      iterator insert(const_iterator p, const T & x);
      +
      iterator insert(const_iterator p, const T & x);

      Requires: p must be a valid iterator of *this.

      Effects: Insert a copy of x before p.

      Returns: an iterator to the inserted element.

      @@ -583,7 +583,7 @@

      Complexity: If p is end(), amortized constant time Linear time otherwise.

    46. -
      iterator insert(const_iterator p, T && x);
      +
      iterator insert(const_iterator p, T && x);

      Requires: p must be a valid iterator of *this.

      Effects: Insert a new element before p with x's resources.

      Returns: an iterator to the inserted element.

      @@ -591,7 +591,7 @@

      Complexity: If p is end(), amortized constant time Linear time otherwise.

    47. -
      iterator insert(const_iterator pos, size_type n, const value_type & x);
      +
      iterator insert(const_iterator pos, size_type n, const value_type & x);

      Requires: pos must be a valid iterator of *this.

      Effects: Insert n copies of x before pos.

      Returns: an iterator to the first inserted element or pos if n is 0.

      @@ -600,7 +600,7 @@
    48. template<typename InIt> 
      -  iterator insert(const_iterator pos, InIt first, InIt last);
      + iterator insert(const_iterator pos, InIt first, InIt last);

      Requires: pos must be a valid iterator of *this.

      Effects: Insert a copy of the [first, last) range before pos.

      Returns: an iterator to the first inserted element or pos if first == last.

      @@ -608,7 +608,7 @@

      Complexity: Linear to distance [first, last).

    49. -
      iterator insert(const_iterator pos, std::initializer_list< value_type > il);
      +
      iterator insert(const_iterator pos, std::initializer_list< value_type > il);

      Requires: pos must be a valid iterator of *this.

      Effects: Insert a copy of the [il.begin(), il.end()) range before pos.

      Returns: an iterator to the first inserted element or pos if il.begin() == il.end().

      @@ -616,37 +616,37 @@

      Complexity: Linear to distance [il.begin(), il.end()).

    50. -
      void pop_front() noexcept;
      +
      void pop_front() noexcept;

      Effects: Removes the first element from the deque.

      Throws: Nothing.

      Complexity: Constant time.

    51. -
      void pop_back() noexcept;
      +
      void pop_back() noexcept;

      Effects: Removes the last element from the deque.

      Throws: Nothing.

      Complexity: Constant time.

    52. -
      iterator erase(const_iterator pos) noexcept;
      +
      iterator erase(const_iterator pos) noexcept;

      Effects: Erases the element at p.

      Throws: Nothing.

      Complexity: Linear to the elements between pos and the last element (if pos is near the end) or the first element if(pos is near the beginning). Constant if pos is the first or the last element.

    53. -
      iterator erase(const_iterator first, const_iterator last) noexcept;
      +
      iterator erase(const_iterator first, const_iterator last) noexcept;

      Effects: Erases the elements pointed by [first, last).

      Throws: Nothing.

      Complexity: Linear to the distance between first and last plus the elements between pos and the last element (if pos is near the end) or the first element if(pos is near the beginning).

    54. -
      void swap(deque & x) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value));
      +
      void swap(deque & x) noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value));

      Effects: Swaps the contents of *this and x.

      Throws: Nothing.

      Complexity: Constant.

    55. -
      void clear() noexcept;
      +
      void clear() noexcept;

      Effects: Erases all the elements of the deque.

      Throws: Nothing.

      Complexity: Linear to the number of elements in the deque.

      @@ -654,41 +654,41 @@
    -

    -deque friend functions

    +

    +deque friend functions

    1. -
      friend bool operator==(const deque & x, const deque & y);
      +
      friend bool operator==(const deque & x, const deque & y);

      Effects: Returns true if x and y are equal

      Complexity: Linear to the number of elements in the container.

    2. -
      friend bool operator!=(const deque & x, const deque & y);
      +
      friend bool operator!=(const deque & x, const deque & y);

      Effects: Returns true if x and y are unequal

      Complexity: Linear to the number of elements in the container.

    3. -
      friend bool operator<(const deque & x, const deque & y);
      +
      friend bool operator<(const deque & x, const deque & y);

      Effects: Returns true if x is less than y

      Complexity: Linear to the number of elements in the container.

    4. -
      friend bool operator>(const deque & x, const deque & y);
      +
      friend bool operator>(const deque & x, const deque & y);

      Effects: Returns true if x is greater than y

      Complexity: Linear to the number of elements in the container.

    5. -
      friend bool operator<=(const deque & x, const deque & y);
      +
      friend bool operator<=(const deque & x, const deque & y);

      Effects: Returns true if x is equal or less than y

      Complexity: Linear to the number of elements in the container.

    6. -
      friend bool operator>=(const deque & x, const deque & y);
      +
      friend bool operator>=(const deque & x, const deque & y);

      Effects: Returns true if x is equal or greater than y

      Complexity: Linear to the number of elements in the container.

    7. -
      friend void swap(deque & x, deque & y);
      +
      friend void swap(deque & x, deque & y);

      Effects: x.swap(y)

      Complexity: Constant.

    8. @@ -698,7 +698,8 @@
    -
    -

    Description

    +

    Description

    The erased_type struct is an empty struct that serves as a placeholder for a type T in situations where the actual type T is determined at runtime. For example, the nested type, allocator_type, is an alias for erased_type in classes that use type-erased allocators.

    -
    -

    Description

    +

    Description

    A flat_map is a kind of associative container that supports unique keys (contains at most one of each key value) and provides for fast retrieval of values of another type T based on the keys.

    A flat_map satisfies all of the requirements of a container, a reversible container and an associative container. A flat_map also provides most operations described for unique keys. For a flat_map<Key,T> the key_type is Key and the value_type is std::pair<Key,T> (unlike std::map<Key, T> which value_type is std::pair<const Key, T>).

    flat_map is similar to std::map but it's implemented by as an ordered sequence container. The underlying sequence container is by default vector but it can also work user-provided vector-like SequenceContainers (like static_vector or small_vector).

    @@ -205,7 +205,7 @@

    -

    Template Parameters

    +

    Template Parameters

    1. typename Key
      @@ -229,59 +229,59 @@
    -

    +

    flat_map public construct/copy/destruct

    1. -
      flat_map() noexcept(container_detail::is_nothrow_default_constructible< AllocatorOrContainer >::value &&container_detail::is_nothrow_default_constructible< Compare >::value));
      +
      flat_map() noexcept(dtl::is_nothrow_default_constructible< AllocatorOrContainer >::value &&dtl::is_nothrow_default_constructible< Compare >::value));

      Effects: Default constructs an empty flat_map.

      Complexity: Constant.

    2. -
      explicit flat_map(const allocator_type & a);
      +
      explicit flat_map(const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified allocator.

      Complexity: Constant.

    3. -
      explicit flat_map(const Compare & comp);
      +
      explicit flat_map(const Compare & comp);

      Effects: Constructs an empty flat_map using the specified comparison object.

      Complexity: Constant.

    4. -
      flat_map(const Compare & comp, const allocator_type & a);
      +
      flat_map(const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified comparison object and allocator.

      Complexity: Constant.

    5. template<typename InputIterator> 
      -  flat_map(InputIterator first, InputIterator last);
      + flat_map(InputIterator first, InputIterator last);

      Effects: Constructs an empty flat_map and and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using the predicate and otherwise N logN, where N is last - first.

    6. template<typename InputIterator> 
      -  flat_map(InputIterator first, InputIterator last, const allocator_type & a);
      + flat_map(InputIterator first, InputIterator last, const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified allocator, and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using the predicate and otherwise N logN, where N is last - first.

    7. template<typename InputIterator> 
      -  flat_map(InputIterator first, InputIterator last, const Compare & comp);
      + flat_map(InputIterator first, InputIterator last, const Compare & comp);

      Effects: Constructs an empty flat_map using the specified comparison object and and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using the predicate and otherwise N logN, where N is last - first.

    8. template<typename InputIterator> 
      -  flat_map(InputIterator first, InputIterator last, const Compare & comp, 
      +  flat_map(InputIterator first, InputIterator last, const Compare & comp, 
                  const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified comparison object and allocator, and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using the predicate and otherwise N logN, where N is last - first.

    9. template<typename InputIterator> 
      -  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last);
      + flat_map(ordered_unique_range_t, InputIterator first, InputIterator last);

      Effects: Constructs an empty flat_map and inserts elements from the ordered range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      Complexity: Linear in N.

      @@ -289,7 +289,7 @@
    10. template<typename InputIterator> 
      -  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, 
      +  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, 
                  const Compare & comp);

      Effects: Constructs an empty flat_map using the specified comparison object and inserts elements from the ordered range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      @@ -298,7 +298,7 @@
    11. template<typename InputIterator> 
      -  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, 
      +  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, 
                  const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified comparison object and allocator, and inserts elements from the ordered range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      @@ -306,35 +306,35 @@

      Note: Non-standard extension.

    12. -
      flat_map(std::initializer_list< value_type > il);
      +
      flat_map(std::initializer_list< value_type > il);

      Effects: Constructs an empty flat_map and inserts elements from the range [il.begin() ,il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using the predicate and otherwise N logN, where N is last - first.

    13. -
      flat_map(std::initializer_list< value_type > il, const allocator_type & a);
      +
      flat_map(std::initializer_list< value_type > il, const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified allocator, and inserts elements from the range [il.begin() ,il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using the predicate and otherwise N logN, where N is last - first.

    14. -
      flat_map(std::initializer_list< value_type > il, const Compare & comp);
      +
      flat_map(std::initializer_list< value_type > il, const Compare & comp);

      Effects: Constructs an empty flat_map using the specified comparison object and inserts elements from the range [il.begin() ,il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using the predicate and otherwise N logN, where N is last - first.

    15. -
      flat_map(std::initializer_list< value_type > il, const Compare & comp, 
      +
      flat_map(std::initializer_list< value_type > il, const Compare & comp, 
                const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified comparison object and allocator, and inserts elements from the range [il.begin() ,il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using the predicate and otherwise N logN, where N is last - first.

    16. -
      flat_map(ordered_unique_range_t, std::initializer_list< value_type > il);
      +
      flat_map(ordered_unique_range_t, std::initializer_list< value_type > il);

      Effects: Constructs an empty flat_map using and inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate and must be unique values.

      Complexity: Linear in N.

      Note: Non-standard extension.

    17. -
      flat_map(ordered_unique_range_t, std::initializer_list< value_type > il, 
      +
      flat_map(ordered_unique_range_t, std::initializer_list< value_type > il, 
                const Compare & comp);

      Effects: Constructs an empty flat_map using the specified comparison object and inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate and must be unique values.

      @@ -342,7 +342,7 @@

      Note: Non-standard extension.

    18. -
      flat_map(ordered_unique_range_t, std::initializer_list< value_type > il, 
      +
      flat_map(ordered_unique_range_t, std::initializer_list< value_type > il, 
                const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified comparison object and allocator, and inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate and must be unique values.

      @@ -350,188 +350,188 @@

      Note: Non-standard extension.

    19. -
      flat_map(const flat_map & x);
      +
      flat_map(const flat_map & x);

      Effects: Copy constructs a flat_map.

      Complexity: Linear in x.size().

    20. -
      flat_map(flat_map && x) noexcept(boost::container::container_detail::is_nothrow_move_constructible< Compare >::value));
      +
      flat_map(flat_map && x) noexcept(boost::container::dtl::is_nothrow_move_constructible< Compare >::value));

      Effects: Move constructs a flat_map. Constructs *this using x's resources.

      Complexity: Constant.

      Postcondition: x is emptied.

    21. -
      flat_map(const flat_map & x, const allocator_type & a);
      +
      flat_map(const flat_map & x, const allocator_type & a);

      Effects: Copy constructs a flat_map using the specified allocator.

      Complexity: Linear in x.size().

    22. -
      flat_map(flat_map && x, const allocator_type & a);
      +
      flat_map(flat_map && x, const allocator_type & a);

      Effects: Move constructs a flat_map using the specified allocator. Constructs *this using x's resources.

      Complexity: Constant if x.get_allocator() == a, linear otherwise.

    23. -
      flat_map & operator=(const flat_map & x);
      +
      flat_map & operator=(const flat_map & x);

      Effects: Makes *this a copy of x.

      Complexity: Linear in x.size().

    24. -
      flat_map & operator=(flat_map && x) noexcept((allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)&&boost::container::container_detail::is_nothrow_move_assignable< Compare >::value));
      +
      flat_map & operator=(flat_map && x) noexcept((allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)&&boost::container::dtl::is_nothrow_move_assignable< Compare >::value));

      Effects: Move constructs a flat_map. Constructs *this using x's resources.

      Throws: If allocator_traits_type::propagate_on_container_move_assignment is false and (allocation throws or value_type's move constructor throws)

      Complexity: Constant if allocator_traits_type:: propagate_on_container_move_assignment is true or this->get>allocator() == x.get_allocator(). Linear otherwise.

    25. -
      flat_map & operator=(std::initializer_list< value_type > il);
      +
      flat_map & operator=(std::initializer_list< value_type > il);
      Effects: Assign elements from il to *this
    -

    -flat_map public member functions

    +

    +flat_map public member functions

      -
    1.  BOOST_STATIC_ASSERT(unspecified);
    2. +
    3.  BOOST_STATIC_ASSERT((dtl::is_same< std::pair< Key, T >, typename allocator_type::value_type >::value));
    4. -
      allocator_type get_allocator() const noexcept;
      +
      allocator_type get_allocator() const noexcept;

      Effects: Returns a copy of the allocator that was passed to the object's constructor.

      Complexity: Constant.

    5. -
      get_stored_allocator_noconst_return_t get_stored_allocator() noexcept;
      +
      get_stored_allocator_noconst_return_t get_stored_allocator() noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    6. -
      get_stored_allocator_const_return_t get_stored_allocator() const noexcept;
      +
      get_stored_allocator_const_return_t get_stored_allocator() const noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    7. -
      iterator begin() noexcept;
      +
      iterator begin() noexcept;

      Effects: Returns an iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    8. -
      const_iterator begin() const noexcept;
      +
      const_iterator begin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    9. -
      iterator end() noexcept;
      +
      iterator end() noexcept;

      Effects: Returns an iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    10. -
      const_iterator end() const noexcept;
      +
      const_iterator end() const noexcept;

      Effects: Returns a const_iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    11. -
      reverse_iterator rbegin() noexcept;
      +
      reverse_iterator rbegin() noexcept;

      Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    12. -
      const_reverse_iterator rbegin() const noexcept;
      +
      const_reverse_iterator rbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    13. -
      reverse_iterator rend() noexcept;
      +
      reverse_iterator rend() noexcept;

      Effects: Returns a reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    14. -
      const_reverse_iterator rend() const noexcept;
      +
      const_reverse_iterator rend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    15. -
      const_iterator cbegin() const noexcept;
      +
      const_iterator cbegin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    16. -
      const_iterator cend() const noexcept;
      +
      const_iterator cend() const noexcept;

      Effects: Returns a const_iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    17. -
      const_reverse_iterator crbegin() const noexcept;
      +
      const_reverse_iterator crbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    18. -
      const_reverse_iterator crend() const noexcept;
      +
      const_reverse_iterator crend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    19. -
      bool empty() const noexcept;
      +
      bool empty() const noexcept;

      Effects: Returns true if the container contains no elements.

      Throws: Nothing.

      Complexity: Constant.

    20. -
      size_type size() const noexcept;
      +
      size_type size() const noexcept;

      Effects: Returns the number of the elements contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    21. -
      size_type max_size() const noexcept;
      +
      size_type max_size() const noexcept;

      Effects: Returns the largest possible size of the container.

      Throws: Nothing.

      Complexity: Constant.

    22. -
      size_type capacity() const noexcept;
      +
      size_type capacity() const noexcept;

      Effects: Number of elements for which memory has been allocated. capacity() is always greater than or equal to size().

      Throws: Nothing.

      Complexity: Constant.

    23. -
      void reserve(size_type cnt);
      +
      void reserve(size_type cnt);

      Effects: If n is less than or equal to capacity(), or the underlying container has no reserve member, this call has no effect. Otherwise, it is a request for allocation of additional memory. If the request is successful, then capacity() is greater than or equal to n; otherwise, capacity() is unchanged. In either case, size() is unchanged.

      Throws: If memory allocation allocation throws or T's copy constructor throws.

      Note: If capacity() is less than "cnt", iterators and references to to values might be invalidated.

    24. -
      void shrink_to_fit();
      +
      void shrink_to_fit();
      Effects: Tries to deallocate the excess of memory created

      Throws: If memory allocation throws, or T's copy constructor throws.

      Complexity: Linear to size().

    25. -
      mapped_type & operator[](const key_type & k);
      +
      mapped_type & operator[](const key_type & k);

      Effects: If there is no key equivalent to x in the flat_map, inserts value_type(x, T()) into the flat_map.

      Returns: A reference to the mapped_type corresponding to x in *this.

      Complexity: Logarithmic.

    26. -
      mapped_type & operator[](key_type && k);
      +
      mapped_type & operator[](key_type && k);

      Effects: If there is no key equivalent to x in the flat_map, inserts value_type(move(x), T()) into the flat_map (the key is move-constructed)

      Returns: A reference to the mapped_type corresponding to x in *this.

      Complexity: Logarithmic.

    27. template<typename M> 
      -  std::pair< iterator, bool > insert_or_assign(const key_type & k, M && obj);
      + std::pair< iterator, bool > insert_or_assign(const key_type & k, M && obj);

      Effects: If a key equivalent to k already exists in the container, assigns forward<M>(obj) to the mapped_type corresponding to the key k. If the key does not exist, inserts the new value as if by insert, constructing it from value_type(k, forward<M>(obj)).

      No iterators or references are invalidated. If the insertion is successful, pointers and references to the element obtained while it is held in the node handle are invalidated, and pointers and references obtained to that element before it was extracted become valid.

      Returns: The bool component is true if the insertion took place and false if the assignment took place. The iterator component is pointing at the element that was inserted or updated.

      @@ -539,7 +539,7 @@
    28. template<typename M> 
      -  std::pair< iterator, bool > insert_or_assign(key_type && k, M && obj);
      + std::pair< iterator, bool > insert_or_assign(key_type && k, M && obj);

      Effects: If a key equivalent to k already exists in the container, assigns forward<M>(obj) to the mapped_type corresponding to the key k. If the key does not exist, inserts the new value as if by insert, constructing it from value_type(k, move(obj)).

      No iterators or references are invalidated. If the insertion is successful, pointers and references to the element obtained while it is held in the node handle are invalidated, and pointers and references obtained to that element before it was extracted become valid.

      Returns: The bool component is true if the insertion took place and false if the assignment took place. The iterator component is pointing at the element that was inserted or updated.

      @@ -547,7 +547,7 @@
    29. template<typename M> 
      -  iterator insert_or_assign(const_iterator hint, const key_type & k, M && obj);
      + iterator insert_or_assign(const_iterator hint, const key_type & k, M && obj);

      Effects: If a key equivalent to k already exists in the container, assigns forward<M>(obj) to the mapped_type corresponding to the key k. If the key does not exist, inserts the new value as if by insert, constructing it from value_type(k, forward<M>(obj)) and the new element to the container as close as possible to the position just before hint.

      No iterators or references are invalidated. If the insertion is successful, pointers and references to the element obtained while it is held in the node handle are invalidated, and pointers and references obtained to that element before it was extracted become valid.

      Returns: The bool component is true if the insertion took place and false if the assignment took place. The iterator component is pointing at the element that was inserted or updated.

      @@ -555,14 +555,14 @@
    30. template<typename M> 
      -  iterator insert_or_assign(const_iterator hint, key_type && k, M && obj);
      + iterator insert_or_assign(const_iterator hint, key_type && k, M && obj);

      Effects: If a key equivalent to k already exists in the container, assigns forward<M>(obj) to the mapped_type corresponding to the key k. If the key does not exist, inserts the new value as if by insert, constructing it from value_type(k, move(obj)) and the new element to the container as close as possible to the position just before hint.

      No iterators or references are invalidated. If the insertion is successful, pointers and references to the element obtained while it is held in the node handle are invalidated, and pointers and references obtained to that element before it was extracted become valid.

      Returns: The bool component is true if the insertion took place and false if the assignment took place. The iterator component is pointing at the element that was inserted or updated.

      Complexity: Logarithmic in the size of the container in general, but amortized constant if the new element is inserted just before hint.

    31. -
      iterator nth(size_type n) noexcept;
      +
      iterator nth(size_type n) noexcept;

      Requires: size() >= n.

      Effects: Returns an iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -570,7 +570,7 @@

      Note: Non-standard extension

    32. -
      const_iterator nth(size_type n) const noexcept;
      +
      const_iterator nth(size_type n) const noexcept;

      Requires: size() >= n.

      Effects: Returns a const_iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -578,7 +578,7 @@

      Note: Non-standard extension

    33. -
      size_type index_of(iterator p) noexcept;
      +
      size_type index_of(iterator p) noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -586,7 +586,7 @@

      Note: Non-standard extension

    34. -
      size_type index_of(const_iterator p) const noexcept;
      +
      size_type index_of(const_iterator p) const noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -594,19 +594,19 @@

      Note: Non-standard extension

    35. -
      T & at(const key_type & k);
      +
      T & at(const key_type & k);

      Returns: A reference to the element whose key is equivalent to x.

      Throws: An exception object of type out_of_range if no such element is present.

      Complexity: logarithmic.

    36. -
      const T & at(const key_type & k) const;
      +
      const T & at(const key_type & k) const;

      Returns: A reference to the element whose key is equivalent to x.

      Throws: An exception object of type out_of_range if no such element is present.

      Complexity: logarithmic.

    37. -
      template<class... Args> std::pair< iterator, bool > emplace(Args &&... args);
      +
      template<class... Args> std::pair< iterator, bool > emplace(Args &&... args);

      Effects: Inserts an object x of type T constructed with std::forward<Args>(args)... if and only if there is no element in the container with key equivalent to the key of x.

      Returns: The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      @@ -614,7 +614,7 @@
    38. template<class... Args> 
      -  iterator emplace_hint(const_iterator hint, Args &&... args);
      + iterator emplace_hint(const_iterator hint, Args &&... args);

      Effects: Inserts an object of type T constructed with std::forward<Args>(args)... in the container if and only if there is no element in the container with key equivalent to the key of x. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      @@ -622,7 +622,7 @@
    39. template<class... Args> 
      -  std::pair< iterator, bool > try_emplace(const key_type & k, Args &&... args);
      + std::pair< iterator, bool > try_emplace(const key_type & k, Args &&... args);

      Requires: value_type shall be EmplaceConstructible into map from piecewise_construct, forward_as_tuple(k), forward_as_tuple(forward<Args>(args)...).

      Effects: If the map already contains an element whose key is equivalent to k, there is no effect. Otherwise inserts an object of type value_type constructed with piecewise_construct, forward_as_tuple(k), forward_as_tuple(forward<Args>(args)...).

      Returns: The bool component of the returned pair is true if and only if the insertion took place. The returned iterator points to the map element whose key is equivalent to k.

      @@ -630,7 +630,7 @@
    40. template<class... Args> 
      -  iterator try_emplace(const_iterator hint, const key_type & k, 
      +  iterator try_emplace(const_iterator hint, const key_type & k, 
                              Args &&... args);

      Requires: value_type shall be EmplaceConstructible into map from piecewise_construct, forward_as_tuple(k), forward_as_tuple(forward<Args>(args)...).

      Effects: If the map already contains an element whose key is equivalent to k, there is no effect. Otherwise inserts an object of type value_type constructed with piecewise_construct, forward_as_tuple(k), forward_as_tuple(forward<Args>(args)...).

      @@ -639,7 +639,7 @@
    41. template<class... Args> 
      -  std::pair< iterator, bool > try_emplace(key_type && k, Args &&... args);
      + std::pair< iterator, bool > try_emplace(key_type && k, Args &&... args);

      Requires: value_type shall be EmplaceConstructible into map from piecewise_construct, forward_as_tuple(move(k)), forward_as_tuple(forward<Args>(args)...).

      Effects: If the map already contains an element whose key is equivalent to k, there is no effect. Otherwise inserts an object of type value_type constructed with piecewise_construct, forward_as_tuple(move(k)), forward_as_tuple(forward<Args>(args)...).

      Returns: The bool component of the returned pair is true if and only if the insertion took place. The returned iterator points to the map element whose key is equivalent to k.

      @@ -647,49 +647,49 @@
    42. template<class... Args> 
      -  iterator try_emplace(const_iterator hint, key_type && k, Args &&... args);
      + iterator try_emplace(const_iterator hint, key_type && k, Args &&... args);

      Requires: value_type shall be EmplaceConstructible into map from piecewise_construct, forward_as_tuple(move(k)), forward_as_tuple(forward<Args>(args)...).

      Effects: If the map already contains an element whose key is equivalent to k, there is no effect. Otherwise inserts an object of type value_type constructed with piecewise_construct, forward_as_tuple(move(k)), forward_as_tuple(forward<Args>(args)...).

      Returns: The returned iterator points to the map element whose key is equivalent to k.

      Complexity: Logarithmic in general, but amortized constant if value is inserted right before p.

    43. -
      std::pair< iterator, bool > insert(const value_type & x);
      +
      std::pair< iterator, bool > insert(const value_type & x);

      Effects: Inserts x if and only if there is no element in the container with key equivalent to the key of x.

      Returns: The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    44. -
      std::pair< iterator, bool > insert(value_type && x);
      +
      std::pair< iterator, bool > insert(value_type && x);

      Effects: Inserts a new value_type move constructed from the pair if and only if there is no element in the container with key equivalent to the key of x.

      Returns: The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    45. -
      std::pair< iterator, bool > insert(movable_value_type && x);
      +
      std::pair< iterator, bool > insert(movable_value_type && x);

      Effects: Inserts a new value_type move constructed from the pair if and only if there is no element in the container with key equivalent to the key of x.

      Returns: The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    46. -
      iterator insert(const_iterator p, const value_type & x);
      +
      iterator insert(const_iterator p, const value_type & x);

      Effects: Inserts a copy of x in the container if and only if there is no element in the container with key equivalent to the key of x. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    47. -
      iterator insert(const_iterator p, value_type && x);
      +
      iterator insert(const_iterator p, value_type && x);

      Effects: Inserts an element move constructed from x in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    48. -
      iterator insert(const_iterator p, movable_value_type && x);
      +
      iterator insert(const_iterator p, movable_value_type && x);

      Effects: Inserts an element move constructed from x in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      @@ -697,39 +697,39 @@
    49. template<typename InputIterator> 
      -  void insert(InputIterator first, InputIterator last);
      + void insert(InputIterator first, InputIterator last);

      Requires: first, last are not iterators into *this.

      Effects: inserts each element from the range [first,last) if and only if there is no element with key equivalent to the key of that element.

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: N log(size()+N).

      Note: If an element is inserted it might invalidate elements.

    50. template<typename InputIterator> 
      -  void insert(ordered_unique_range_t, InputIterator first, InputIterator last);
      + void insert(ordered_unique_range_t, InputIterator first, InputIterator last);

      Requires: first, last are not iterators into *this.

      Requires: [first ,last) must be ordered according to the predicate and must be unique values.

      Effects: inserts each element from the range [first,last) if and only if there is no element with key equivalent to the key of that element. This function is more efficient than the normal range creation for ordered ranges.

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: Linear.

      Note: If an element is inserted it might invalidate elements.

      Note: Non-standard extension.

    51. -
      void insert(std::initializer_list< value_type > il);
      +
      void insert(std::initializer_list< value_type > il);

      Effects: inserts each element from the range [il.begin(), il.end()) if and only if there is no element with key equivalent to the key of that element.

      -

      Complexity: At most N log(size()+N) (N is the distance from il.first() to il.end()) search time plus N*size() insertion time.

      +

      Complexity: N log(N).

      Note: If an element is inserted it might invalidate elements.

    52. -
      void insert(ordered_unique_range_t, std::initializer_list< value_type > il);
      +
      void insert(ordered_unique_range_t, std::initializer_list< value_type > il);

      Requires: [il.begin(), il.end()) must be ordered according to the predicate and must be unique values.

      Effects: inserts each element from the range [il.begin(), il.end()) if and only if there is no element with key equivalent to the key of that element. This function is more efficient than the normal range creation for ordered ranges.

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: Linear.

      Note: If an element is inserted it might invalidate elements.

      Note: Non-standard extension.

    53. template<typename C2> 
      -  void merge(flat_map< Key, T, C2, AllocatorOrContainer > & source);
      + void merge(flat_map< Key, T, C2, AllocatorOrContainer > & source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -738,7 +738,7 @@
    54. template<typename C2> 
      -  void merge(flat_map< Key, T, C2, AllocatorOrContainer > && source);
      + void merge(flat_map< Key, T, C2, AllocatorOrContainer > && source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -747,7 +747,7 @@
    55. template<typename C2> 
      -  void merge(flat_multimap< Key, T, C2, AllocatorOrContainer > & source);
      + void merge(flat_multimap< Key, T, C2, AllocatorOrContainer > & source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -756,7 +756,7 @@
    56. template<typename C2> 
      -  void merge(flat_multimap< Key, T, C2, AllocatorOrContainer > && source);
      + void merge(flat_multimap< Key, T, C2, AllocatorOrContainer > && source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -764,108 +764,108 @@

      Complexity: N log(a.size() + N) (N has the value source.size())

    57. -
      iterator erase(const_iterator p);
      +
      iterator erase(const_iterator p);

      Effects: Erases the element pointed to by p.

      Returns: Returns an iterator pointing to the element immediately following q prior to the element being erased. If no such element exists, returns end().

      Complexity: Linear to the elements with keys bigger than p

      Note: Invalidates elements with keys not less than the erased element.

    58. -
      size_type erase(const key_type & x);
      +
      size_type erase(const key_type & x);

      Effects: Erases all elements in the container with key equivalent to x.

      Returns: Returns the number of erased elements.

      Complexity: Logarithmic search time plus erasure time linear to the elements with bigger keys.

    59. -
      iterator erase(const_iterator first, const_iterator last);
      +
      iterator erase(const_iterator first, const_iterator last);

      Effects: Erases all the elements in the range [first, last).

      Returns: Returns last.

      Complexity: size()*N where N is the distance from first to last.

      Complexity: Logarithmic search time plus erasure time linear to the elements with bigger keys.

    60. -
      void swap(flat_map & x) noexcept(allocator_traits_type::is_always_equal::value &&boost::container::container_detail::is_nothrow_swappable< Compare >::value));
      +
      void swap(flat_map & x) noexcept(allocator_traits_type::is_always_equal::value &&boost::container::dtl::is_nothrow_swappable< Compare >::value));

      Effects: Swaps the contents of *this and x.

      Throws: Nothing.

      Complexity: Constant.

    61. -
      void clear() noexcept;
      +
      void clear() noexcept;

      Effects: erase(a.begin(),a.end()).

      Postcondition: size() == 0.

      Complexity: linear in size().

    62. -
      key_compare key_comp() const;
      +
      key_compare key_comp() const;

      Effects: Returns the comparison object out of which a was constructed.

      Complexity: Constant.

    63. -
      value_compare value_comp() const;
      +
      value_compare value_comp() const;

      Effects: Returns an object of value_compare constructed out of the comparison object.

      Complexity: Constant.

    64. -
      iterator find(const key_type & x);
      +
      iterator find(const key_type & x);

      Returns: An iterator pointing to an element with the key equivalent to x, or end() if such an element is not found.

      Complexity: Logarithmic.

    65. -
      const_iterator find(const key_type & x) const;
      +
      const_iterator find(const key_type & x) const;

      Returns: A const_iterator pointing to an element with the key equivalent to x, or end() if such an element is not found.

      Complexity: Logarithmic.

    66. -
      size_type count(const key_type & x) const;
      +
      size_type count(const key_type & x) const;

      Returns: The number of elements with key equivalent to x.

      Complexity: log(size())+count(k)

    67. -
      iterator lower_bound(const key_type & x);
      +
      iterator lower_bound(const key_type & x);

      Returns: An iterator pointing to the first element with key not less than k, or a.end() if such an element is not found.

      Complexity: Logarithmic.

    68. -
      const_iterator lower_bound(const key_type & x) const;
      +
      const_iterator lower_bound(const key_type & x) const;

      Returns: A const iterator pointing to the first element with key not less than k, or a.end() if such an element is not found.

      Complexity: Logarithmic.

    69. -
      iterator upper_bound(const key_type & x);
      +
      iterator upper_bound(const key_type & x);

      Returns: An iterator pointing to the first element with key not less than x, or end() if such an element is not found.

      Complexity: Logarithmic.

    70. -
      const_iterator upper_bound(const key_type & x) const;
      +
      const_iterator upper_bound(const key_type & x) const;

      Returns: A const iterator pointing to the first element with key not less than x, or end() if such an element is not found.

      Complexity: Logarithmic.

    71. -
      std::pair< iterator, iterator > equal_range(const key_type & x);
      +
      std::pair< iterator, iterator > equal_range(const key_type & x);

      Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).

      Complexity: Logarithmic.

    72. std::pair< const_iterator, const_iterator > 
      -equal_range(const key_type & x) const;
      +equal_range(const key_type & x) const;

      Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).

      Complexity: Logarithmic.

    73. -
      sequence_type extract_sequence();
      +
      sequence_type extract_sequence();

      Effects: Extracts the internal sequence container.

      Complexity: Same as the move constructor of sequence_type, usually constant.

      Postcondition: this->empty()

      Throws: If secuence_type's move constructor throws

    74. -
      void adopt_sequence(sequence_type && seq);
      +
      void adopt_sequence(sequence_type && seq);

      Effects: Discards the internally hold sequence container and adopts the one passed externally using the move assignment. Erases non-unique elements.

      Complexity: Assuming O(1) move assignment, O(NlogN) with N = seq.size()

      Throws: If the comparison or the move constructor throws

    75. -
      void adopt_sequence(ordered_unique_range_t, sequence_type && seq);
      +
      void adopt_sequence(ordered_unique_range_t, sequence_type && seq);

      Requires: seq shall be ordered according to this->compare() and shall contain unique elements.

      Effects: Discards the internally hold sequence container and adopts the one passed externally using the move assignment.

      Complexity: Assuming O(1) move assignment, O(1)

      @@ -874,41 +874,41 @@
    -

    -flat_map friend functions

    +

    +flat_map friend functions

    1. -
      friend bool operator==(const flat_map & x, const flat_map & y);
      +
      friend bool operator==(const flat_map & x, const flat_map & y);

      Effects: Returns true if x and y are equal

      Complexity: Linear to the number of elements in the container.

    2. -
      friend bool operator!=(const flat_map & x, const flat_map & y);
      +
      friend bool operator!=(const flat_map & x, const flat_map & y);

      Effects: Returns true if x and y are unequal

      Complexity: Linear to the number of elements in the container.

    3. -
      friend bool operator<(const flat_map & x, const flat_map & y);
      +
      friend bool operator<(const flat_map & x, const flat_map & y);

      Effects: Returns true if x is less than y

      Complexity: Linear to the number of elements in the container.

    4. -
      friend bool operator>(const flat_map & x, const flat_map & y);
      +
      friend bool operator>(const flat_map & x, const flat_map & y);

      Effects: Returns true if x is greater than y

      Complexity: Linear to the number of elements in the container.

    5. -
      friend bool operator<=(const flat_map & x, const flat_map & y);
      +
      friend bool operator<=(const flat_map & x, const flat_map & y);

      Effects: Returns true if x is equal or less than y

      Complexity: Linear to the number of elements in the container.

    6. -
      friend bool operator>=(const flat_map & x, const flat_map & y);
      +
      friend bool operator>=(const flat_map & x, const flat_map & y);

      Effects: Returns true if x is equal or greater than y

      Complexity: Linear to the number of elements in the container.

    7. -
      friend void swap(flat_map & x, flat_map & y);
      +
      friend void swap(flat_map & x, flat_map & y);

      Effects: x.swap(y)

      Complexity: Constant.

    8. @@ -918,7 +918,8 @@
    -
    -

    Description

    +

    Description

    A flat_multimap is a kind of associative container that supports equivalent keys (possibly containing multiple copies of the same key value) and provides for fast retrieval of values of another type T based on the keys.

    A flat_multimap satisfies all of the requirements of a container and of a reversible container and of an associative container. For a flat_multimap<Key,T> the key_type is Key and the value_type is std::pair<Key,T> (unlike std::multimap<Key, T> which value_type is std::pair<const Key, T>).

    flat_multimap is similar to std::multimap but it's implemented by as an ordered sequence container. The underlying sequence container is by default vector but it can also work user-provided vector-like SequenceContainers (like static_vector or small_vector).

    @@ -186,7 +186,7 @@

    -

    Template Parameters

    +

    Template Parameters

    1. typename Key
      @@ -210,60 +210,60 @@
    -

    +

    flat_multimap public construct/copy/destruct

    1. -
      flat_multimap() noexcept(container_detail::is_nothrow_default_constructible< AllocatorOrContainer >::value &&container_detail::is_nothrow_default_constructible< Compare >::value));
      +
      flat_multimap() noexcept(dtl::is_nothrow_default_constructible< AllocatorOrContainer >::value &&dtl::is_nothrow_default_constructible< Compare >::value));

      Effects: Default constructs an empty flat_map.

      Complexity: Constant.

    2. -
      explicit flat_multimap(const allocator_type & a);
      +
      explicit flat_multimap(const allocator_type & a);

      Effects: Constructs an empty flat_multimap using the specified allocator.

      Complexity: Constant.

    3. -
      explicit flat_multimap(const Compare & comp);
      +
      explicit flat_multimap(const Compare & comp);

      Effects: Constructs an empty flat_multimap using the specified comparison object .

      Complexity: Constant.

    4. -
      flat_multimap(const Compare & comp, const allocator_type & a);
      +
      flat_multimap(const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty flat_multimap using the specified comparison object and allocator.

      Complexity: Constant.

    5. template<typename InputIterator> 
      -  flat_multimap(InputIterator first, InputIterator last);
      + flat_multimap(InputIterator first, InputIterator last);

      Effects: Constructs an empty flat_multimap and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using the predicate and otherwise N logN, where N is last - first.

    6. template<typename InputIterator> 
      -  flat_multimap(InputIterator first, InputIterator last, 
      +  flat_multimap(InputIterator first, InputIterator last, 
                       const allocator_type & a);

      Effects: Constructs an empty flat_multimap using the specified allocator, and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using the predicate and otherwise N logN, where N is last - first.

    7. template<typename InputIterator> 
      -  flat_multimap(InputIterator first, InputIterator last, const Compare & comp);
      + flat_multimap(InputIterator first, InputIterator last, const Compare & comp);

      Effects: Constructs an empty flat_multimap using the specified comparison object and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using the predicate and otherwise N logN, where N is last - first.

    8. template<typename InputIterator> 
      -  flat_multimap(InputIterator first, InputIterator last, const Compare & comp, 
      +  flat_multimap(InputIterator first, InputIterator last, const Compare & comp, 
                       const allocator_type & a);

      Effects: Constructs an empty flat_multimap using the specified comparison object and allocator, and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using the predicate and otherwise N logN, where N is last - first.

    9. template<typename InputIterator> 
      -  flat_multimap(ordered_range_t, InputIterator first, InputIterator last);
      + flat_multimap(ordered_range_t, InputIterator first, InputIterator last);

      Effects: Constructs an empty flat_multimap and inserts elements from the ordered range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      Complexity: Linear in N.

      @@ -271,7 +271,7 @@
    10. template<typename InputIterator> 
      -  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, 
      +  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, 
                       const Compare & comp);

      Effects: Constructs an empty flat_multimap using the specified comparison object and inserts elements from the ordered range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      @@ -280,7 +280,7 @@
    11. template<typename InputIterator> 
      -  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, 
      +  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, 
                       const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty flat_multimap using the specified comparison object and allocator, and inserts elements from the ordered range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      @@ -288,36 +288,36 @@

      Note: Non-standard extension.

    12. -
      flat_multimap(std::initializer_list< value_type > il);
      +
      flat_multimap(std::initializer_list< value_type > il);

      Effects: Constructs an empty flat_map and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using the predicate and otherwise N logN, where N is last - first.

    13. -
      flat_multimap(std::initializer_list< value_type > il, 
      +
      flat_multimap(std::initializer_list< value_type > il, 
                     const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified allocator, and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using the predicate and otherwise N logN, where N is last - first.

    14. -
      flat_multimap(std::initializer_list< value_type > il, const Compare & comp);
      +
      flat_multimap(std::initializer_list< value_type > il, const Compare & comp);

      Effects: Constructs an empty flat_map using the specified comparison object and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using the predicate and otherwise N logN, where N is last - first.

    15. -
      flat_multimap(std::initializer_list< value_type > il, const Compare & comp, 
      +
      flat_multimap(std::initializer_list< value_type > il, const Compare & comp, 
                     const allocator_type & a);

      Effects: Constructs an empty flat_map using the specified comparison object and allocator, and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using the predicate and otherwise N logN, where N is last - first.

    16. -
      flat_multimap(ordered_range_t, std::initializer_list< value_type > il);
      +
      flat_multimap(ordered_range_t, std::initializer_list< value_type > il);

      Effects: Constructs an empty flat_multimap and inserts elements from the ordered range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate.

      Complexity: Linear in N.

      Note: Non-standard extension.

    17. -
      flat_multimap(ordered_range_t, std::initializer_list< value_type > il, 
      +
      flat_multimap(ordered_range_t, std::initializer_list< value_type > il, 
                     const Compare & comp);

      Effects: Constructs an empty flat_multimap using the specified comparison object and inserts elements from the ordered range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate.

      @@ -325,7 +325,7 @@

      Note: Non-standard extension.

    18. -
      flat_multimap(ordered_range_t, std::initializer_list< value_type > il, 
      +
      flat_multimap(ordered_range_t, std::initializer_list< value_type > il, 
                     const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty flat_multimap using the specified comparison object and allocator, and inserts elements from the ordered range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate.

      @@ -333,177 +333,177 @@

      Note: Non-standard extension.

    19. -
      flat_multimap(const flat_multimap & x);
      +
      flat_multimap(const flat_multimap & x);

      Effects: Copy constructs a flat_multimap.

      Complexity: Linear in x.size().

    20. -
      flat_multimap(flat_multimap && x) noexcept(boost::container::container_detail::is_nothrow_move_constructible< Compare >::value));
      +
      flat_multimap(flat_multimap && x) noexcept(boost::container::dtl::is_nothrow_move_constructible< Compare >::value));

      Effects: Move constructs a flat_multimap. Constructs *this using x's resources.

      Complexity: Constant.

      Postcondition: x is emptied.

    21. -
      flat_multimap(const flat_multimap & x, const allocator_type & a);
      +
      flat_multimap(const flat_multimap & x, const allocator_type & a);

      Effects: Copy constructs a flat_multimap using the specified allocator.

      Complexity: Linear in x.size().

    22. -
      flat_multimap(flat_multimap && x, const allocator_type & a);
      +
      flat_multimap(flat_multimap && x, const allocator_type & a);

      Effects: Move constructs a flat_multimap using the specified allocator. Constructs *this using x's resources.

      Complexity: Constant if a == x.get_allocator(), linear otherwise.

    23. -
      flat_multimap & operator=(const flat_multimap & x);
      +
      flat_multimap & operator=(const flat_multimap & x);

      Effects: Makes *this a copy of x.

      Complexity: Linear in x.size().

    24. flat_multimap & 
      -operator=(flat_multimap && x) noexcept((allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)&&boost::container::container_detail::is_nothrow_move_assignable< Compare >::value));
      +operator=(flat_multimap && x) noexcept((allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)&&boost::container::dtl::is_nothrow_move_assignable< Compare >::value));

      Effects: this->swap(x.get()).

      Complexity: Constant.

    25. -
      flat_multimap & operator=(std::initializer_list< value_type > il);
      +
      flat_multimap & operator=(std::initializer_list< value_type > il);

      Effects: Assign content of il to *this

      Complexity: Linear in il.size().

    -

    -flat_multimap public member functions

    +

    +flat_multimap public member functions

      -
    1.  BOOST_STATIC_ASSERT(unspecified);
    2. +
    3.  BOOST_STATIC_ASSERT((dtl::is_same< std::pair< Key, T >, typename AllocatorOrContainer::value_type >::value));
    4. -
      allocator_type get_allocator() const noexcept;
      +
      allocator_type get_allocator() const noexcept;

      Effects: Returns a copy of the allocator that was passed to the object's constructor.

      Complexity: Constant.

    5. -
      stored_allocator_type & get_stored_allocator() noexcept;
      +
      stored_allocator_type & get_stored_allocator() noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    6. -
      const stored_allocator_type & get_stored_allocator() const noexcept;
      +
      const stored_allocator_type & get_stored_allocator() const noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    7. -
      iterator begin() noexcept;
      +
      iterator begin() noexcept;

      Effects: Returns an iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    8. -
      const_iterator begin() const noexcept;
      +
      const_iterator begin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    9. -
      iterator end() noexcept;
      +
      iterator end() noexcept;

      Effects: Returns an iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    10. -
      const_iterator end() const noexcept;
      +
      const_iterator end() const noexcept;

      Effects: Returns a const_iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    11. -
      reverse_iterator rbegin() noexcept;
      +
      reverse_iterator rbegin() noexcept;

      Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    12. -
      const_reverse_iterator rbegin() const noexcept;
      +
      const_reverse_iterator rbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    13. -
      reverse_iterator rend() noexcept;
      +
      reverse_iterator rend() noexcept;

      Effects: Returns a reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    14. -
      const_reverse_iterator rend() const noexcept;
      +
      const_reverse_iterator rend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    15. -
      const_iterator cbegin() const noexcept;
      +
      const_iterator cbegin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    16. -
      const_iterator cend() const noexcept;
      +
      const_iterator cend() const noexcept;

      Effects: Returns a const_iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    17. -
      const_reverse_iterator crbegin() const noexcept;
      +
      const_reverse_iterator crbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    18. -
      const_reverse_iterator crend() const noexcept;
      +
      const_reverse_iterator crend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    19. -
      bool empty() const noexcept;
      +
      bool empty() const noexcept;

      Effects: Returns true if the container contains no elements.

      Throws: Nothing.

      Complexity: Constant.

    20. -
      size_type size() const noexcept;
      +
      size_type size() const noexcept;

      Effects: Returns the number of the elements contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    21. -
      size_type max_size() const noexcept;
      +
      size_type max_size() const noexcept;

      Effects: Returns the largest possible size of the container.

      Throws: Nothing.

      Complexity: Constant.

    22. -
      size_type capacity() const noexcept;
      +
      size_type capacity() const noexcept;

      Effects: Number of elements for which memory has been allocated. capacity() is always greater than or equal to size().

      Throws: Nothing.

      Complexity: Constant.

    23. -
      void reserve(size_type cnt);
      +
      void reserve(size_type cnt);

      Effects: If n is less than or equal to capacity(), or the underlying container has no reserve member, this call has no effect. Otherwise, it is a request for allocation of additional memory. If the request is successful, then capacity() is greater than or equal to n; otherwise, capacity() is unchanged. In either case, size() is unchanged.

      Throws: If memory allocation allocation throws or T's copy constructor throws.

      Note: If capacity() is less than "cnt", iterators and references to to values might be invalidated.

    24. -
      void shrink_to_fit();
      +
      void shrink_to_fit();
      Effects: Tries to deallocate the excess of memory created

      Throws: If memory allocation throws, or T's copy constructor throws.

      Complexity: Linear to size().

    25. -
      iterator nth(size_type n) noexcept;
      +
      iterator nth(size_type n) noexcept;

      Requires: size() >= n.

      Effects: Returns an iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -511,7 +511,7 @@

      Note: Non-standard extension

    26. -
      const_iterator nth(size_type n) const noexcept;
      +
      const_iterator nth(size_type n) const noexcept;

      Requires: size() >= n.

      Effects: Returns a const_iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -519,7 +519,7 @@

      Note: Non-standard extension

    27. -
      size_type index_of(iterator p) noexcept;
      +
      size_type index_of(iterator p) noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -527,7 +527,7 @@

      Note: Non-standard extension

    28. -
      size_type index_of(const_iterator p) const noexcept;
      +
      size_type index_of(const_iterator p) const noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -535,53 +535,53 @@

      Note: Non-standard extension

    29. -
      template<class... Args> iterator emplace(Args &&... args);
      +
      template<class... Args> iterator emplace(Args &&... args);

      Effects: Inserts an object of type T constructed with std::forward<Args>(args)... and returns the iterator pointing to the newly inserted element.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    30. template<class... Args> 
      -  iterator emplace_hint(const_iterator hint, Args &&... args);
      + iterator emplace_hint(const_iterator hint, Args &&... args);

      Effects: Inserts an object of type T constructed with std::forward<Args>(args)... in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant time if the value is to be inserted before p) plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    31. -
      iterator insert(const value_type & x);
      +
      iterator insert(const value_type & x);

      Effects: Inserts x and returns the iterator pointing to the newly inserted element.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    32. -
      iterator insert(value_type && x);
      +
      iterator insert(value_type && x);

      Effects: Inserts a new value move-constructed from x and returns the iterator pointing to the newly inserted element.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    33. -
      iterator insert(impl_value_type && x);
      +
      iterator insert(impl_value_type && x);

      Effects: Inserts a new value move-constructed from x and returns the iterator pointing to the newly inserted element.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    34. -
      iterator insert(const_iterator p, const value_type & x);
      +
      iterator insert(const_iterator p, const value_type & x);

      Effects: Inserts a copy of x in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant time if the value is to be inserted before p) plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    35. -
      iterator insert(const_iterator p, value_type && x);
      +
      iterator insert(const_iterator p, value_type && x);

      Effects: Inserts a value move constructed from x in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant time if the value is to be inserted before p) plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    36. -
      iterator insert(const_iterator p, impl_value_type && x);
      +
      iterator insert(const_iterator p, impl_value_type && x);

      Effects: Inserts a value move constructed from x in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant time if the value is to be inserted before p) plus linear insertion to the elements with bigger keys than x.

      @@ -589,39 +589,39 @@
    37. template<typename InputIterator> 
      -  void insert(InputIterator first, InputIterator last);
      + void insert(InputIterator first, InputIterator last);

      Requires: first, last are not iterators into *this.

      Effects: inserts each element from the range [first,last) .

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: N log(N).

      Note: If an element is inserted it might invalidate elements.

    38. template<typename InputIterator> 
      -  void insert(ordered_range_t, InputIterator first, InputIterator last);
      + void insert(ordered_range_t, InputIterator first, InputIterator last);

      Requires: first, last are not iterators into *this.

      Requires: [first ,last) must be ordered according to the predicate.

      Effects: inserts each element from the range [first,last) if and only if there is no element with key equivalent to the key of that element. This function is more efficient than the normal range creation for ordered ranges.

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: Linear.

      Note: If an element is inserted it might invalidate elements.

      Note: Non-standard extension.

    39. -
      void insert(std::initializer_list< value_type > il);
      +
      void insert(std::initializer_list< value_type > il);

      Effects: inserts each element from the range [il.begin(), il.end()) .

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: N log(N).

      Note: If an element is inserted it might invalidate elements.

    40. -
      void insert(ordered_range_t, std::initializer_list< value_type > il);
      +
      void insert(ordered_range_t, std::initializer_list< value_type > il);

      Requires: [il.begin(), il.end()) must be ordered according to the predicate.

      Effects: inserts each element from the range [il.begin(), il.end()) if and only if there is no element with key equivalent to the key of that element. This function is more efficient than the normal range creation for ordered ranges.

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: Linear.

      Note: If an element is inserted it might invalidate elements.

      Note: Non-standard extension.

    41. template<typename C2> 
      -  void merge(flat_multimap< Key, T, C2, AllocatorOrContainer > & source);
      + void merge(flat_multimap< Key, T, C2, AllocatorOrContainer > & source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Extracts each element in source and insert it into a using the comparison object of *this.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -630,7 +630,7 @@
    42. template<typename C2> 
      -  void merge(flat_multimap< Key, T, C2, AllocatorOrContainer > && source);
      + void merge(flat_multimap< Key, T, C2, AllocatorOrContainer > && source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Extracts each element in source and insert it into a using the comparison object of *this.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -639,7 +639,7 @@
    43. template<typename C2> 
      -  void merge(flat_map< Key, T, C2, AllocatorOrContainer > & source);
      + void merge(flat_map< Key, T, C2, AllocatorOrContainer > & source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Extracts each element in source and insert it into a using the comparison object of *this.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -648,7 +648,7 @@
    44. template<typename C2> 
      -  void merge(flat_map< Key, T, C2, AllocatorOrContainer > && source);
      + void merge(flat_map< Key, T, C2, AllocatorOrContainer > && source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Extracts each element in source and insert it into a using the comparison object of *this.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -656,108 +656,108 @@

      Complexity: N log(a.size() + N) (N has the value source.size())

    45. -
      iterator erase(const_iterator p);
      +
      iterator erase(const_iterator p);

      Effects: Erases the element pointed to by p.

      Returns: Returns an iterator pointing to the element immediately following q prior to the element being erased. If no such element exists, returns end().

      Complexity: Linear to the elements with keys bigger than p

      Note: Invalidates elements with keys not less than the erased element.

    46. -
      size_type erase(const key_type & x);
      +
      size_type erase(const key_type & x);

      Effects: Erases all elements in the container with key equivalent to x.

      Returns: Returns the number of erased elements.

      Complexity: Logarithmic search time plus erasure time linear to the elements with bigger keys.

    47. -
      iterator erase(const_iterator first, const_iterator last);
      +
      iterator erase(const_iterator first, const_iterator last);

      Effects: Erases all the elements in the range [first, last).

      Returns: Returns last.

      Complexity: size()*N where N is the distance from first to last.

      Complexity: Logarithmic search time plus erasure time linear to the elements with bigger keys.

    48. -
      void swap(flat_multimap & x) noexcept(allocator_traits_type::is_always_equal::value &&boost::container::container_detail::is_nothrow_swappable< Compare >::value));
      +
      void swap(flat_multimap & x) noexcept(allocator_traits_type::is_always_equal::value &&boost::container::dtl::is_nothrow_swappable< Compare >::value));

      Effects: Swaps the contents of *this and x.

      Throws: Nothing.

      Complexity: Constant.

    49. -
      void clear() noexcept;
      +
      void clear() noexcept;

      Effects: erase(a.begin(),a.end()).

      Postcondition: size() == 0.

      Complexity: linear in size().

    50. -
      key_compare key_comp() const;
      +
      key_compare key_comp() const;

      Effects: Returns the comparison object out of which a was constructed.

      Complexity: Constant.

    51. -
      value_compare value_comp() const;
      +
      value_compare value_comp() const;

      Effects: Returns an object of value_compare constructed out of the comparison object.

      Complexity: Constant.

    52. -
      iterator find(const key_type & x);
      +
      iterator find(const key_type & x);

      Returns: An iterator pointing to an element with the key equivalent to x, or end() if such an element is not found.

      Complexity: Logarithmic.

    53. -
      const_iterator find(const key_type & x) const;
      +
      const_iterator find(const key_type & x) const;

      Returns: An const_iterator pointing to an element with the key equivalent to x, or end() if such an element is not found.

      Complexity: Logarithmic.

    54. -
      size_type count(const key_type & x) const;
      +
      size_type count(const key_type & x) const;

      Returns: The number of elements with key equivalent to x.

      Complexity: log(size())+count(k)

    55. -
      iterator lower_bound(const key_type & x);
      +
      iterator lower_bound(const key_type & x);

      Returns: An iterator pointing to the first element with key not less than k, or a.end() if such an element is not found.

      Complexity: Logarithmic

    56. -
      const_iterator lower_bound(const key_type & x) const;
      +
      const_iterator lower_bound(const key_type & x) const;

      Returns: A const iterator pointing to the first element with key not less than k, or a.end() if such an element is not found.

      Complexity: Logarithmic

    57. -
      iterator upper_bound(const key_type & x);
      +
      iterator upper_bound(const key_type & x);

      Returns: An iterator pointing to the first element with key not less than x, or end() if such an element is not found.

      Complexity: Logarithmic

    58. -
      const_iterator upper_bound(const key_type & x) const;
      +
      const_iterator upper_bound(const key_type & x) const;

      Returns: A const iterator pointing to the first element with key not less than x, or end() if such an element is not found.

      Complexity: Logarithmic

    59. -
      std::pair< iterator, iterator > equal_range(const key_type & x);
      +
      std::pair< iterator, iterator > equal_range(const key_type & x);

      Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).

      Complexity: Logarithmic

    60. std::pair< const_iterator, const_iterator > 
      -equal_range(const key_type & x) const;
      +equal_range(const key_type & x) const;

      Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).

      Complexity: Logarithmic

    61. -
      sequence_type extract_sequence();
      +
      sequence_type extract_sequence();

      Effects: Extracts the internal sequence container.

      Complexity: Same as the move constructor of sequence_type, usually constant.

      Postcondition: this->empty()

      Throws: If secuence_type's move constructor throws

    62. -
      void adopt_sequence(sequence_type && seq);
      +
      void adopt_sequence(sequence_type && seq);

      Effects: Discards the internally hold sequence container and adopts the one passed externally using the move assignment.

      Complexity: Assuming O(1) move assignment, O(NlogN) with N = seq.size()

      Throws: If the comparison or the move constructor throws

    63. -
      void adopt_sequence(ordered_range_t, sequence_type && seq);
      +
      void adopt_sequence(ordered_range_t, sequence_type && seq);

      Requires: seq shall be ordered according to this->compare().

      Effects: Discards the internally hold sequence container and adopts the one passed externally using the move assignment.

      Complexity: Assuming O(1) move assignment, O(1)

      @@ -766,41 +766,41 @@
    -

    -flat_multimap friend functions

    +

    +flat_multimap friend functions

    1. -
      friend bool operator==(const flat_multimap & x, const flat_multimap & y);
      +
      friend bool operator==(const flat_multimap & x, const flat_multimap & y);

      Effects: Returns true if x and y are equal

      Complexity: Linear to the number of elements in the container.

    2. -
      friend bool operator!=(const flat_multimap & x, const flat_multimap & y);
      +
      friend bool operator!=(const flat_multimap & x, const flat_multimap & y);

      Effects: Returns true if x and y are unequal

      Complexity: Linear to the number of elements in the container.

    3. -
      friend bool operator<(const flat_multimap & x, const flat_multimap & y);
      +
      friend bool operator<(const flat_multimap & x, const flat_multimap & y);

      Effects: Returns true if x is less than y

      Complexity: Linear to the number of elements in the container.

    4. -
      friend bool operator>(const flat_multimap & x, const flat_multimap & y);
      +
      friend bool operator>(const flat_multimap & x, const flat_multimap & y);

      Effects: Returns true if x is greater than y

      Complexity: Linear to the number of elements in the container.

    5. -
      friend bool operator<=(const flat_multimap & x, const flat_multimap & y);
      +
      friend bool operator<=(const flat_multimap & x, const flat_multimap & y);

      Effects: Returns true if x is equal or less than y

      Complexity: Linear to the number of elements in the container.

    6. -
      friend bool operator>=(const flat_multimap & x, const flat_multimap & y);
      +
      friend bool operator>=(const flat_multimap & x, const flat_multimap & y);

      Effects: Returns true if x is equal or greater than y

      Complexity: Linear to the number of elements in the container.

    7. -
      friend void swap(flat_multimap & x, flat_multimap & y);
      +
      friend void swap(flat_multimap & x, flat_multimap & y);

      Effects: x.swap(y)

      Complexity: Constant.

    8. @@ -810,7 +810,8 @@
    -
    -

    Description

    +

    Description

    flat_multiset is a Sorted Associative Container that stores objects of type Key and can store multiple copies of the same key value.

    flat_multiset is similar to std::multiset but it's implemented by as an ordered sequence container. The underlying sequence container is by default vector but it can also work user-provided vector-like SequenceContainers (like static_vector or small_vector).

    Using vector-like sequence containers means that inserting a new element into a flat_multiset might invalidate previous iterators and references (unless that sequence container is stable_vector or a similar container that offers stable pointers and references). Similarly, erasing an element might invalidate iterators and references pointing to elements that come after (their keys are bigger) the erased element.

    @@ -180,7 +180,7 @@

    -

    Template Parameters

    +

    Template Parameters

    1. typename Key
      @@ -203,60 +203,60 @@
    -

    +

    flat_multiset public construct/copy/destruct

    1. -
      flat_multiset() noexcept(container_detail::is_nothrow_default_constructible< AllocatorOrContainer >::value &&container_detail::is_nothrow_default_constructible< Compare >::value));
      +
      flat_multiset() noexcept(dtl::is_nothrow_default_constructible< AllocatorOrContainer >::value &&dtl::is_nothrow_default_constructible< Compare >::value));

      Effects: Default constructs an empty container.

      Complexity: Constant.

    2. -
      explicit flat_multiset(const Compare & comp);
      +
      explicit flat_multiset(const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object.

      Complexity: Constant.

    3. -
      explicit flat_multiset(const allocator_type & a);
      +
      explicit flat_multiset(const allocator_type & a);

      Effects: Constructs an empty container using the specified allocator.

      Complexity: Constant.

    4. -
      flat_multiset(const Compare & comp, const allocator_type & a);
      +
      flat_multiset(const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator.

      Complexity: Constant.

    5. template<typename InputIterator> 
      -  flat_multiset(InputIterator first, InputIterator last);
      + flat_multiset(InputIterator first, InputIterator last);

      Effects: Constructs an empty container and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using comp and otherwise N logN, where N is last - first.

    6. template<typename InputIterator> 
      -  flat_multiset(InputIterator first, InputIterator last, 
      +  flat_multiset(InputIterator first, InputIterator last, 
                       const allocator_type & a);

      Effects: Constructs an empty container using the specified allocator, and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using comp and otherwise N logN, where N is last - first.

    7. template<typename InputIterator> 
      -  flat_multiset(InputIterator first, InputIterator last, const Compare & comp);
      + flat_multiset(InputIterator first, InputIterator last, const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using comp and otherwise N logN, where N is last - first.

    8. template<typename InputIterator> 
      -  flat_multiset(InputIterator first, InputIterator last, const Compare & comp, 
      +  flat_multiset(InputIterator first, InputIterator last, const Compare & comp, 
                       const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator, and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using comp and otherwise N logN, where N is last - first.

    9. template<typename InputIterator> 
      -  flat_multiset(ordered_range_t, InputIterator first, InputIterator last);
      + flat_multiset(ordered_range_t, InputIterator first, InputIterator last);

      Effects: Constructs an empty flat_multiset and inserts elements from the ordered range [first ,last ). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      Complexity: Linear in N.

      @@ -264,7 +264,7 @@
    10. template<typename InputIterator> 
      -  flat_multiset(ordered_range_t, InputIterator first, InputIterator last, 
      +  flat_multiset(ordered_range_t, InputIterator first, InputIterator last, 
                       const Compare & comp);

      Effects: Constructs an empty flat_multiset using the specified comparison object and inserts elements from the ordered range [first ,last ). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      @@ -273,7 +273,7 @@
    11. template<typename InputIterator> 
      -  flat_multiset(ordered_range_t, InputIterator first, InputIterator last, 
      +  flat_multiset(ordered_range_t, InputIterator first, InputIterator last, 
                       const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty flat_multiset using the specified comparison object and allocator, and inserts elements from the ordered range [first, last ). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate.

      @@ -281,36 +281,36 @@

      Note: Non-standard extension.

    12. -
      flat_multiset(std::initializer_list< value_type > il);
      +
      flat_multiset(std::initializer_list< value_type > il);

      Effects: Default constructs an empty container.

      Complexity: Constant.

    13. -
      flat_multiset(std::initializer_list< value_type > il, 
      +
      flat_multiset(std::initializer_list< value_type > il, 
                     const allocator_type & a);

      Effects: Constructs an empty container using the specified allocator, and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using comp and otherwise N logN, where N is il.begin() - il.end().

    14. -
      flat_multiset(std::initializer_list< value_type > il, const Compare & comp);
      +
      flat_multiset(std::initializer_list< value_type > il, const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using comp and otherwise N logN, where N is il.begin() - il.end().

    15. -
      flat_multiset(std::initializer_list< value_type > il, const Compare & comp, 
      +
      flat_multiset(std::initializer_list< value_type > il, const Compare & comp, 
                     const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator, and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using comp and otherwise N logN, where N is il.begin() - il.end().

    16. -
      flat_multiset(ordered_range_t, std::initializer_list< value_type > il);
      +
      flat_multiset(ordered_range_t, std::initializer_list< value_type > il);

      Effects: Constructs an empty containerand inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate.

      Complexity: Linear in N.

      Note: Non-standard extension.

    17. -
      flat_multiset(ordered_range_t, std::initializer_list< value_type > il, 
      +
      flat_multiset(ordered_range_t, std::initializer_list< value_type > il, 
                     const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object and inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate.

      @@ -318,7 +318,7 @@

      Note: Non-standard extension.

    18. -
      flat_multiset(ordered_range_t, std::initializer_list< value_type > il, 
      +
      flat_multiset(ordered_range_t, std::initializer_list< value_type > il, 
                     const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator, and inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate.

      @@ -326,209 +326,209 @@

      Note: Non-standard extension.

    19. -
      flat_multiset(const flat_multiset & x);
      +
      flat_multiset(const flat_multiset & x);

      Effects: Copy constructs the container.

      Complexity: Linear in x.size().

    20. -
      flat_multiset(flat_multiset && x) noexcept(boost::container::container_detail::is_nothrow_move_constructible< Compare >::value));
      +
      flat_multiset(flat_multiset && x) noexcept(boost::container::dtl::is_nothrow_move_constructible< Compare >::value));

      Effects: Move constructs thecontainer. Constructs *this using x's resources.

      Complexity: Constant.

      Postcondition: x is emptied.

    21. -
      flat_multiset(const flat_multiset & x, const allocator_type & a);
      +
      flat_multiset(const flat_multiset & x, const allocator_type & a);

      Effects: Copy constructs a container using the specified allocator.

      Complexity: Linear in x.size().

    22. -
      flat_multiset(flat_multiset && x, const allocator_type & a);
      +
      flat_multiset(flat_multiset && x, const allocator_type & a);

      Effects: Move constructs a container using the specified allocator. Constructs *this using x's resources.

      Complexity: Constant if a == x.get_allocator(), linear otherwise

    23. -
      flat_multiset & operator=(const flat_multiset & x);
      +
      flat_multiset & operator=(const flat_multiset & x);

      Effects: Makes *this a copy of x.

      Complexity: Linear in x.size().

    24. flat_multiset & 
      -operator=(flat_multiset && x) noexcept((allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)&&boost::container::container_detail::is_nothrow_move_assignable< Compare >::value));
      +operator=(flat_multiset && x) noexcept((allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)&&boost::container::dtl::is_nothrow_move_assignable< Compare >::value));

      Throws: If allocator_traits_type::propagate_on_container_move_assignment is false and (allocation throws or value_type's move constructor throws)

      Complexity: Constant if allocator_traits_type:: propagate_on_container_move_assignment is true or this->get>allocator() == x.get_allocator(). Linear otherwise.

    25. -
      flat_multiset & operator=(std::initializer_list< value_type > il);
      +
      flat_multiset & operator=(std::initializer_list< value_type > il);

      Effects: Copy all elements from il to *this.

      Complexity: Linear in il.size().

    -

    -flat_multiset public member functions

    +

    +flat_multiset public member functions

    1. -
      allocator_type get_allocator() const noexcept;
      +
      allocator_type get_allocator() const noexcept;

      Effects: Returns a copy of the allocator that was passed to the object's constructor.

      Complexity: Constant.

    2. -
      stored_allocator_type & get_stored_allocator() noexcept;
      +
      stored_allocator_type & get_stored_allocator() noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    3. -
      const stored_allocator_type & get_stored_allocator() const noexcept;
      +
      const stored_allocator_type & get_stored_allocator() const noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    4. -
      iterator begin() noexcept;
      +
      iterator begin() noexcept;

      Effects: Returns an iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    5. -
      const_iterator begin() const;
      +
      const_iterator begin() const;

      Effects: Returns a const_iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    6. -
      const_iterator cbegin() const noexcept;
      +
      const_iterator cbegin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    7. -
      iterator end() noexcept;
      +
      iterator end() noexcept;

      Effects: Returns an iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    8. -
      const_iterator end() const noexcept;
      +
      const_iterator end() const noexcept;

      Effects: Returns a const_iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    9. -
      const_iterator cend() const noexcept;
      +
      const_iterator cend() const noexcept;

      Effects: Returns a const_iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    10. -
      reverse_iterator rbegin() noexcept;
      +
      reverse_iterator rbegin() noexcept;

      Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    11. -
      const_reverse_iterator rbegin() const noexcept;
      +
      const_reverse_iterator rbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    12. -
      const_reverse_iterator crbegin() const noexcept;
      +
      const_reverse_iterator crbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    13. -
      reverse_iterator rend() noexcept;
      +
      reverse_iterator rend() noexcept;

      Effects: Returns a reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    14. -
      const_reverse_iterator rend() const noexcept;
      +
      const_reverse_iterator rend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    15. -
      const_reverse_iterator crend() const noexcept;
      +
      const_reverse_iterator crend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    16. -
      bool empty() const noexcept;
      +
      bool empty() const noexcept;

      Effects: Returns true if the container contains no elements.

      Throws: Nothing.

      Complexity: Constant.

    17. -
      size_type size() const noexcept;
      +
      size_type size() const noexcept;

      Effects: Returns the number of the elements contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    18. -
      size_type max_size() const noexcept;
      +
      size_type max_size() const noexcept;

      Effects: Returns the largest possible size of the container.

      Throws: Nothing.

      Complexity: Constant.

    19. -
      size_type capacity() const noexcept;
      +
      size_type capacity() const noexcept;

      Effects: Number of elements for which memory has been allocated. capacity() is always greater than or equal to size().

      Throws: Nothing.

      Complexity: Constant.

    20. -
      void reserve(size_type cnt);
      +
      void reserve(size_type cnt);

      Effects: If n is less than or equal to capacity(), or the underlying container has no reserve member, this call has no effect. Otherwise, it is a request for allocation of additional memory. If the request is successful, then capacity() is greater than or equal to n; otherwise, capacity() is unchanged. In either case, size() is unchanged.

      Throws: If memory allocation allocation throws or T's copy constructor throws.

      Note: If capacity() is less than "cnt", iterators and references to to values might be invalidated.

    21. -
      void shrink_to_fit();
      +
      void shrink_to_fit();
      Effects: Tries to deallocate the excess of memory created

      Throws: If memory allocation throws, or Key's copy constructor throws.

      Complexity: Linear to size().

    22. -
      template<class... Args> iterator emplace(Args &&... args);
      +
      template<class... Args> iterator emplace(Args &&... args);

      Effects: Inserts an object of type Key constructed with std::forward<Args>(args)... and returns the iterator pointing to the newly inserted element.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    23. template<class... Args> 
      -  iterator emplace_hint(const_iterator p, Args &&... args);
      + iterator emplace_hint(const_iterator p, Args &&... args);

      Effects: Inserts an object of type Key constructed with std::forward<Args>(args)... in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    24. -
      iterator insert(const value_type & x);
      +
      iterator insert(const value_type & x);

      Effects: Inserts x and returns the iterator pointing to the newly inserted element.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    25. -
      iterator insert(value_type && x);
      +
      iterator insert(value_type && x);

      Effects: Inserts a new value_type move constructed from x and returns the iterator pointing to the newly inserted element.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    26. -
      iterator insert(const_iterator p, const value_type & x);
      +
      iterator insert(const_iterator p, const value_type & x);

      Effects: Inserts a copy of x in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    27. -
      iterator insert(const_iterator p, value_type && x);
      +
      iterator insert(const_iterator p, value_type && x);

      Effects: Inserts a new value move constructed from x in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      @@ -536,36 +536,36 @@
    28. template<typename InputIterator> 
      -  void insert(InputIterator first, InputIterator last);
      + void insert(InputIterator first, InputIterator last);

      Requires: first, last are not iterators into *this.

      Effects: inserts each element from the range [first,last) .

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: N log(N).

      Note: If an element is inserted it might invalidate elements.

    29. template<typename InputIterator> 
      -  void insert(ordered_range_t, InputIterator first, InputIterator last);
      + void insert(ordered_range_t, InputIterator first, InputIterator last);

      Requires: first, last are not iterators into *this and must be ordered according to the predicate.

      Effects: inserts each element from the range [first,last) .This function is more efficient than the normal range creation for ordered ranges.

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: Linear.

      Note: Non-standard extension. If an element is inserted it might invalidate elements.

    30. -
      void insert(std::initializer_list< value_type > il);
      +
      void insert(std::initializer_list< value_type > il);

      Effects: inserts each element from the range [il.begin(), il.end()).

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: N log(N).

      Note: If an element is inserted it might invalidate elements.

    31. -
      void insert(ordered_range_t, std::initializer_list< value_type > il);
      +
      void insert(ordered_range_t, std::initializer_list< value_type > il);

      Requires: Range [il.begin(), il.end()) must be ordered according to the predicate.

      Effects: inserts each element from the range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      -

      Complexity: At most N log(size()+N) (N is the distance from il.begin() to il.end()) search time plus N*size() insertion time.

      +

      Complexity: Linear.

      Note: Non-standard extension. If an element is inserted it might invalidate elements.

    32. template<typename C2> 
      -  void merge(flat_multiset< Key, C2, AllocatorOrContainer > & source);
      + void merge(flat_multiset< Key, C2, AllocatorOrContainer > & source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Extracts each element in source and insert it into a using the comparison object of *this.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -574,7 +574,7 @@
    33. template<typename C2> 
      -  void merge(flat_multiset< Key, C2, AllocatorOrContainer > && source);
      + void merge(flat_multiset< Key, C2, AllocatorOrContainer > && source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Extracts each element in source and insert it into a using the comparison object of *this.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -583,7 +583,7 @@
    34. template<typename C2> 
      -  void merge(flat_set< Key, C2, AllocatorOrContainer > & source);
      + void merge(flat_set< Key, C2, AllocatorOrContainer > & source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Extracts each element in source and insert it into a using the comparison object of *this.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -592,7 +592,7 @@
    35. template<typename C2> 
      -  void merge(flat_set< Key, C2, AllocatorOrContainer > && source);
      + void merge(flat_set< Key, C2, AllocatorOrContainer > && source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Extracts each element in source and insert it into a using the comparison object of *this.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -600,59 +600,59 @@

      Complexity: N log(a.size() + N) (N has the value source.size())

    36. -
      iterator erase(const_iterator p);
      +
      iterator erase(const_iterator p);

      Effects: Erases the element pointed to by p.

      Returns: Returns an iterator pointing to the element immediately following q prior to the element being erased. If no such element exists, returns end().

      Complexity: Linear to the elements with keys bigger than p

      Note: Invalidates elements with keys not less than the erased element.

    37. -
      size_type erase(const key_type & x);
      +
      size_type erase(const key_type & x);

      Effects: Erases all elements in the container with key equivalent to x.

      Returns: Returns the number of erased elements.

      Complexity: Logarithmic search time plus erasure time linear to the elements with bigger keys.

    38. -
      iterator erase(const_iterator first, const_iterator last);
      +
      iterator erase(const_iterator first, const_iterator last);

      Effects: Erases all the elements in the range [first, last).

      Returns: Returns last.

      Complexity: size()*N where N is the distance from first to last.

      Complexity: Logarithmic search time plus erasure time linear to the elements with bigger keys.

    39. -
      void swap(flat_multiset & x) noexcept(allocator_traits_type::is_always_equal::value &&boost::container::container_detail::is_nothrow_swappable< Compare >::value));
      +
      void swap(flat_multiset & x) noexcept(allocator_traits_type::is_always_equal::value &&boost::container::dtl::is_nothrow_swappable< Compare >::value));

      Effects: Swaps the contents of *this and x.

      Throws: Nothing.

      Complexity: Constant.

    40. -
      void clear() noexcept;
      +
      void clear() noexcept;

      Effects: erase(a.begin(),a.end()).

      Postcondition: size() == 0.

      Complexity: linear in size().

    41. -
      key_compare key_comp() const;
      +
      key_compare key_comp() const;

      Effects: Returns the comparison object out of which a was constructed.

      Complexity: Constant.

    42. -
      value_compare value_comp() const;
      +
      value_compare value_comp() const;

      Effects: Returns an object of value_compare constructed out of the comparison object.

      Complexity: Constant.

    43. -
      iterator find(const key_type & x);
      +
      iterator find(const key_type & x);

      Returns: An iterator pointing to an element with the key equivalent to x, or end() if such an element is not found.

      Complexity: Logarithmic.

    44. -
      const_iterator find(const key_type & x) const;
      +
      const_iterator find(const key_type & x) const;

      Returns: A const_iterator pointing to an element with the key equivalent to x, or end() if such an element is not found.

      Complexity: Logarithmic.

    45. -
      iterator nth(size_type n) noexcept;
      +
      iterator nth(size_type n) noexcept;

      Requires: size() >= n.

      Effects: Returns an iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -660,7 +660,7 @@

      Note: Non-standard extension

    46. -
      const_iterator nth(size_type n) const noexcept;
      +
      const_iterator nth(size_type n) const noexcept;

      Requires: size() >= n.

      Effects: Returns a const_iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -668,7 +668,7 @@

      Note: Non-standard extension

    47. -
      size_type index_of(iterator p) noexcept;
      +
      size_type index_of(iterator p) noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -676,7 +676,7 @@

      Note: Non-standard extension

    48. -
      size_type index_of(const_iterator p) const noexcept;
      +
      size_type index_of(const_iterator p) const noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -684,56 +684,56 @@

      Note: Non-standard extension

    49. -
      size_type count(const key_type & x) const;
      +
      size_type count(const key_type & x) const;

      Returns: The number of elements with key equivalent to x.

      Complexity: log(size())+count(k)

    50. -
      iterator lower_bound(const key_type & x);
      +
      iterator lower_bound(const key_type & x);

      Returns: An iterator pointing to the first element with key not less than k, or a.end() if such an element is not found.

      Complexity: Logarithmic

    51. -
      const_iterator lower_bound(const key_type & x) const;
      +
      const_iterator lower_bound(const key_type & x) const;

      Returns: A const iterator pointing to the first element with key not less than k, or a.end() if such an element is not found.

      Complexity: Logarithmic

    52. -
      iterator upper_bound(const key_type & x);
      +
      iterator upper_bound(const key_type & x);

      Returns: An iterator pointing to the first element with key not less than x, or end() if such an element is not found.

      Complexity: Logarithmic

    53. -
      const_iterator upper_bound(const key_type & x) const;
      +
      const_iterator upper_bound(const key_type & x) const;

      Returns: A const iterator pointing to the first element with key not less than x, or end() if such an element is not found.

      Complexity: Logarithmic

    54. std::pair< const_iterator, const_iterator > 
      -equal_range(const key_type & x) const;
      +equal_range(const key_type & x) const;

      Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).

      Complexity: Logarithmic

    55. -
      std::pair< iterator, iterator > equal_range(const key_type & x);
      +
      std::pair< iterator, iterator > equal_range(const key_type & x);

      Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).

      Complexity: Logarithmic

    56. -
      sequence_type extract_sequence();
      +
      sequence_type extract_sequence();

      Effects: Extracts the internal sequence container.

      Complexity: Same as the move constructor of sequence_type, usually constant.

      Postcondition: this->empty()

      Throws: If secuence_type's move constructor throws

    57. -
      void adopt_sequence(sequence_type && seq);
      +
      void adopt_sequence(sequence_type && seq);

      Effects: Discards the internally hold sequence container and adopts the one passed externally using the move assignment.

      Complexity: Assuming O(1) move assignment, O(NlogN) with N = seq.size()

      Throws: If the comparison or the move constructor throws

    58. -
      void adopt_sequence(ordered_range_t, sequence_type && seq);
      +
      void adopt_sequence(ordered_range_t, sequence_type && seq);

      Requires: seq shall be ordered according to this->compare()

      Effects: Discards the internally hold sequence container and adopts the one passed externally using the move assignment.

      Complexity: Assuming O(1) move assignment, O(1)

      @@ -742,41 +742,41 @@
    -

    -flat_multiset friend functions

    +

    +flat_multiset friend functions

    1. -
      friend bool operator==(const flat_multiset & x, const flat_multiset & y);
      +
      friend bool operator==(const flat_multiset & x, const flat_multiset & y);

      Effects: Returns true if x and y are equal

      Complexity: Linear to the number of elements in the container.

    2. -
      friend bool operator!=(const flat_multiset & x, const flat_multiset & y);
      +
      friend bool operator!=(const flat_multiset & x, const flat_multiset & y);

      Effects: Returns true if x and y are unequal

      Complexity: Linear to the number of elements in the container.

    3. -
      friend bool operator<(const flat_multiset & x, const flat_multiset & y);
      +
      friend bool operator<(const flat_multiset & x, const flat_multiset & y);

      Effects: Returns true if x is less than y

      Complexity: Linear to the number of elements in the container.

    4. -
      friend bool operator>(const flat_multiset & x, const flat_multiset & y);
      +
      friend bool operator>(const flat_multiset & x, const flat_multiset & y);

      Effects: Returns true if x is greater than y

      Complexity: Linear to the number of elements in the container.

    5. -
      friend bool operator<=(const flat_multiset & x, const flat_multiset & y);
      +
      friend bool operator<=(const flat_multiset & x, const flat_multiset & y);

      Effects: Returns true if x is equal or less than y

      Complexity: Linear to the number of elements in the container.

    6. -
      friend bool operator>=(const flat_multiset & x, const flat_multiset & y);
      +
      friend bool operator>=(const flat_multiset & x, const flat_multiset & y);

      Effects: Returns true if x is equal or greater than y

      Complexity: Linear to the number of elements in the container.

    7. -
      friend void swap(flat_multiset & x, flat_multiset & y);
      +
      friend void swap(flat_multiset & x, flat_multiset & y);

      Effects: x.swap(y)

      Complexity: Constant.

    8. @@ -786,7 +786,8 @@
    -
    -

    Description

    +

    Description

    flat_set is a Sorted Associative Container that stores objects of type Key. It is also a Unique Associative Container, meaning that no two elements are the same.

    flat_set is similar to std::set but it's implemented by as an ordered sequence container. The underlying sequence container is by default vector but it can also work user-provided vector-like SequenceContainers (like static_vector or small_vector).

    Using vector-like sequence containers means that inserting a new element into a flat_set might invalidate previous iterators and references (unless that sequence container is stable_vector or a similar container that offers stable pointers and references). Similarly, erasing an element might invalidate iterators and references pointing to elements that come after (their keys are bigger) the erased element.

    @@ -179,7 +179,7 @@

    -

    Template Parameters

    +

    Template Parameters

    1. typename Key
      @@ -202,59 +202,59 @@
    -

    +

    flat_set public construct/copy/destruct

    1. -
      flat_set() noexcept(container_detail::is_nothrow_default_constructible< AllocatorOrContainer >::value &&container_detail::is_nothrow_default_constructible< Compare >::value));
      +
      flat_set() noexcept(dtl::is_nothrow_default_constructible< AllocatorOrContainer >::value &&dtl::is_nothrow_default_constructible< Compare >::value));

      Effects: Default constructs an empty container.

      Complexity: Constant.

    2. -
      explicit flat_set(const Compare & comp);
      +
      explicit flat_set(const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object.

      Complexity: Constant.

    3. -
      explicit flat_set(const allocator_type & a);
      +
      explicit flat_set(const allocator_type & a);

      Effects: Constructs an empty container using the specified allocator.

      Complexity: Constant.

    4. -
      flat_set(const Compare & comp, const allocator_type & a);
      +
      flat_set(const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator.

      Complexity: Constant.

    5. template<typename InputIterator> 
      -  flat_set(InputIterator first, InputIterator last);
      + flat_set(InputIterator first, InputIterator last);

      Effects: Constructs an empty container and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using comp and otherwise N logN, where N is last - first.

    6. template<typename InputIterator> 
      -  flat_set(InputIterator first, InputIterator last, const allocator_type & a);
      + flat_set(InputIterator first, InputIterator last, const allocator_type & a);

      Effects: Constructs an empty container using the specified allocator, and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using comp and otherwise N logN, where N is last - first.

    7. template<typename InputIterator> 
      -  flat_set(InputIterator first, InputIterator last, const Compare & comp);
      + flat_set(InputIterator first, InputIterator last, const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using comp and otherwise N logN, where N is last - first.

    8. template<typename InputIterator> 
      -  flat_set(InputIterator first, InputIterator last, const Compare & comp, 
      +  flat_set(InputIterator first, InputIterator last, const Compare & comp, 
                  const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator, and inserts elements from the range [first ,last ).

      Complexity: Linear in N if the range [first ,last ) is already sorted using comp and otherwise N logN, where N is last - first.

    9. template<typename InputIterator> 
      -  flat_set(ordered_unique_range_t, InputIterator first, InputIterator last);
      + flat_set(ordered_unique_range_t, InputIterator first, InputIterator last);

      Effects: Constructs an empty container and inserts elements from the ordered unique range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate and must be unique values.

      Complexity: Linear in N.

      @@ -262,7 +262,7 @@
    10. template<typename InputIterator> 
      -  flat_set(ordered_unique_range_t, InputIterator first, InputIterator last, 
      +  flat_set(ordered_unique_range_t, InputIterator first, InputIterator last, 
                  const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object and inserts elements from the ordered unique range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate and must be unique values.

      @@ -271,7 +271,7 @@
    11. template<typename InputIterator> 
      -  flat_set(ordered_unique_range_t, InputIterator first, InputIterator last, 
      +  flat_set(ordered_unique_range_t, InputIterator first, InputIterator last, 
                  const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator, and inserts elements from the ordered unique range [first ,last). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [first ,last) must be ordered according to the predicate and must be unique values.

      @@ -279,35 +279,35 @@

      Note: Non-standard extension.

    12. -
      flat_set(std::initializer_list< value_type > il);
      +
      flat_set(std::initializer_list< value_type > il);

      Effects: Constructs an empty container and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using comp and otherwise N logN, where N is il.begin() - il.end().

    13. -
      flat_set(std::initializer_list< value_type > il, const allocator_type & a);
      +
      flat_set(std::initializer_list< value_type > il, const allocator_type & a);

      Effects: Constructs an empty container using the specified allocator, and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using comp and otherwise N logN, where N is il.begin() - il.end().

    14. -
      flat_set(std::initializer_list< value_type > il, const Compare & comp);
      +
      flat_set(std::initializer_list< value_type > il, const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using comp and otherwise N logN, where N is il.begin() - il.end().

    15. -
      flat_set(std::initializer_list< value_type > il, const Compare & comp, 
      +
      flat_set(std::initializer_list< value_type > il, const Compare & comp, 
                const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator, and inserts elements from the range [il.begin(), il.end()).

      Complexity: Linear in N if the range [il.begin(), il.end()) is already sorted using comp and otherwise N logN, where N is il.begin() - il.end().

    16. -
      flat_set(ordered_unique_range_t, std::initializer_list< value_type > il);
      +
      flat_set(ordered_unique_range_t, std::initializer_list< value_type > il);

      Effects: Constructs an empty container using the specified comparison object and inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate and must be unique values.

      Complexity: Linear in N.

      Note: Non-standard extension.

    17. -
      flat_set(ordered_unique_range_t, std::initializer_list< value_type > il, 
      +
      flat_set(ordered_unique_range_t, std::initializer_list< value_type > il, 
                const Compare & comp);

      Effects: Constructs an empty container using the specified comparison object and inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate and must be unique values.

      @@ -315,7 +315,7 @@

      Note: Non-standard extension.

    18. -
      flat_set(ordered_unique_range_t, std::initializer_list< value_type > il, 
      +
      flat_set(ordered_unique_range_t, std::initializer_list< value_type > il, 
                const Compare & comp, const allocator_type & a);

      Effects: Constructs an empty container using the specified comparison object and allocator, and inserts elements from the ordered unique range [il.begin(), il.end()). This function is more efficient than the normal range creation for ordered ranges.

      Requires: [il.begin(), il.end()) must be ordered according to the predicate and must be unique values.

      @@ -323,175 +323,175 @@

      Note: Non-standard extension.

    19. -
      flat_set(const flat_set & x);
      +
      flat_set(const flat_set & x);

      Effects: Copy constructs the container.

      Complexity: Linear in x.size().

    20. -
      flat_set(flat_set && x) noexcept(boost::container::container_detail::is_nothrow_move_constructible< Compare >::value));
      +
      flat_set(flat_set && x) noexcept(boost::container::dtl::is_nothrow_move_constructible< Compare >::value));

      Effects: Move constructs thecontainer. Constructs *this using x's resources.

      Complexity: Constant.

      Postcondition: x is emptied.

    21. -
      flat_set(const flat_set & x, const allocator_type & a);
      +
      flat_set(const flat_set & x, const allocator_type & a);

      Effects: Copy constructs a container using the specified allocator.

      Complexity: Linear in x.size().

    22. -
      flat_set(flat_set && x, const allocator_type & a);
      +
      flat_set(flat_set && x, const allocator_type & a);

      Effects: Move constructs a container using the specified allocator. Constructs *this using x's resources.

      Complexity: Constant if a == x.get_allocator(), linear otherwise

    23. -
      flat_set & operator=(const flat_set & x);
      +
      flat_set & operator=(const flat_set & x);

      Effects: Makes *this a copy of x.

      Complexity: Linear in x.size().

    24. -
      flat_set & operator=(flat_set && x) noexcept((allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)&&boost::container::container_detail::is_nothrow_move_assignable< Compare >::value));
      +
      flat_set & operator=(flat_set && x) noexcept((allocator_traits_type::propagate_on_container_move_assignment::value||allocator_traits_type::is_always_equal::value)&&boost::container::dtl::is_nothrow_move_assignable< Compare >::value));

      Throws: If allocator_traits_type::propagate_on_container_move_assignment is false and (allocation throws or value_type's move constructor throws)

      Complexity: Constant if allocator_traits_type:: propagate_on_container_move_assignment is true or this->get>allocator() == x.get_allocator(). Linear otherwise.

    25. -
      flat_set & operator=(std::initializer_list< value_type > il);
      +
      flat_set & operator=(std::initializer_list< value_type > il);

      Effects: Copy all elements from il to *this.

      Complexity: Linear in il.size().

    -

    -flat_set public member functions

    +

    +flat_set public member functions

    1. -
      allocator_type get_allocator() const noexcept;
      +
      allocator_type get_allocator() const noexcept;

      Effects: Returns a copy of the allocator that was passed to the object's constructor.

      Complexity: Constant.

    2. -
      stored_allocator_type & get_stored_allocator() noexcept;
      +
      stored_allocator_type & get_stored_allocator() noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    3. -
      const stored_allocator_type & get_stored_allocator() const noexcept;
      +
      const stored_allocator_type & get_stored_allocator() const noexcept;

      Effects: Returns a reference to the internal allocator.

      Throws: Nothing

      Complexity: Constant.

      Note: Non-standard extension.

    4. -
      iterator begin() noexcept;
      +
      iterator begin() noexcept;

      Effects: Returns an iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    5. -
      const_iterator begin() const noexcept;
      +
      const_iterator begin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    6. -
      iterator end() noexcept;
      +
      iterator end() noexcept;

      Effects: Returns an iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    7. -
      const_iterator end() const noexcept;
      +
      const_iterator end() const noexcept;

      Effects: Returns a const_iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    8. -
      reverse_iterator rbegin() noexcept;
      +
      reverse_iterator rbegin() noexcept;

      Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    9. -
      const_reverse_iterator rbegin() const noexcept;
      +
      const_reverse_iterator rbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    10. -
      reverse_iterator rend() noexcept;
      +
      reverse_iterator rend() noexcept;

      Effects: Returns a reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    11. -
      const_reverse_iterator rend() const noexcept;
      +
      const_reverse_iterator rend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    12. -
      const_iterator cbegin() const noexcept;
      +
      const_iterator cbegin() const noexcept;

      Effects: Returns a const_iterator to the first element contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    13. -
      const_iterator cend() const noexcept;
      +
      const_iterator cend() const noexcept;

      Effects: Returns a const_iterator to the end of the container.

      Throws: Nothing.

      Complexity: Constant.

    14. -
      const_reverse_iterator crbegin() const noexcept;
      +
      const_reverse_iterator crbegin() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    15. -
      const_reverse_iterator crend() const noexcept;
      +
      const_reverse_iterator crend() const noexcept;

      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

      Throws: Nothing.

      Complexity: Constant.

    16. -
      bool empty() const noexcept;
      +
      bool empty() const noexcept;

      Effects: Returns true if the container contains no elements.

      Throws: Nothing.

      Complexity: Constant.

    17. -
      size_type size() const noexcept;
      +
      size_type size() const noexcept;

      Effects: Returns the number of the elements contained in the container.

      Throws: Nothing.

      Complexity: Constant.

    18. -
      size_type max_size() const noexcept;
      +
      size_type max_size() const noexcept;

      Effects: Returns the largest possible size of the container.

      Throws: Nothing.

      Complexity: Constant.

    19. -
      size_type capacity() const noexcept;
      +
      size_type capacity() const noexcept;

      Effects: Number of elements for which memory has been allocated. capacity() is always greater than or equal to size().

      Throws: Nothing.

      Complexity: Constant.

    20. -
      void reserve(size_type cnt);
      +
      void reserve(size_type cnt);

      Effects: If n is less than or equal to capacity(), or the underlying container has no reserve member, this call has no effect. Otherwise, it is a request for allocation of additional memory. If the request is successful, then capacity() is greater than or equal to n; otherwise, capacity() is unchanged. In either case, size() is unchanged.

      Throws: If memory allocation allocation throws or T's copy constructor throws.

      Note: If capacity() is less than "cnt", iterators and references to to values might be invalidated.

    21. -
      void shrink_to_fit();
      +
      void shrink_to_fit();
      Effects: Tries to deallocate the excess of memory created

      Throws: If memory allocation throws, or Key's copy constructor throws.

      Complexity: Linear to size().

    22. -
      template<class... Args> std::pair< iterator, bool > emplace(Args &&... args);
      +
      template<class... Args> std::pair< iterator, bool > emplace(Args &&... args);

      Effects: Inserts an object x of type Key constructed with std::forward<Args>(args)... if and only if there is no element in the container with key equivalent to the key of x.

      Returns: The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      @@ -499,35 +499,35 @@
    23. template<class... Args> 
      -  iterator emplace_hint(const_iterator p, Args &&... args);
      + iterator emplace_hint(const_iterator p, Args &&... args);

      Effects: Inserts an object of type Key constructed with std::forward<Args>(args)... in the container if and only if there is no element in the container with key equivalent to the key of x. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    24. -
      std::pair< iterator, bool > insert(const value_type & x);
      +
      std::pair< iterator, bool > insert(const value_type & x);

      Effects: Inserts x if and only if there is no element in the container with key equivalent to the key of x.

      Returns: The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    25. -
      std::pair< iterator, bool > insert(value_type && x);
      +
      std::pair< iterator, bool > insert(value_type && x);

      Effects: Inserts a new value_type move constructed from the pair if and only if there is no element in the container with key equivalent to the key of x.

      Returns: The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time plus linear insertion to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    26. -
      iterator insert(const_iterator p, const value_type & x);
      +
      iterator insert(const_iterator p, const value_type & x);

      Effects: Inserts a copy of x in the container if and only if there is no element in the container with key equivalent to the key of x. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      Note: If an element is inserted it might invalidate elements.

    27. -
      iterator insert(const_iterator p, value_type && x);
      +
      iterator insert(const_iterator p, value_type && x);

      Effects: Inserts an element move constructed from x in the container. p is a hint pointing to where the insert should start to search.

      Returns: An iterator pointing to the element with key equivalent to the key of x.

      Complexity: Logarithmic search time (constant if x is inserted right before p) plus insertion linear to the elements with bigger keys than x.

      @@ -535,36 +535,36 @@
    28. template<typename InputIterator> 
      -  void insert(InputIterator first, InputIterator last);
      + void insert(InputIterator first, InputIterator last);

      Requires: first, last are not iterators into *this.

      Effects: inserts each element from the range [first,last) if and only if there is no element with key equivalent to the key of that element.

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: N log(N).

      Note: If an element is inserted it might invalidate elements.

    29. template<typename InputIterator> 
      -  void insert(ordered_unique_range_t, InputIterator first, InputIterator last);
      + void insert(ordered_unique_range_t, InputIterator first, InputIterator last);

      Requires: first, last are not iterators into *this and must be ordered according to the predicate and must be unique values.

      Effects: inserts each element from the range [first,last) .This function is more efficient than the normal range creation for ordered ranges.

      -

      Complexity: At most N log(size()+N) (N is the distance from first to last) search time plus N*size() insertion time.

      +

      Complexity: Linear.

      Note: Non-standard extension. If an element is inserted it might invalidate elements.

    30. -
      void insert(std::initializer_list< value_type > il);
      +
      void insert(std::initializer_list< value_type > il);

      Effects: inserts each element from the range [il.begin(), il.end()) if and only if there is no element with key equivalent to the key of that element.

      -

      Complexity: At most N log(size()+N) (N is the distance from il.begin() to il.end()) search time plus N*size() insertion time.

      +

      Complexity: N log(N).

      Note: If an element is inserted it might invalidate elements.

    31. -
      void insert(ordered_unique_range_t, std::initializer_list< value_type > il);
      +
      void insert(ordered_unique_range_t, std::initializer_list< value_type > il);

      Requires: Range [il.begin(), il.end()) must be ordered according to the predicate and must be unique values.

      Effects: inserts each element from the range [il.begin(), il.end()) .This function is more efficient than the normal range creation for ordered ranges.

      -

      Complexity: At most N log(size()+N) (N is the distance from il.begin() to il.end()) search time plus N*size() insertion time.

      +

      Complexity: Linear.

      Note: Non-standard extension. If an element is inserted it might invalidate elements.

    32. template<typename C2> 
      -  void merge(flat_set< Key, C2, AllocatorOrContainer > & source);
      + void merge(flat_set< Key, C2, AllocatorOrContainer > & source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -573,7 +573,7 @@
    33. template<typename C2> 
      -  void merge(flat_set< Key, C2, AllocatorOrContainer > && source);
      + void merge(flat_set< Key, C2, AllocatorOrContainer > && source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -582,7 +582,7 @@
    34. template<typename C2> 
      -  void merge(flat_multiset< Key, C2, AllocatorOrContainer > & source);
      + void merge(flat_multiset< Key, C2, AllocatorOrContainer > & source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -591,7 +591,7 @@
    35. template<typename C2> 
      -  void merge(flat_multiset< Key, C2, AllocatorOrContainer > && source);
      + void merge(flat_multiset< Key, C2, AllocatorOrContainer > && source);

      Requires: this->get_allocator() == source.get_allocator().

      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

      @@ -599,59 +599,59 @@

      Complexity: N log(a.size() + N) (N has the value source.size())

    36. -
      iterator erase(const_iterator p);
      +
      iterator erase(const_iterator p);

      Effects: Erases the element pointed to by p.

      Returns: Returns an iterator pointing to the element immediately following q prior to the element being erased. If no such element exists, returns end().

      Complexity: Linear to the elements with keys bigger than p

      Note: Invalidates elements with keys not less than the erased element.

    37. -
      size_type erase(const key_type & x);
      +
      size_type erase(const key_type & x);

      Effects: Erases all elements in the container with key equivalent to x.

      Returns: Returns the number of erased elements.

      Complexity: Logarithmic search time plus erasure time linear to the elements with bigger keys.

    38. -
      iterator erase(const_iterator first, const_iterator last);
      +
      iterator erase(const_iterator first, const_iterator last);

      Effects: Erases all the elements in the range [first, last).

      Returns: Returns last.

      Complexity: size()*N where N is the distance from first to last.

      Complexity: Logarithmic search time plus erasure time linear to the elements with bigger keys.

    39. -
      void swap(flat_set & x) noexcept(allocator_traits_type::is_always_equal::value &&boost::container::container_detail::is_nothrow_swappable< Compare >::value));
      +
      void swap(flat_set & x) noexcept(allocator_traits_type::is_always_equal::value &&boost::container::dtl::is_nothrow_swappable< Compare >::value));

      Effects: Swaps the contents of *this and x.

      Throws: Nothing.

      Complexity: Constant.

    40. -
      void clear() noexcept;
      +
      void clear() noexcept;

      Effects: erase(a.begin(),a.end()).

      Postcondition: size() == 0.

      Complexity: linear in size().

    41. -
      key_compare key_comp() const;
      +
      key_compare key_comp() const;

      Effects: Returns the comparison object out of which a was constructed.

      Complexity: Constant.

    42. -
      value_compare value_comp() const;
      +
      value_compare value_comp() const;

      Effects: Returns an object of value_compare constructed out of the comparison object.

      Complexity: Constant.

    43. -
      iterator find(const key_type & x);
      +
      iterator find(const key_type & x);

      Returns: An iterator pointing to an element with the key equivalent to x, or end() if such an element is not found.

      Complexity: Logarithmic.

    44. -
      const_iterator find(const key_type & x) const;
      +
      const_iterator find(const key_type & x) const;

      Returns: A const_iterator pointing to an element with the key equivalent to x, or end() if such an element is not found.

      Complexity: Logarithmic.

    45. -
      iterator nth(size_type n) noexcept;
      +
      iterator nth(size_type n) noexcept;

      Requires: size() >= n.

      Effects: Returns an iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -659,7 +659,7 @@

      Note: Non-standard extension

    46. -
      const_iterator nth(size_type n) const noexcept;
      +
      const_iterator nth(size_type n) const noexcept;

      Requires: size() >= n.

      Effects: Returns a const_iterator to the nth element from the beginning of the container. Returns end() if n == size().

      Throws: Nothing.

      @@ -667,7 +667,7 @@

      Note: Non-standard extension

    47. -
      size_type index_of(iterator p) noexcept;
      +
      size_type index_of(iterator p) noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -675,7 +675,7 @@

      Note: Non-standard extension

    48. -
      size_type index_of(const_iterator p) const noexcept;
      +
      size_type index_of(const_iterator p) const noexcept;

      Requires: begin() <= p <= end().

      Effects: Returns the index of the element pointed by p and size() if p == end().

      Throws: Nothing.

      @@ -683,56 +683,56 @@

      Note: Non-standard extension

    49. -
      size_type count(const key_type & x) const;
      +
      size_type count(const key_type & x) const;

      Returns: The number of elements with key equivalent to x.

      Complexity: log(size())+count(k)

    50. -
      iterator lower_bound(const key_type & x);
      +
      iterator lower_bound(const key_type & x);

      Returns: An iterator pointing to the first element with key not less than k, or a.end() if such an element is not found.

      Complexity: Logarithmic

    51. -
      const_iterator lower_bound(const key_type & x) const;
      +
      const_iterator lower_bound(const key_type & x) const;

      Returns: A const iterator pointing to the first element with key not less than k, or a.end() if such an element is not found.

      Complexity: Logarithmic

    52. -
      iterator upper_bound(const key_type & x);
      +
      iterator upper_bound(const key_type & x);

      Returns: An iterator pointing to the first element with key not less than x, or end() if such an element is not found.

      Complexity: Logarithmic

    53. -
      const_iterator upper_bound(const key_type & x) const;
      +
      const_iterator upper_bound(const key_type & x) const;

      Returns: A const iterator pointing to the first element with key not less than x, or end() if such an element is not found.

      Complexity: Logarithmic

    54. std::pair< const_iterator, const_iterator > 
      -equal_range(const key_type & x) const;
      +equal_range(const key_type & x) const;

      Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).

      Complexity: Logarithmic

    55. -
      std::pair< iterator, iterator > equal_range(const key_type & x);
      +
      std::pair< iterator, iterator > equal_range(const key_type & x);

      Effects: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).

      Complexity: Logarithmic

    56. -
      sequence_type extract_sequence();
      +
      sequence_type extract_sequence();

      Effects: Extracts the internal sequence container.

      Complexity: Same as the move constructor of sequence_type, usually constant.

      Postcondition: this->empty()

      Throws: If secuence_type's move constructor throws

    57. -
      void adopt_sequence(sequence_type && seq);
      +
      void adopt_sequence(sequence_type && seq);

      Effects: Discards the internally hold sequence container and adopts the one passed externally using the move assignment. Erases non-unique elements.

      Complexity: Assuming O(1) move assignment, O(NlogN) with N = seq.size()

      Throws: If the comparison or the move constructor throws

    58. -
      void adopt_sequence(ordered_unique_range_t, sequence_type && seq);
      +
      void adopt_sequence(ordered_unique_range_t, sequence_type && seq);

      Requires: seq shall be ordered according to this->compare() and shall contain unique elements.

      Effects: Discards the internally hold sequence container and adopts the one passed externally using the move assignment.

      Complexity: Assuming O(1) move assignment, O(1)

      @@ -741,41 +741,41 @@
    -

    -flat_set friend functions

    +

    +flat_set friend functions

    1. -
      friend bool operator==(const flat_set & x, const flat_set & y);
      +
      friend bool operator==(const flat_set & x, const flat_set & y);

      Effects: Returns true if x and y are equal

      Complexity: Linear to the number of elements in the container.

    2. -
      friend bool operator!=(const flat_set & x, const flat_set & y);
      +
      friend bool operator!=(const flat_set & x, const flat_set & y);

      Effects: Returns true if x and y are unequal

      Complexity: Linear to the number of elements in the container.

    3. -
      friend bool operator<(const flat_set & x, const flat_set & y);
      +
      friend bool operator<(const flat_set & x, const flat_set & y);

      Effects: Returns true if x is less than y

      Complexity: Linear to the number of elements in the container.

    4. -
      friend bool operator>(const flat_set & x, const flat_set & y);
      +
      friend bool operator>(const flat_set & x, const flat_set & y);

      Effects: Returns true if x is greater than y

      Complexity: Linear to the number of elements in the container.

    5. -
      friend bool operator<=(const flat_set & x, const flat_set & y);
      +
      friend bool operator<=(const flat_set & x, const flat_set & y);

      Effects: Returns true if x is equal or less than y

      Complexity: Linear to the number of elements in the container.

    6. -
      friend bool operator>=(const flat_set & x, const flat_set & y);
      +
      friend bool operator>=(const flat_set & x, const flat_set & y);

      Effects: Returns true if x is equal or greater than y

      Complexity: Linear to the number of elements in the container.

    7. -
      friend void swap(flat_set & x, flat_set & y);
      +
      friend void swap(flat_set & x, flat_set & y);

      Effects: x.swap(y)

      Complexity: Constant.

    8. @@ -785,7 +785,8 @@
    -
    -

    Description

    +

    Description

    A class template used to describe the results of inserting a Container::node_type in a Container with unique keys. Includes at least the following non-static public data members:

    • bool inserted;

    • @@ -58,23 +58,24 @@

      This type is MoveConstructible, MoveAssignable, DefaultConstructible, Destructible, and lvalues of that type are swappable

      -

      +

      insert_return_type_base public construct/copy/destruct

        -
      1. insert_return_type_base();
      2. -
      3. insert_return_type_base(insert_return_type_base && other);
      4. +
      5. insert_return_type_base();
      6. +
      7. insert_return_type_base(insert_return_type_base && other);
      8. template<typename RelatedIt, typename RelatedNode> 
        -  insert_return_type_base(bool insert, RelatedIt it, RelatedNode && node);
      9. -
      10. insert_return_type_base & operator=(insert_return_type_base && other);
      11. + insert_return_type_base(bool insert, RelatedIt it, RelatedNode && node); +
      12. insert_return_type_base & operator=(insert_return_type_base && other);
    -
  • -
    explicit operator bool() const noexcept;
    bool() const

    bool() const

    +
    explicit operator bool() const noexcept;
    bool() const

    bool() const

  • -
    bool has(const char * symbol_name) const noexcept;
    +
    bool has(const char * symbol_name) const noexcept;

    Search for a given symbol on loaded library. Works for all symbols, including alias names.

    @@ -972,11 +972,11 @@ Currently known limitations:

  • -
    bool has(const std::string & symbol_name) const noexcept;
    +
    bool has(const std::string & symbol_name) const noexcept;

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • -
    smart_library & assign(const smart_library & lib);
    +
    smart_library & assign(const smart_library & lib);

    Makes *this share the same shared object as lib. If *this is loaded, then unloads it.

    @@ -1013,7 +1013,7 @@ Currently known limitations:

  • -
    void swap(smart_library & rhs) noexcept;
    +
    void swap(smart_library & rhs) noexcept;

    Swaps two libraries. Does not invalidate existing symbols and functions loaded from libraries.

    @@ -1058,7 +1058,7 @@ Currently known limitations:


  • -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/dll/import.html b/doc/html/boost/dll/import.html index 04b4b99684..8d3ce324df 100644 --- a/doc/html/boost/dll/import.html +++ b/doc/html/boost/dll/import.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -49,7 +49,7 @@ template<typename T> result_type import(shared_library && lib, const std::string & name);
    -

    Description

    +

    Description

    Returns callable object or boost::shared_ptr<T> that holds the symbol imported from the loaded library. Returned value refcounts usage of the loaded shared library, so that it won't get unload until all copies of return value are not destroyed.

    This call will succeed if call to boost::dll::shared_library::has(const char* ) function with the same symbol name returned true.

    For importing symbols by alias names use boost::dll::import_alias method.

    @@ -116,7 +116,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/dll/import_alias.html b/doc/html/boost/dll/import_alias.html index ab08e8580c..0a09e05b36 100644 --- a/doc/html/boost/dll/import_alias.html +++ b/doc/html/boost/dll/import_alias.html @@ -51,7 +51,7 @@ template<typename T> result_type import_alias(shared_library && lib, const std::string & name);
    -

    Description

    +

    Description

    Returns callable object or boost::shared_ptr<T> that holds the symbol imported from the loaded library. Returned value refcounts usage of the loaded shared library, so that it won't get unload until all copies of return value are not destroyed.

    This call will succeed if call to boost::dll::shared_library::has(const char* ) function with the same symbol name returned true.

    For importing symbols by non alias names use boost::dll::import method.

    diff --git a/doc/html/boost/dll/library_info.html b/doc/html/boost/dll/library_info.html index a65b6beca0..2a634f6efa 100644 --- a/doc/html/boost/dll/library_info.html +++ b/doc/html/boost/dll/library_info.html @@ -36,25 +36,25 @@ class library_info : private noncopyable { public: // construct/copy/destruct - explicit library_info(const boost::filesystem::path &, bool = true); - ~library_info(); + explicit library_info(const boost::filesystem::path &, bool = true); + ~library_info(); - // public member functions - std::vector< std::string > sections(); - std::vector< std::string > symbols(); - std::vector< std::string > symbols(const char *); - std::vector< std::string > symbols(const std::string &); + // public member functions + std::vector< std::string > sections(); + std::vector< std::string > symbols(); + std::vector< std::string > symbols(const char *); + std::vector< std::string > symbols(const std::string &); };
    -

    Description

    +

    Description

    -

    +

    library_info public construct/copy/destruct

    1. -
      explicit library_info(const boost::filesystem::path & library_path, 
      +
      explicit library_info(const boost::filesystem::path & library_path, 
                             bool throw_if_not_native_format = true);

      Opens file with specified path and prepares for information extraction.

      @@ -85,7 +85,7 @@
  • -
    ~library_info();
    +
    ~library_info();

    @@ -102,11 +102,11 @@
    -

    -library_info public member functions

    +

    +library_info public member functions

    1. -
      std::vector< std::string > sections();
      +
      std::vector< std::string > sections();

    @@ -121,7 +121,7 @@
  • -
    std::vector< std::string > symbols();
    +
    std::vector< std::string > symbols();

    @@ -136,7 +136,7 @@
  • -
    std::vector< std::string > symbols(const char * section_name);
    +
    std::vector< std::string > symbols(const char * section_name);

    @@ -167,7 +167,7 @@
  • -
    std::vector< std::string > symbols(const std::string & section_name);
    +
    std::vector< std::string > symbols(const std::string & section_name);

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • diff --git a/doc/html/boost/dll/load_mode/type.html b/doc/html/boost/dll/load_mode/type.html index ac1ead5d14..d8476e11e7 100644 --- a/doc/html/boost/dll/load_mode/type.html +++ b/doc/html/boost/dll/load_mode/type.html @@ -38,7 +38,7 @@ rtld_lazy, rtld_now, rtld_global, rtld_local, rtld_deepbind, append_decorations, search_system_folders };
    -

    Description

    +

    Description

    Library load modes.

    Each of system family provides own modes. Flags not supported by a particular platform will be silently ignored.

    For a detailed description of platform specific options see: Windows specific options, POSIX specific options.

    diff --git a/doc/html/boost/dll/program_location.html b/doc/html/boost/dll/program_location.html index 045770e655..452649597b 100644 --- a/doc/html/boost/dll/program_location.html +++ b/doc/html/boost/dll/program_location.html @@ -36,7 +36,7 @@ boost::filesystem::path program_location(boost::system::error_code & ec); boost::filesystem::path program_location();
    -

    Description

    +

    Description

    On success returns full path and name of the currently running program (the one which contains the main() function).

    Return value can be used as a parameter for shared_library. See Tutorial "Linking plugin into the executable" for usage example. Flag '-rdynamic' must be used when linking the plugin into the executable on Linux OS.

    diff --git a/doc/html/boost/dll/shared_library.html b/doc/html/boost/dll/shared_library.html index 257350b064..72c3dc9f11 100644 --- a/doc/html/boost/dll/shared_library.html +++ b/doc/html/boost/dll/shared_library.html @@ -39,69 +39,69 @@ typedef platform_specific native_handle_t; // construct/copy/destruct - shared_library() noexcept; - shared_library(const shared_library &); - shared_library(const shared_library &, boost::system::error_code &); - shared_library(shared_library &&) noexcept; - explicit shared_library(const boost::filesystem::path &, + shared_library() noexcept; + shared_library(const shared_library &); + shared_library(const shared_library &, boost::system::error_code &); + shared_library(shared_library &&) noexcept; + explicit shared_library(const boost::filesystem::path &, load_mode::type = load_mode::default_mode); - shared_library(const boost::filesystem::path &, boost::system::error_code &, + shared_library(const boost::filesystem::path &, boost::system::error_code &, load_mode::type = load_mode::default_mode); - shared_library(const boost::filesystem::path &, load_mode::type, + shared_library(const boost::filesystem::path &, load_mode::type, boost::system::error_code &); - shared_library & operator=(const shared_library &); - shared_library & operator=(shared_library &&) noexcept; - ~shared_library(); - - // public member functions - shared_library & assign(const shared_library &, boost::system::error_code &); - shared_library & assign(const shared_library &); - void load(const boost::filesystem::path &, + shared_library & operator=(const shared_library &); + shared_library & operator=(shared_library &&) noexcept; + ~shared_library(); + + // public member functions + shared_library & assign(const shared_library &, boost::system::error_code &); + shared_library & assign(const shared_library &); + void load(const boost::filesystem::path &, load_mode::type = load_mode::default_mode); - void load(const boost::filesystem::path &, boost::system::error_code &, + void load(const boost::filesystem::path &, boost::system::error_code &, load_mode::type = load_mode::default_mode); - void load(const boost::filesystem::path &, load_mode::type, + void load(const boost::filesystem::path &, load_mode::type, boost::system::error_code &); - void unload() noexcept; - bool is_loaded() const noexcept; - bool operator!() const noexcept; - explicit operator bool() const noexcept; - bool has(const char *) const noexcept; - bool has(const std::string &) const noexcept; + void unload() noexcept; + bool is_loaded() const noexcept; + bool operator!() const noexcept; + explicit operator bool() const noexcept; + bool has(const char *) const noexcept; + bool has(const std::string &) const noexcept; template<typename T> boost::enable_if_c< boost::is_member_pointer< T >::value||boost::is_reference< T >::value, T >::type - get(const std::string &) const; + get(const std::string &) const; template<typename T> boost::disable_if_c< boost::is_member_pointer< T >::value||boost::is_reference< T >::value, T & >::type - get(const std::string &) const; + get(const std::string &) const; template<typename T> boost::enable_if_c< boost::is_member_pointer< T >::value||boost::is_reference< T >::value, T >::type - get(const char *) const; + get(const char *) const; template<typename T> boost::disable_if_c< boost::is_member_pointer< T >::value||boost::is_reference< T >::value, T & >::type - get(const char *) const; - template<typename T> T & get_alias(const char *) const; - template<typename T> T & get_alias(const std::string &) const; - native_handle_t native() const noexcept; - boost::filesystem::path location() const; - boost::filesystem::path location(boost::system::error_code &) const; - void swap(shared_library &) noexcept; - - // public static functions - static boost::filesystem::path suffix(); + get(const char *) const; + template<typename T> T & get_alias(const char *) const; + template<typename T> T & get_alias(const std::string &) const; + native_handle_t native() const noexcept; + boost::filesystem::path location() const; + boost::filesystem::path location(boost::system::error_code &) const; + void swap(shared_library &) noexcept; + + // public static functions + static boost::filesystem::path suffix(); };

    -

    Description

    +

    Description

    shared_library instances share reference count to an actual loaded DLL/DSO, so it is safe and memory efficient to have multiple instances of shared_library referencing the same DLL/DSO even if those instances were loaded using different paths (relative + absolute) referencing the same object.

    On Linux/POSIX link with library "dl". "-fvisibility=hidden" flag is also recommended for use on Linux/POSIX.

    -

    +

    shared_library public construct/copy/destruct

    1. -
      shared_library() noexcept;
      +
      shared_library() noexcept;

      Creates in anstance that does not reference any DLL/DSO.

      @@ -124,7 +124,7 @@

  • -
    shared_library(const shared_library & lib);
    +
    shared_library(const shared_library & lib);

    Copy constructor that increments the reference count of an underlying shared library. Same as calling constructor with lib.location() parameter.

    @@ -161,7 +161,7 @@

  • -
    shared_library(const shared_library & lib, boost::system::error_code & ec);
    +
    shared_library(const shared_library & lib, boost::system::error_code & ec);

    Copy constructor that increments the reference count of an underlying shared library. Same as calling constructor with lib.location(), ec parameters.

    @@ -204,7 +204,7 @@

  • -
    shared_library(shared_library && lib) noexcept;
    +
    shared_library(shared_library && lib) noexcept;

    Move constructor. Does not invalidate existing symbols and functions loaded from lib.

    @@ -241,7 +241,7 @@

  • -
    explicit shared_library(const boost::filesystem::path & lib_path, 
    +
    explicit shared_library(const boost::filesystem::path & lib_path, 
                             load_mode::type mode = load_mode::default_mode);

    Loads a library by specified path with a specified mode.

    @@ -280,7 +280,7 @@

  • -
    shared_library(const boost::filesystem::path & lib_path, 
    +
    shared_library(const boost::filesystem::path & lib_path, 
                    boost::system::error_code & ec, 
                    load_mode::type mode = load_mode::default_mode);

    Loads a library by specified path with a specified mode.

    @@ -324,12 +324,12 @@
  • -
    shared_library(const boost::filesystem::path & lib_path, load_mode::type mode, 
    +
    shared_library(const boost::filesystem::path & lib_path, load_mode::type mode, 
                    boost::system::error_code & ec);

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • -
    shared_library & operator=(const shared_library & lib);
    +
    shared_library & operator=(const shared_library & lib);

    Assignment operator. If this->is_loaded() then calls this->unload(). Does not invalidate existing symbols and functions loaded from lib.

    @@ -366,7 +366,7 @@

  • -
    shared_library & operator=(shared_library && lib) noexcept;
    +
    shared_library & operator=(shared_library && lib) noexcept;

    Move assignment operator. If this->is_loaded() then calls this->unload(). Does not invalidate existing symbols and functions loaded from lib.

    @@ -403,7 +403,7 @@

  • -
    ~shared_library();
    +
    ~shared_library();

    Destroys the object by calling unload(). If library was loaded multiple times by different instances, the actual DLL/DSO won't be unloaded until there is at least one instance that references the DLL/DSO.

    @@ -421,12 +421,12 @@
    -

    -shared_library public member functions

    +

    +shared_library public member functions

    1. shared_library & 
      -assign(const shared_library & lib, boost::system::error_code & ec);
      +assign(const shared_library & lib, boost::system::error_code & ec);

      Makes *this share the same shared object as lib. If *this is loaded, then unloads it.

      @@ -469,7 +469,7 @@

  • -
    shared_library & assign(const shared_library & lib);
    +
    shared_library & assign(const shared_library & lib);

    Makes *this share the same shared object as lib. If *this is loaded, then unloads it.

    @@ -506,7 +506,7 @@

  • -
    void load(const boost::filesystem::path & lib_path, 
    +
    void load(const boost::filesystem::path & lib_path, 
               load_mode::type mode = load_mode::default_mode);

    Loads a library by specified path with a specified mode.

    Note that if some library is already loaded in this instance, load will call unload() and then load the new provided library.

    @@ -546,7 +546,7 @@
  • -
    void load(const boost::filesystem::path & lib_path, 
    +
    void load(const boost::filesystem::path & lib_path, 
               boost::system::error_code & ec, 
               load_mode::type mode = load_mode::default_mode);

    Loads a library by specified path with a specified mode.

    @@ -591,12 +591,12 @@
  • -
    void load(const boost::filesystem::path & lib_path, load_mode::type mode, 
    +
    void load(const boost::filesystem::path & lib_path, load_mode::type mode, 
               boost::system::error_code & ec);

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • -
    void unload() noexcept;
    +
    void unload() noexcept;

    Unloads a shared library. If library was loaded multiple times by different instances, the actual DLL/DSO won't be unloaded until there is at least one instance that references the DLL/DSO.

    @@ -619,7 +619,7 @@

  • -
    bool is_loaded() const noexcept;
    +
    bool is_loaded() const noexcept;

    Check if an library is loaded.

    @@ -642,7 +642,7 @@

  • -
    bool operator!() const noexcept;
    +
    bool operator!() const noexcept;

    Check if an library is not loaded.

    @@ -665,7 +665,7 @@

  • -
    explicit operator bool() const noexcept;
    +
    explicit operator bool() const noexcept;

    Check if an library is loaded.

    @@ -688,7 +688,7 @@

  • -
    bool has(const char * symbol_name) const noexcept;
    +
    bool has(const char * symbol_name) const noexcept;

    Search for a given symbol on loaded library. Works for all symbols, including alias names.

    @@ -725,13 +725,13 @@

  • -
    bool has(const std::string & symbol_name) const noexcept;
    +
    bool has(const std::string & symbol_name) const noexcept;

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • template<typename T> 
       boost::enable_if_c< boost::is_member_pointer< T >::value||boost::is_reference< T >::value, T >::type 
    -  get(const std::string & symbol_name) const;
    + get(const std::string & symbol_name) const;

    Returns reference to the symbol (function or variable) with the given name from the loaded library. This call will always succeed and throw nothing if call to has(const char* ) member function with the same symbol name returned true.

    Example:

    int& i0 = lib.get<int>("integer_name");
    @@ -788,23 +788,23 @@
     
  • template<typename T> 
       boost::disable_if_c< boost::is_member_pointer< T >::value||boost::is_reference< T >::value, T & >::type 
    -  get(const std::string & symbol_name) const;
    + get(const std::string & symbol_name) const;
  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • template<typename T> 
       boost::enable_if_c< boost::is_member_pointer< T >::value||boost::is_reference< T >::value, T >::type 
    -  get(const char * symbol_name) const;
    + get(const char * symbol_name) const;

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • template<typename T> 
       boost::disable_if_c< boost::is_member_pointer< T >::value||boost::is_reference< T >::value, T & >::type 
    -  get(const char * symbol_name) const;
    + get(const char * symbol_name) const;

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • -
    template<typename T> T & get_alias(const char * alias_name) const;
    +
    template<typename T> T & get_alias(const char * alias_name) const;

    Returns a symbol (function or variable) from a shared library by alias name of the symbol.

    Example:

    int& i = lib.get_alias<int>("integer_alias_name");
    @@ -853,11 +853,11 @@
     
     
  • -
    template<typename T> T & get_alias(const std::string & alias_name) const;
    +
    template<typename T> T & get_alias(const std::string & alias_name) const;

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

  • -
    native_handle_t native() const noexcept;
    +
    native_handle_t native() const noexcept;

    Returns the native handler of the loaded library.

    @@ -873,7 +873,7 @@
  • -
    boost::filesystem::path location() const;
    +
    boost::filesystem::path location() const;

    Returns full path and name of this shared object.

    Example:

    shared_library lib("test_lib.dll");
    @@ -900,7 +900,7 @@
     
     
  • -
    boost::filesystem::path location(boost::system::error_code & ec) const;
    +
    boost::filesystem::path location(boost::system::error_code & ec) const;

    Returns full path and name of shared module.

    Example:

    shared_library lib("test_lib.dll");
    @@ -941,7 +941,7 @@
     
     
  • -
    void swap(shared_library & rhs) noexcept;
    +
    void swap(shared_library & rhs) noexcept;

    Swaps two libraries. Does not invalidate existing symbols and functions loaded from libraries.

    @@ -975,10 +975,10 @@

    -

    -shared_library public static functions

    +

    +shared_library public static functions

    1. -
      static boost::filesystem::path suffix();
      +
      static boost::filesystem::path suffix();

      Returns suffix of shared module: in a call to load() or the constructor/load.

      diff --git a/doc/html/boost/dll/symbol_location.html b/doc/html/boost/dll/symbol_location.html index 4c9e689e01..3e31691214 100644 --- a/doc/html/boost/dll/symbol_location.html +++ b/doc/html/boost/dll/symbol_location.html @@ -38,7 +38,7 @@ symbol_location(const T & symbol, boost::system::error_code & ec); template<typename T> boost::filesystem::path symbol_location(const T & symbol);
    -

    Description

    +

    Description

    On success returns full path and name of the binary object that holds symbol.

    diff --git a/doc/html/boost/dll/symbol_location_ptr.html b/doc/html/boost/dll/symbol_location_ptr.html index cc705d6836..899ecc0a55 100644 --- a/doc/html/boost/dll/symbol_location_ptr.html +++ b/doc/html/boost/dll/symbol_location_ptr.html @@ -39,7 +39,7 @@ template<typename T> boost::filesystem::path symbol_location_ptr(T ptr_to_symbol);

    -

    Description

    +

    Description

    On success returns full path and name to the binary object that holds symbol pointed by ptr_to_symbol.

    diff --git a/doc/html/boost/dll/this_line_location.html b/doc/html/boost/dll/this_line_location.html index cdfb9a8027..a27754975e 100644 --- a/doc/html/boost/dll/this_line_location.html +++ b/doc/html/boost/dll/this_line_location.html @@ -36,7 +36,7 @@ boost::filesystem::path this_line_location(boost::system::error_code & ec); boost::filesystem::path this_line_location();

    -

    Description

    +

    Description

    On success returns full path and name of the binary object that holds the current line of code (the line in which the this_line_location() method was called).

    diff --git a/doc/html/boost/function.html b/doc/html/boost/function.html index 6f247a2c11..e9fcf025f8 100644 --- a/doc/html/boost/function.html +++ b/doc/html/boost/function.html @@ -61,65 +61,65 @@ }; // construct/copy/destruct - function(); - function(const functionN&); - function(functionN&&); - function(const function&); - function(function&&); - template<typename F> function(F); - template<typename F, typename Allocator> function(F, Allocator); - function& operator=(const functionN&); - function& operator=(functionN&&); - function& operator=(const function&); - function& operator=(function&&); - ~function(); + function(); + function(const functionN&); + function(functionN&&); + function(const function&); + function(function&&); + template<typename F> function(F); + template<typename F, typename Allocator> function(F, Allocator); + function& operator=(const functionN&); + function& operator=(functionN&&); + function& operator=(const function&); + function& operator=(function&&); + ~function(); - // modifiers - void swap(const function&); - void clear(); + // modifiers + void swap(const function&); + void clear(); - // capacity - bool empty() const; - operator safe_bool() const; - bool operator!() const; + // capacity + bool empty() const; + operator safe_bool() const; + bool operator!() const; - // target access - template<typename Functor> Functor* target(); - template<typename Functor> const Functor* target() const; - template<typename Functor> bool contains(const Functor&) const; - const std::type_info& target_type() const; + // target access + template<typename Functor> Functor* target(); + template<typename Functor> const Functor* target() const; + template<typename Functor> bool contains(const Functor&) const; + const std::type_info& target_type() const; - // invocation - result_type operator()(arg1_type, arg2_type, ..., argN_type) const; + // invocation + result_type operator()(arg1_type, arg2_type, ..., argN_type) const; }; -// specialized algorithms +// specialized algorithms template<typename Signature> void swap(function<Signature>&, function<Signature>&); -// comparison operators +// comparison operators template<typename Signature, typename Functor> - bool operator==(const function<Signature>&, Functor); + bool operator==(const function<Signature>&, Functor); template<typename Signature, typename Functor> - bool operator==(Functor, const function<Signature>&); + bool operator==(Functor, const function<Signature>&); template<typename Signature, typename Functor> - bool operator==(const function<Signature>&, reference_wrapper<Functor>); + bool operator==(const function<Signature>&, reference_wrapper<Functor>); template<typename Signature, typename Functor> - bool operator==(reference_wrapper<Functor>, const function<Signature>&); + bool operator==(reference_wrapper<Functor>, const function<Signature>&); template<typename Signature1, typename Signature2> - void operator==(const function<Signature1>&, const function<Signature2>&); + void operator==(const function<Signature1>&, const function<Signature2>&); template<typename Signature, typename Functor> - bool operator!=(const function<Signature>&, Functor); + bool operator!=(const function<Signature>&, Functor); template<typename Signature, typename Functor> - bool operator!=(Functor, const function<Signature>&); + bool operator!=(Functor, const function<Signature>&); template<typename Signature, typename Functor> - bool operator!=(const function<Signature>&, reference_wrapper<Functor>); + bool operator!=(const function<Signature>&, reference_wrapper<Functor>); template<typename Signature, typename Functor> - bool operator!=(reference_wrapper<Functor>, const function<Signature>&); + bool operator!=(reference_wrapper<Functor>, const function<Signature>&); template<typename Signature1, typename Signature2> - void operator!=(const function<Signature1>&, const function<Signature2>&);

    + void operator!=(const function<Signature1>&, const function<Signature2>&);
    -

    Description

    +

    Description

    Class template function is a thin wrapper around the numbered class templates function0, function1, etc. It accepts a function type with N arguments and will will derive from @@ -131,20 +131,20 @@ additional member functions are required to allow proper copy construction and copy assignment of function objects.

    -

    Template Parameters

    +

    Template Parameters

    1. typename Signature

    -

    +

    function public construct/copy/destruct

    1. -
      function();
      +
      function();
      @@ -153,7 +153,7 @@ - + @@ -163,7 +163,7 @@

      Postconditions:

      this->empty()this->empty()

      Throws:

    2. -
      function(const functionN& f);
      +
      function(const functionN& f);
      @@ -172,7 +172,7 @@ - + @@ -182,7 +182,7 @@

      Postconditions:

      Contains a copy of the f's target, if it has one, or is empty if f.empty().Contains a copy of the f's target, if it has one, or is empty if f.empty().

      Throws:

    3. -
      function(functionN&& f);
      +
      function(functionN&& f);
      @@ -205,7 +205,7 @@
    4. -
      function(const function& f);
      +
      function(const function& f);
      @@ -214,7 +214,7 @@ - + @@ -224,7 +224,7 @@

      Postconditions:

      Contains a copy of the f's target, if it has one, or is empty if f.empty().Contains a copy of the f's target, if it has one, or is empty if f.empty().

      Throws:

    5. -
      function(function&& f);
      +
      function(function&& f);
      @@ -247,7 +247,7 @@
    6. -
      template<typename F> function(F f);
      +
      template<typename F> function(F f);
      @@ -261,13 +261,13 @@ +*this targets a copy of f if f is nonempty, or this->empty() if f is empty.

      Postconditions:

      -*this targets a copy of f if f is nonempty, or this->empty() if f is empty.
    7. -
      template<typename F, typename Allocator> function(F f, Allocator alloc);
      +
      template<typename F, typename Allocator> function(F f, Allocator alloc);
      @@ -281,7 +281,7 @@ +*this targets a copy of f if f is nonempty, or this->empty() if f is empty. @@ -291,7 +291,7 @@

      Postconditions:

      -*this targets a copy of f if f is nonempty, or this->empty() if f is empty.

      Effects:

    8. -
      function& operator=(const functionN& f);
      +
      function& operator=(const functionN& f);
      @@ -299,12 +299,12 @@ - +

      Postconditions:

      If copy construction does not throw, *this targets a copy of f's target, if it has one, or is empty if f.empty(). If copy construction does throw, this->empty().If copy construction does not throw, *this targets a copy of f's target, if it has one, or is empty if f.empty(). If copy construction does throw, this->empty().
    9. -
      function& operator=(functionN&& f);
      +
      function& operator=(functionN&& f);
      @@ -327,7 +327,7 @@
    10. -
      function& operator=(const function& f);
      +
      function& operator=(const function& f);
      @@ -336,17 +336,17 @@ - + - +

      Postconditions:

      If copy construction of the target of f does not throw, *this targets a copy of f's target, if it has one, or is empty if f.empty(). If copy construction of the target of f does not throw, *this targets a copy of f's target, if it has one, or is empty if f.empty().

      Throws:

      Will not throw when the target of f is a stateless function object or a reference to the function object. If copy construction does throw, this->empty().Will not throw when the target of f is a stateless function object or a reference to the function object. If copy construction does throw, this->empty().
    11. -
      function& operator=(function&& f);
      +
      function& operator=(function&& f);
      @@ -369,7 +369,7 @@
    12. -
      ~function();
      +
      ~function();
      @@ -377,18 +377,18 @@ - +

      Effects:

      If !this->empty(), destroys the target of this.If !this->empty(), destroys the target of this.
    -

    -function modifiers

    +

    +function modifiers

    1. -
      void swap(const function& f);
      +
      void swap(const function& f);
      @@ -401,7 +401,7 @@
    2. -
      void clear();
      +
      void clear();
      @@ -410,7 +410,7 @@ - + @@ -422,11 +422,11 @@
      -

      -function capacity

      +

      +function capacity

      1. -
        bool empty() const;
        +
        bool empty() const;

      Postconditions:

      this->empty()this->empty()

      Throws:

      @@ -446,7 +446,7 @@
    3. -
      operator safe_bool() const;
      +
      operator safe_bool() const;
      @@ -455,7 +455,7 @@ - + @@ -465,7 +465,7 @@

      Returns:

      A safe_bool that evaluates false in a boolean context when this->empty(), and true otherwise.A safe_bool that evaluates false in a boolean context when this->empty(), and true otherwise.

      Throws:

    4. -
      bool operator!() const;
      +
      bool operator!() const;
      @@ -474,7 +474,7 @@ - + @@ -486,12 +486,12 @@
      -

      -function target access

      +

      +function target access

      1. -
        template<typename Functor> Functor* target();
        -template<typename Functor> const Functor* target() const;
        +
        template<typename Functor> Functor* target();
        +template<typename Functor> const Functor* target() const;

      Returns:

      this->empty()this->empty()

      Throws:

      @@ -513,7 +513,7 @@
    5. -
      template<typename Functor> bool contains(const Functor& f) const;
      +
      template<typename Functor> bool contains(const Functor& f) const;
      @@ -522,13 +522,13 @@

      Returns:

      -true if this->target<Functor>() is non-NULL and function_equal(*(this->target<Functor>()), f) +true if this->target<Functor>() is non-NULL and function_equal(*(this->target<Functor>()), f)
    6. -
      const std::type_info& target_type() const;
      +
      const std::type_info& target_type() const;
      @@ -538,7 +538,7 @@ +typeid of the target function object, or typeid(void) if this->empty(). @@ -550,10 +550,10 @@
      -

      -function invocation

      +

      +function invocation

      1. -
        result_type operator()(arg1_type a1, arg2_type a2, ..., argN_type aN) const;
        +
        result_type operator()(arg1_type a1, arg2_type a2, ..., argN_type aN) const;

      Returns:

      -typeid of the target function object, or typeid(void) if this->empty().

      Throws:

      @@ -572,15 +572,15 @@ +bad_function_call if this->empty(). Otherwise, may through any exception thrown by the target function f.

      Throws:

      -bad_function_call if this->empty(). Otherwise, may through any exception thrown by the target function f.
    -

    -function specialized algorithms

    +

    +function specialized algorithms

    1. template<typename Signature> 
         void swap(function<Signature>& f1, function<Signature>& f2);
      @@ -591,27 +591,27 @@

      Effects:

      -f1.swap(f2) +f1.swap(f2)
  • -

    -function comparison operators

    +

    +function comparison operators

    1. template<typename Signature, typename Functor> 
      -  bool operator==(const function<Signature>& f, Functor g);
      +  bool operator==(const function<Signature>& f, Functor g);
       template<typename Signature, typename Functor> 
      -  bool operator==(Functor g, const function<Signature>& f);
      +  bool operator==(Functor g, const function<Signature>& f);
       template<typename Signature, typename Functor> 
      -  bool operator==(const function<Signature>& f, reference_wrapper<Functor> g);
      +  bool operator==(const function<Signature>& f, reference_wrapper<Functor> g);
       template<typename Signature, typename Functor> 
      -  bool operator==(reference_wrapper<Functor> g, const function<Signature>& f);
      +  bool operator==(reference_wrapper<Functor> g, const function<Signature>& f);
       template<typename Signature1, typename Signature2> 
      -  void operator==(const function<Signature1>& f1, 
      +  void operator==(const function<Signature1>& f1, 
                         const function<Signature2>& f2);
      @@ -657,15 +657,15 @@
    2. template<typename Signature, typename Functor> 
      -  bool operator!=(const function<Signature>& f, Functor g);
      +  bool operator!=(const function<Signature>& f, Functor g);
       template<typename Signature, typename Functor> 
      -  bool operator!=(Functor g, const function<Signature>& f);
      +  bool operator!=(Functor g, const function<Signature>& f);
       template<typename Signature, typename Functor> 
      -  bool operator!=(const function<Signature>& f, reference_wrapper<Functor> g);
      +  bool operator!=(const function<Signature>& f, reference_wrapper<Functor> g);
       template<typename Signature, typename Functor> 
      -  bool operator!=(reference_wrapper<Functor> g, const function<Signature>& f);
      +  bool operator!=(reference_wrapper<Functor> g, const function<Signature>& f);
       template<typename Signature1, typename Signature2> 
      -  void operator!=(const function<Signature1>& f1, 
      +  void operator!=(const function<Signature1>& f1, 
                         const function<Signature2>& f2);
    3. diff --git a/doc/html/boost/function/sig.html b/doc/html/boost/function/sig.html index 3c17b52cad..f9c5841296 100644 --- a/doc/html/boost/function/sig.html +++ b/doc/html/boost/function/sig.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -50,7 +50,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/functionN.html b/doc/html/boost/functionN.html index 791a7cc4c3..cf3ddcfb65 100644 --- a/doc/html/boost/functionN.html +++ b/doc/html/boost/functionN.html @@ -60,81 +60,81 @@ }; // construct/copy/destruct - functionN(); - functionN(const functionN&); - functionN(functionN&&); - template<typename F> functionN(F); - template<typename F, typename Allocator> functionN(F, Allocator); - functionN& operator=(const functionN&); - functionN& operator=(functionN&&); - ~functionN(); + functionN(); + functionN(const functionN&); + functionN(functionN&&); + template<typename F> functionN(F); + template<typename F, typename Allocator> functionN(F, Allocator); + functionN& operator=(const functionN&); + functionN& operator=(functionN&&); + ~functionN(); - // modifiers - void swap(const functionN&); - void clear(); + // modifiers + void swap(const functionN&); + void clear(); - // capacity - bool empty() const; - operator safe_bool() const; - bool operator!() const; + // capacity + bool empty() const; + operator safe_bool() const; + bool operator!() const; - // target access - template<typename Functor> Functor* target(); - template<typename Functor> const Functor* target() const; - template<typename Functor> bool contains(const Functor&) const; - const std::type_info& target_type() const; + // target access + template<typename Functor> Functor* target(); + template<typename Functor> const Functor* target() const; + template<typename Functor> bool contains(const Functor&) const; + const std::type_info& target_type() const; - // invocation - result_type operator()(arg1_type, arg2_type, ..., argN_type) const; + // invocation + result_type operator()(arg1_type, arg2_type, ..., argN_type) const; }; -// specialized algorithms +// specialized algorithms template<typename T1, typename T2, ..., typename TN> void swap(functionN<T1, T2, ..., TN>&, functionN<T1, T2, ..., TN>&); -// comparison operators +// comparison operators template<typename T1, typename T2, ..., typename TN, typename Functor> - bool operator==(const functionN<T1, T2, ..., TN>&, Functor); + bool operator==(const functionN<T1, T2, ..., TN>&, Functor); template<typename T1, typename T2, ..., typename TN, typename Functor> - bool operator==(Functor, const functionN<T1, T2, ..., TN>&); + bool operator==(Functor, const functionN<T1, T2, ..., TN>&); template<typename T1, typename T2, ..., typename TN, typename Functor> - bool operator==(const functionN<T1, T2, ..., TN>&, + bool operator==(const functionN<T1, T2, ..., TN>&, reference_wrapper<Functor>); template<typename T1, typename T2, ..., typename TN, typename Functor> - bool operator==(reference_wrapper<Functor>, + bool operator==(reference_wrapper<Functor>, const functionN<T1, T2, ..., TN>&); template<typename T1, typename T2, ..., typename TN, typename U1, typename U2, ..., typename UN> - void operator==(const functionN<T1, T2, ..., TN>&, + void operator==(const functionN<T1, T2, ..., TN>&, const functionN<U1, U2, ..., UN>&); template<typename T1, typename T2, ..., typename TN, typename Functor> - bool operator!=(const functionN<T1, T2, ..., TN>&, Functor); + bool operator!=(const functionN<T1, T2, ..., TN>&, Functor); template<typename T1, typename T2, ..., typename TN, typename Functor> - bool operator!=(Functor, const functionN<T1, T2, ..., TN>&); + bool operator!=(Functor, const functionN<T1, T2, ..., TN>&); template<typename T1, typename T2, ..., typename TN, typename Functor> - bool operator!=(const functionN<T1, T2, ..., TN>&, + bool operator!=(const functionN<T1, T2, ..., TN>&, reference_wrapper<Functor>); template<typename T1, typename T2, ..., typename TN, typename Functor> - bool operator!=(reference_wrapper<Functor>, + bool operator!=(reference_wrapper<Functor>, const functionN<T1, T2, ..., TN>&); template<typename T1, typename T2, ..., typename TN, typename U1, typename U2, ..., typename UN> - void operator!=(const functionN<T1, T2, ..., TN>&, + void operator!=(const functionN<T1, T2, ..., TN>&, const functionN<U1, U2, ..., UN>&);
      -

      Description

      +

      Description

      Class template functionN is actually a family of related classes function0, function1, etc., up to some implementation-defined maximum. In this context, N refers to the number of parameters.

      -

      +

      functionN public construct/copy/destruct

      1. -
        functionN();
        +
        functionN();
        @@ -143,7 +143,7 @@ - + @@ -153,7 +153,7 @@

        Postconditions:

        this->empty()this->empty()

        Throws:

      2. -
        functionN(const functionN& f);
        +
        functionN(const functionN& f);
        @@ -162,7 +162,7 @@ - + @@ -172,7 +172,7 @@

        Postconditions:

        Contains a copy of the f's target, if it has one, or is empty if f.empty().Contains a copy of the f's target, if it has one, or is empty if f.empty().

        Throws:

      3. -
        functionN(functionN&& f);
        +
        functionN(functionN&& f);
        @@ -195,7 +195,7 @@
      4. -
        template<typename F> functionN(F f);
        +
        template<typename F> functionN(F f);
        @@ -209,13 +209,13 @@ +*this targets a copy of f if f is nonempty, or this->empty() if f is empty.

        Postconditions:

        -*this targets a copy of f if f is nonempty, or this->empty() if f is empty.
      5. -
        template<typename F, typename Allocator> functionN(F f, Allocator alloc);
        +
        template<typename F, typename Allocator> functionN(F f, Allocator alloc);
        @@ -229,7 +229,7 @@ +*this targets a copy of f if f is nonempty, or this->empty() if f is empty. @@ -239,7 +239,7 @@

        Postconditions:

        -*this targets a copy of f if f is nonempty, or this->empty() if f is empty.

        Effects:

      6. -
        functionN& operator=(const functionN& f);
        +
        functionN& operator=(const functionN& f);
        @@ -247,12 +247,12 @@ - +

        Postconditions:

        If copy construction does not throw, *this targets a copy of f's target, if it has one, or is empty if f.empty(). If copy construction does throw, this->empty().If copy construction does not throw, *this targets a copy of f's target, if it has one, or is empty if f.empty(). If copy construction does throw, this->empty().
      7. -
        functionN& operator=(functionN&& f);
        +
        functionN& operator=(functionN&& f);
        @@ -275,7 +275,7 @@
      8. -
        ~functionN();
        +
        ~functionN();
        @@ -283,18 +283,18 @@ - +

        Effects:

        If !this->empty(), destroys the target of this.If !this->empty(), destroys the target of this.
      -

      -functionN modifiers

      +

      +functionN modifiers

      1. -
        void swap(const functionN& f);
        +
        void swap(const functionN& f);
        @@ -307,7 +307,7 @@
      2. -
        void clear();
        +
        void clear();
        @@ -315,18 +315,18 @@ - +

        Postconditions:

        this->empty()this->empty()
      -

      -functionN capacity

      +

      +functionN capacity

      1. -
        bool empty() const;
        +
        bool empty() const;
        @@ -346,7 +346,7 @@
      2. -
        operator safe_bool() const;
        +
        operator safe_bool() const;
        @@ -355,7 +355,7 @@ - + @@ -365,7 +365,7 @@

        Returns:

        A safe_bool that evaluates false in a boolean context when this->empty(), and true otherwise.A safe_bool that evaluates false in a boolean context when this->empty(), and true otherwise.

        Throws:

      3. -
        bool operator!() const;
        +
        bool operator!() const;
        @@ -374,7 +374,7 @@ - + @@ -386,12 +386,12 @@
        -

        -functionN target access

        +

        +functionN target access

        1. -
          template<typename Functor> Functor* target();
          -template<typename Functor> const Functor* target() const;
          +
          template<typename Functor> Functor* target();
          +template<typename Functor> const Functor* target() const;

        Returns:

        this->empty()this->empty()

        Throws:

        @@ -413,7 +413,7 @@
      4. -
        template<typename Functor> bool contains(const Functor& f) const;
        +
        template<typename Functor> bool contains(const Functor& f) const;
        @@ -422,13 +422,13 @@

        Returns:

        -true if this->target<Functor>() is non-NULL and function_equal(*(this->target<Functor>()), f) +true if this->target<Functor>() is non-NULL and function_equal(*(this->target<Functor>()), f)
      5. -
        const std::type_info& target_type() const;
        +
        const std::type_info& target_type() const;
        @@ -438,7 +438,7 @@ +typeid of the target function object, or typeid(void) if this->empty(). @@ -450,10 +450,10 @@
        -

        -functionN invocation

        +

        +functionN invocation

        1. -
          result_type operator()(arg1_type a1, arg2_type a2, ..., argN_type aN) const;
          +
          result_type operator()(arg1_type a1, arg2_type a2, ..., argN_type aN) const;

        Returns:

        -typeid of the target function object, or typeid(void) if this->empty().

        Throws:

        @@ -472,15 +472,15 @@ +bad_function_call if this->empty(). Otherwise, may through any exception thrown by the target function f.

        Throws:

        -bad_function_call if this->empty(). Otherwise, may through any exception thrown by the target function f.
      -

      -functionN specialized algorithms

      +

      +functionN specialized algorithms

      1. template<typename T1, typename T2, ..., typename TN> 
           void swap(functionN<T1, T2, ..., TN>& f1, functionN<T1, T2, ..., TN>& f2);
        @@ -491,30 +491,30 @@

        Effects:

        -f1.swap(f2) +f1.swap(f2)
    -

    -functionN comparison operators

    +

    +functionN comparison operators

    1. template<typename T1, typename T2, ..., typename TN, typename Functor> 
      -  bool operator==(const functionN<T1, T2, ..., TN>& f, Functor g);
      +  bool operator==(const functionN<T1, T2, ..., TN>& f, Functor g);
       template<typename T1, typename T2, ..., typename TN, typename Functor> 
      -  bool operator==(Functor g, const functionN<T1, T2, ..., TN>& f);
      +  bool operator==(Functor g, const functionN<T1, T2, ..., TN>& f);
       template<typename T1, typename T2, ..., typename TN, typename Functor> 
      -  bool operator==(const functionN<T1, T2, ..., TN>& f, 
      +  bool operator==(const functionN<T1, T2, ..., TN>& f, 
                         reference_wrapper<Functor> g);
       template<typename T1, typename T2, ..., typename TN, typename Functor> 
      -  bool operator==(reference_wrapper<Functor> g, 
      +  bool operator==(reference_wrapper<Functor> g, 
                         const functionN<T1, T2, ..., TN>& f);
       template<typename T1, typename T2, ..., typename TN, typename U1, typename U2, 
                ..., typename UN> 
      -  void operator==(const functionN<T1, T2, ..., TN>& f1, 
      +  void operator==(const functionN<T1, T2, ..., TN>& f1, 
                         const functionN<U1, U2, ..., UN>& f2);
      @@ -562,18 +562,18 @@
    2. template<typename T1, typename T2, ..., typename TN, typename Functor> 
      -  bool operator!=(const functionN<T1, T2, ..., TN>& f, Functor g);
      +  bool operator!=(const functionN<T1, T2, ..., TN>& f, Functor g);
       template<typename T1, typename T2, ..., typename TN, typename Functor> 
      -  bool operator!=(Functor g, const functionN<T1, T2, ..., TN>& f);
      +  bool operator!=(Functor g, const functionN<T1, T2, ..., TN>& f);
       template<typename T1, typename T2, ..., typename TN, typename Functor> 
      -  bool operator!=(const functionN<T1, T2, ..., TN>& f, 
      +  bool operator!=(const functionN<T1, T2, ..., TN>& f, 
                         reference_wrapper<Functor> g);
       template<typename T1, typename T2, ..., typename TN, typename Functor> 
      -  bool operator!=(reference_wrapper<Functor> g, 
      +  bool operator!=(reference_wrapper<Functor> g, 
                         const functionN<T1, T2, ..., TN>& f);
       template<typename T1, typename T2, ..., typename TN, typename U1, typename U2, 
                ..., typename UN> 
      -  void operator!=(const functionN<T1, T2, ..., TN>& f1, 
      +  void operator!=(const functionN<T1, T2, ..., TN>& f1, 
                         const functionN<U1, U2, ..., UN>& f2);
    3. diff --git a/doc/html/boost/functionN/sig.html b/doc/html/boost/functionN/sig.html index 20f096a5e3..429464e2e9 100644 --- a/doc/html/boost/functionN/sig.html +++ b/doc/html/boost/functionN/sig.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -50,7 +50,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/function_base.html b/doc/html/boost/function_base.html index cf678e5952..95af3a89e5 100644 --- a/doc/html/boost/function_base.html +++ b/doc/html/boost/function_base.html @@ -38,22 +38,22 @@ class function_base { public: - // capacity - bool empty() const; + // capacity + bool empty() const; - // target access - template<typename Functor> Functor* target(); - template<typename Functor> const Functor* target() const; - template<typename Functor> bool contains(const Functor&) const; - const std::type_info& target_type() const; + // target access + template<typename Functor> Functor* target(); + template<typename Functor> const Functor* target() const; + template<typename Functor> bool contains(const Functor&) const; + const std::type_info& target_type() const; };
      -

      Description

      +

      Description

      -

      -function_base capacity

      +

      +function_base capacity

      1. -
        bool empty() const;
        +
        bool empty() const;
        @@ -74,12 +74,12 @@
        -

        -function_base target access

        +

        +function_base target access

        1. -
          template<typename Functor> Functor* target();
          -template<typename Functor> const Functor* target() const;
          +
          template<typename Functor> Functor* target();
          +template<typename Functor> const Functor* target() const;
        @@ -101,7 +101,7 @@
      2. -
        template<typename Functor> bool contains(const Functor& f) const;
        +
        template<typename Functor> bool contains(const Functor& f) const;
        @@ -110,13 +110,13 @@

        Returns:

        -true if this->target<Functor>() is non-NULL and function_equal(*(this->target<Functor>()), f) +true if this->target<Functor>() is non-NULL and function_equal(*(this->target<Functor>()), f)
      3. -
        const std::type_info& target_type() const;
        +
        const std::type_info& target_type() const;
        @@ -126,7 +126,7 @@ +typeid of the target function object, or typeid(void) if this->empty(). Works even with RTTI off. diff --git a/doc/html/boost/function_equal.html b/doc/html/boost/function_equal.html index 114b6bff98..7fe8c14fb0 100644 --- a/doc/html/boost/function_equal.html +++ b/doc/html/boost/function_equal.html @@ -35,7 +35,7 @@ template<typename F,typename G>boolfunction_equal(constF& f,constG& g);
        -

        Description

        +

        Description

        Returns:

        -typeid of the target function object, or typeid(void) if this->empty(). Works even with RTTI off.

        Throws:

        diff --git a/doc/html/boost/graph_t_1_3_26_5_14_12_2_1.html b/doc/html/boost/graph_t_1_3_26_5_14_12_2_1.html new file mode 100644 index 0000000000..64be574f17 --- /dev/null +++ b/doc/html/boost/graph_t_1_3_26_5_14_12_2_1.html @@ -0,0 +1,79 @@ + + + + +Struct graph_traits<mpi::graph_communicator> + + + + + + + + +
        + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Struct graph_traits<mpi::graph_communicator>

        +

        boost::graph_traits<mpi::graph_communicator> — Traits structure that allows a communicator with graph topology to be view as a graph by the Boost Graph Library.

        +
        +

        Synopsis

        +
        // In header: <boost/mpi/graph_communicator.hpp>
        +
        +
        +struct graph_traits<mpi::graph_communicator> {
        +  // types
        +  typedef int                        vertex_descriptor;     
        +  typedef std::pair< int, int >      edge_descriptor;       
        +  typedef directed_tag               directed_category;     
        +  typedef disallow_parallel_edge_tag edge_parallel_category;
        +  typedef unspecified                out_edge_iterator;     
        +  typedef int                        degree_size_type;      
        +  typedef unspecified                adjacency_iterator;    
        +  typedef counting_iterator< int >   vertex_iterator;       
        +  typedef int                        vertices_size_type;    
        +  typedef unspecified                edge_iterator;         
        +  typedef int                        edges_size_type;       
        +
        +  // public static functions
        +  static vertex_descriptor null_vertex();
        +};
        +
        +

        Description

        +

        The specialization of graph_traits for an MPI communicator allows a communicator with graph topology to be viewed as a graph. An MPI communicator with graph topology meets the requirements of the Graph, Incidence Graph, Adjacency Graph, Vertex List Graph, and Edge List Graph concepts from the Boost Graph Library.

        +
        +

        +graph_traits public static functions

        +
        1. +
          static vertex_descriptor null_vertex();
          Returns a vertex descriptor that can never refer to any valid vertex.
        +
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/graph_trai_1_3_26_6_11_2_1.html b/doc/html/boost/graph_trai_1_3_26_6_11_2_1.html deleted file mode 100644 index a20359791d..0000000000 --- a/doc/html/boost/graph_trai_1_3_26_6_11_2_1.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - -Struct graph_traits<mpi::graph_communicator> - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Struct graph_traits<mpi::graph_communicator>

        -

        boost::graph_traits<mpi::graph_communicator> — Traits structure that allows a communicator with graph topology to be view as a graph by the Boost Graph Library.

        -
        -

        Synopsis

        -
        // In header: <boost/mpi/graph_communicator.hpp>
        -
        -
        -struct graph_traits<mpi::graph_communicator> {
        -  // types
        -  typedef int                        vertex_descriptor;     
        -  typedef std::pair< int, int >      edge_descriptor;       
        -  typedef directed_tag               directed_category;     
        -  typedef disallow_parallel_edge_tag edge_parallel_category;
        -  typedef unspecified                out_edge_iterator;     
        -  typedef int                        degree_size_type;      
        -  typedef unspecified                adjacency_iterator;    
        -  typedef counting_iterator< int >   vertex_iterator;       
        -  typedef int                        vertices_size_type;    
        -  typedef unspecified                edge_iterator;         
        -  typedef int                        edges_size_type;       
        -
        -  // public static functions
        -  static vertex_descriptor null_vertex();
        -};
        -
        -

        Description

        -

        The specialization of graph_traits for an MPI communicator allows a communicator with graph topology to be viewed as a graph. An MPI communicator with graph topology meets the requirements of the Graph, Incidence Graph, Adjacency Graph, Vertex List Graph, and Edge List Graph concepts from the Boost Graph Library.

        -
        -

        -graph_traits public static functions

        -
        1. -
          static vertex_descriptor null_vertex();
          Returns a vertex descriptor that can never refer to any valid vertex.
        -
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/gregorian/bad_day_of_month.html b/doc/html/boost/gregorian/bad_day_of_month.html index 3e4f40dc3b..e8ea30652b 100644 --- a/doc/html/boost/gregorian/bad_day_of_month.html +++ b/doc/html/boost/gregorian/bad_day_of_month.html @@ -35,20 +35,20 @@ struct bad_day_of_month : public out_of_range { // construct/copy/destruct - bad_day_of_month(); - bad_day_of_month(const std::string &); + bad_day_of_month(); + bad_day_of_month(const std::string &); };
        -

        Description

        +

        Description

        -

        +

        bad_day_of_month public construct/copy/destruct

          -
        1. bad_day_of_month();
        2. +
        3. bad_day_of_month();
        4. -
          bad_day_of_month(const std::string & s);
          Allow other classes to throw with unique string for bad day like Feb 29.
        5. +
          bad_day_of_month(const std::string & s);
          Allow other classes to throw with unique string for bad day like Feb 29.
        diff --git a/doc/html/boost/gregorian/bad_day_of_year.html b/doc/html/boost/gregorian/bad_day_of_year.html index a6e0c6edad..5852bafd85 100644 --- a/doc/html/boost/gregorian/bad_day_of_year.html +++ b/doc/html/boost/gregorian/bad_day_of_year.html @@ -35,16 +35,16 @@ struct bad_day_of_year : public out_of_range { // construct/copy/destruct - bad_day_of_year(); + bad_day_of_year(); };
      -

      Description

      +

      Description

      -

      +

      bad_day_of_year public construct/copy/destruct

      -
      1. bad_day_of_year();
      +
      1. bad_day_of_year();
      diff --git a/doc/html/boost/gregorian/bad_month.html b/doc/html/boost/gregorian/bad_month.html index 1abfac656b..8ecde5076f 100644 --- a/doc/html/boost/gregorian/bad_month.html +++ b/doc/html/boost/gregorian/bad_month.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      @@ -35,16 +35,16 @@ struct bad_month : public out_of_range { // construct/copy/destruct - bad_month(); + bad_month(); };
      -

      Description

      +

      Description

      -

      +

      bad_month public construct/copy/destruct

      -
      1. bad_month();
      +
      1. bad_month();
      @@ -56,7 +56,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/gregorian/bad_weekday.html b/doc/html/boost/gregorian/bad_weekday.html index 57939bbfb7..72ead20c80 100644 --- a/doc/html/boost/gregorian/bad_weekday.html +++ b/doc/html/boost/gregorian/bad_weekday.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      @@ -35,16 +35,16 @@ struct bad_weekday : public out_of_range { // construct/copy/destruct - bad_weekday(); + bad_weekday(); };
      -

      Description

      +

      Description

      -

      +

      bad_weekday public construct/copy/destruct

      -
      1. bad_weekday();
      +
      1. bad_weekday();
      @@ -56,7 +56,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/gregorian/bad_year.html b/doc/html/boost/gregorian/bad_year.html index 6217a6be40..1ad759a7b6 100644 --- a/doc/html/boost/gregorian/bad_year.html +++ b/doc/html/boost/gregorian/bad_year.html @@ -35,16 +35,16 @@ struct bad_year : public out_of_range { // construct/copy/destruct - bad_year(); + bad_year(); };
    -

    Description

    +

    Description

    -

    +

    bad_year public construct/copy/destruct

    -
    1. bad_year();
    +
    1. bad_year();
    diff --git a/doc/html/boost/gregorian/date.html b/doc/html/boost/gregorian/date.html index ee29aedc27..16645b913a 100644 --- a/doc/html/boost/gregorian/date.html +++ b/doc/html/boost/gregorian/date.html @@ -48,60 +48,60 @@ typedef date_duration duration_type; // construct/copy/destruct - date(); - date(year_type, month_type, day_type); - explicit date(const ymd_type &); - explicit date(const date_int_type &); - explicit date(date_rep_type); - explicit date(special_values); + date(); + date(year_type, month_type, day_type); + explicit date(const ymd_type &); + explicit date(const date_int_type &); + explicit date(date_rep_type); + explicit date(special_values); - // public member functions - date_int_type julian_day() const; - day_of_year_type day_of_year() const; - date_int_type modjulian_day() const; - int week_number() const; - date_int_type day_number() const; - date end_of_month() const; + // public member functions + date_int_type julian_day() const; + day_of_year_type day_of_year() const; + date_int_type modjulian_day() const; + int week_number() const; + date_int_type day_number() const; + date end_of_month() const; };
    -

    Description

    +

    Description

    This class is the primary interface for programming with greogorian dates. The is a lightweight type that can be freely passed by value. All comparison operators are supported.

    -

    +

    date public construct/copy/destruct

    1. -
      date();
      Default constructor constructs with not_a_date_time.
    2. +
      date();
      Default constructor constructs with not_a_date_time.
    3. -
      date(year_type y, month_type m, day_type d);
      Main constructor with year, month, day.
    4. +
      date(year_type y, month_type m, day_type d);
      Main constructor with year, month, day.
    5. -
      explicit date(const ymd_type & ymd);
      Constructor from a ymd_type structure.
    6. +
      explicit date(const ymd_type & ymd);
      Constructor from a ymd_type structure.
    7. -
      explicit date(const date_int_type & rhs);
      Needed copy constructor.
    8. +
      explicit date(const date_int_type & rhs);
      Needed copy constructor.
    9. -
      explicit date(date_rep_type rhs);
      Needed copy constructor.
    10. +
      explicit date(date_rep_type rhs);
      Needed copy constructor.
    11. -
      explicit date(special_values sv);
      Constructor for infinities, not a date, max and min date.
    12. +
      explicit date(special_values sv);
      Constructor for infinities, not a date, max and min date.
    -

    -date public member functions

    +

    +date public member functions

    1. -
      date_int_type julian_day() const;
      Return the Julian Day number for the date.
    2. +
      date_int_type julian_day() const;
      Return the Julian Day number for the date.
    3. -
      day_of_year_type day_of_year() const;
      Return the day of year 1..365 or 1..366 (for leap year)
    4. +
      day_of_year_type day_of_year() const;
      Return the day of year 1..365 or 1..366 (for leap year)
    5. -
      date_int_type modjulian_day() const;
      Return the Modified Julian Day number for the date.
    6. +
      date_int_type modjulian_day() const;
      Return the Modified Julian Day number for the date.
    7. -
      int week_number() const;
      Return the iso 8601 week number 1..53.
    8. +
      int week_number() const;
      Return the iso 8601 week number 1..53.
    9. -
      date_int_type day_number() const;
      Return the day number from the calendar.
    10. +
      date_int_type day_number() const;
      Return the day number from the calendar.
    11. -
      date end_of_month() const;
      Return the last day of the current month.
    12. +
      date end_of_month() const;
      Return the last day of the current month.
    diff --git a/doc/html/boost/gregorian/date_duration.html b/doc/html/boost/gregorian/date_duration.html index 91f92ce7bb..24db5ac917 100644 --- a/doc/html/boost/gregorian/date_duration.html +++ b/doc/html/boost/gregorian/date_duration.html @@ -41,69 +41,69 @@ typedef base_type::duration_rep duration_rep; // construct/copy/destruct - explicit date_duration(duration_rep = 0); - date_duration(date_time::special_values); - date_duration(const date_duration &); - date_duration(const base_type &); + explicit date_duration(duration_rep = 0); + date_duration(date_time::special_values); + date_duration(const date_duration &); + date_duration(const base_type &); - // public member functions - bool operator==(const date_duration &) const; - bool operator!=(const date_duration &) const; - bool operator<(const date_duration &) const; - bool operator>(const date_duration &) const; - bool operator<=(const date_duration &) const; - bool operator>=(const date_duration &) const; - date_duration & operator-=(const date_duration &); - date_duration & operator+=(const date_duration &); - date_duration operator-() const; - date_duration & operator/=(int); + // public member functions + bool operator==(const date_duration &) const; + bool operator!=(const date_duration &) const; + bool operator<(const date_duration &) const; + bool operator>(const date_duration &) const; + bool operator<=(const date_duration &) const; + bool operator>=(const date_duration &) const; + date_duration & operator-=(const date_duration &); + date_duration & operator+=(const date_duration &); + date_duration operator-() const; + date_duration & operator/=(int); - // public static functions - static date_duration unit(); + // public static functions + static date_duration unit(); };
    -

    Description

    +

    Description

    -

    +

    date_duration public construct/copy/destruct

    1. -
      explicit date_duration(duration_rep day_count = 0);
      Construct from a day count.
    2. +
      explicit date_duration(duration_rep day_count = 0);
      Construct from a day count.
    3. -
      date_duration(date_time::special_values sv);
      construct from special_values
    4. +
      date_duration(date_time::special_values sv);
      construct from special_values
    5. -
      date_duration(const date_duration & other);
      Copy constructor.
    6. +
      date_duration(const date_duration & other);
      Copy constructor.
    7. -
      date_duration(const base_type & other);
      Construct from another date_duration.
    8. +
      date_duration(const base_type & other);
      Construct from another date_duration.
    -

    -date_duration public member functions

    +

    +date_duration public member functions

      -
    1. bool operator==(const date_duration & rhs) const;
    2. -
    3. bool operator!=(const date_duration & rhs) const;
    4. -
    5. bool operator<(const date_duration & rhs) const;
    6. -
    7. bool operator>(const date_duration & rhs) const;
    8. -
    9. bool operator<=(const date_duration & rhs) const;
    10. -
    11. bool operator>=(const date_duration & rhs) const;
    12. +
    13. bool operator==(const date_duration & rhs) const;
    14. +
    15. bool operator!=(const date_duration & rhs) const;
    16. +
    17. bool operator<(const date_duration & rhs) const;
    18. +
    19. bool operator>(const date_duration & rhs) const;
    20. +
    21. bool operator<=(const date_duration & rhs) const;
    22. +
    23. bool operator>=(const date_duration & rhs) const;
    24. -
      date_duration & operator-=(const date_duration & rhs);
      Subtract another duration – result is signed.
    25. +
      date_duration & operator-=(const date_duration & rhs);
      Subtract another duration – result is signed.
    26. -
      date_duration & operator+=(const date_duration & rhs);
      Add a duration – result is signed.
    27. +
      date_duration & operator+=(const date_duration & rhs);
      Add a duration – result is signed.
    28. -
      date_duration operator-() const;
      unary- Allows for dd = -date_duration(2); -> dd == -2
    29. +
      date_duration operator-() const;
      unary- Allows for dd = -date_duration(2); -> dd == -2
    30. -
      date_duration & operator/=(int divisor);
      Division operations on a duration with an integer.
    31. +
      date_duration & operator/=(int divisor);
      Division operations on a duration with an integer.
    -

    -date_duration public static functions

    +

    +date_duration public static functions

    1. -
      static date_duration unit();
      Returns the smallest duration – used by to calculate 'end'.
    +
    static date_duration unit();
    Returns the smallest duration – used by to calculate 'end'.
    diff --git a/doc/html/boost/gregorian/greg_day.html b/doc/html/boost/gregorian/greg_day.html index bb531fe139..36e794d072 100644 --- a/doc/html/boost/gregorian/greg_day.html +++ b/doc/html/boost/gregorian/greg_day.html @@ -36,28 +36,28 @@ class greg_day : public greg_day_rep { public: // construct/copy/destruct - greg_day(value_type); + greg_day(value_type); - // public member functions - value_type as_number() const; - operator value_type() const; + // public member functions + value_type as_number() const; + operator value_type() const; };
    -

    Description

    +

    Description

    This small class allows for simple conversion an integer value into a day of the month for a standard gregorian calendar. The type is automatically range checked so values outside of the range 1-31 will cause a bad_day_of_month exception

    -

    +

    greg_day public construct/copy/destruct

    -
    1. greg_day(value_type day_of_month);
    +
    1. greg_day(value_type day_of_month);
    -

    -greg_day public member functions

    +

    +greg_day public member functions

      -
    1. value_type as_number() const;
    2. -
    3. operator value_type() const;
    4. +
    5. value_type as_number() const;
    6. +
    7. operator value_type() const;
    diff --git a/doc/html/boost/gregorian/greg_facet_config.html b/doc/html/boost/gregorian/greg_facet_config.html index 74ffd2717f..62188c739e 100644 --- a/doc/html/boost/gregorian/greg_facet_config.html +++ b/doc/html/boost/gregorian/greg_facet_config.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -49,7 +49,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/gregorian/greg_month.html b/doc/html/boost/gregorian/greg_month.html index a63716baf7..533a890d66 100644 --- a/doc/html/boost/gregorian/greg_month.html +++ b/doc/html/boost/gregorian/greg_month.html @@ -41,63 +41,63 @@ typedef boost::shared_ptr< month_map_type > month_map_ptr_type; // construct/copy/destruct - greg_month(month_enum); - greg_month(value_type); + greg_month(month_enum); + greg_month(value_type); - // public member functions - operator value_type() const; - value_type as_number() const; - month_enum as_enum() const; - const char * as_short_string() const; - const char * as_long_string() const; - const wchar_t * as_short_wstring() const; - const wchar_t * as_long_wstring() const; - const char * as_short_string(char) const; - const char * as_long_string(char) const; - const wchar_t * as_short_string(wchar_t) const; - const wchar_t * as_long_string(wchar_t) const; + // public member functions + operator value_type() const; + value_type as_number() const; + month_enum as_enum() const; + const char * as_short_string() const; + const char * as_long_string() const; + const wchar_t * as_short_wstring() const; + const wchar_t * as_long_wstring() const; + const char * as_short_string(char) const; + const char * as_long_string(char) const; + const wchar_t * as_short_string(wchar_t) const; + const wchar_t * as_long_string(wchar_t) const; - // public static functions - static month_map_ptr_type get_month_map_ptr(); + // public static functions + static month_map_ptr_type get_month_map_ptr(); };
    -

    Description

    +

    Description

    -

    +

    greg_month public construct/copy/destruct

    1. -
      greg_month(month_enum theMonth);
      Construct a month from the months_of_year enumeration.
    2. +
      greg_month(month_enum theMonth);
      Construct a month from the months_of_year enumeration.
    3. -
      greg_month(value_type theMonth);
      Construct from a short value.
    4. +
      greg_month(value_type theMonth);
      Construct from a short value.
    -

    -greg_month public member functions

    +

    +greg_month public member functions

    1. -
      operator value_type() const;
      Convert the value back to a short.
    2. +
      operator value_type() const;
      Convert the value back to a short.
    3. -
      value_type as_number() const;
      Returns month as number from 1 to 12.
    4. -
    5. month_enum as_enum() const;
    6. -
    7. const char * as_short_string() const;
    8. -
    9. const char * as_long_string() const;
    10. -
    11. const wchar_t * as_short_wstring() const;
    12. -
    13. const wchar_t * as_long_wstring() const;
    14. -
    15. const char * as_short_string(char) const;
    16. -
    17. const char * as_long_string(char) const;
    18. -
    19. const wchar_t * as_short_string(wchar_t) const;
    20. -
    21. const wchar_t * as_long_string(wchar_t) const;
    22. +
      value_type as_number() const;
      Returns month as number from 1 to 12. +
    23. month_enum as_enum() const;
    24. +
    25. const char * as_short_string() const;
    26. +
    27. const char * as_long_string() const;
    28. +
    29. const wchar_t * as_short_wstring() const;
    30. +
    31. const wchar_t * as_long_wstring() const;
    32. +
    33. const char * as_short_string(char) const;
    34. +
    35. const char * as_long_string(char) const;
    36. +
    37. const wchar_t * as_short_string(wchar_t) const;
    38. +
    39. const wchar_t * as_long_string(wchar_t) const;
    -

    -greg_month public static functions

    +

    +greg_month public static functions

    1. -
      static month_map_ptr_type get_month_map_ptr();
      Shared pointer to a map of Month strings (Names & Abbrev) & numbers.
    +
    static month_map_ptr_type get_month_map_ptr();
    Shared pointer to a map of Month strings (Names & Abbrev) & numbers.
    diff --git a/doc/html/boost/gregorian/greg_weekday.html b/doc/html/boost/gregorian/greg_weekday.html index 04baf2dad7..46ddde6a2e 100644 --- a/doc/html/boost/gregorian/greg_weekday.html +++ b/doc/html/boost/gregorian/greg_weekday.html @@ -39,35 +39,35 @@ typedef boost::date_time::weekdays weekday_enum; // construct/copy/destruct - greg_weekday(value_type); + greg_weekday(value_type); - // public member functions - value_type as_number() const; - const char * as_short_string() const; - const char * as_long_string() const; - const wchar_t * as_short_wstring() const; - const wchar_t * as_long_wstring() const; - weekday_enum as_enum() const; + // public member functions + value_type as_number() const; + const char * as_short_string() const; + const char * as_long_string() const; + const wchar_t * as_short_wstring() const; + const wchar_t * as_long_wstring() const; + weekday_enum as_enum() const; };
    -

    Description

    +

    Description

    -

    +

    greg_weekday public construct/copy/destruct

    -
    1. greg_weekday(value_type day_of_week_num);
    +
    1. greg_weekday(value_type day_of_week_num);
    -

    -greg_weekday public member functions

    +

    +greg_weekday public member functions

      -
    1. value_type as_number() const;
    2. -
    3. const char * as_short_string() const;
    4. -
    5. const char * as_long_string() const;
    6. -
    7. const wchar_t * as_short_wstring() const;
    8. -
    9. const wchar_t * as_long_wstring() const;
    10. -
    11. weekday_enum as_enum() const;
    12. +
    13. value_type as_number() const;
    14. +
    15. const char * as_short_string() const;
    16. +
    17. const char * as_long_string() const;
    18. +
    19. const wchar_t * as_short_wstring() const;
    20. +
    21. const wchar_t * as_long_wstring() const;
    22. +
    23. weekday_enum as_enum() const;
    diff --git a/doc/html/boost/gregorian/greg_year.html b/doc/html/boost/gregorian/greg_year.html index 5c770686bd..657f0ae304 100644 --- a/doc/html/boost/gregorian/greg_year.html +++ b/doc/html/boost/gregorian/greg_year.html @@ -27,7 +27,7 @@

    Class greg_year

    -

    boost::gregorian::greg_year — Represent a year (range 1400 - 10000)

    +

    boost::gregorian::greg_year — Represent a year (range 1400 - 9999)

    Synopsis

    // In header: <boost/date_time/gregorian/greg_year.hpp>
    @@ -36,25 +36,25 @@
     class greg_year : public greg_year_rep {
     public:
       // construct/copy/destruct
    -  greg_year(value_type);
    +  greg_year(value_type);
     
    -  // public member functions
    -  operator value_type() const;
    +  // public member functions
    +  operator value_type() const;
     };
    -

    Description

    -

    This small class allows for simple conversion an integer value into a year for the gregorian calendar. This currently only allows a range of 1400 to 10000. Both ends of the range are a bit arbitrary at the moment, but they are the limits of current testing of the library. As such they may be increased in the future.

    +

    Description

    +

    This small class allows for simple conversion an integer value into a year for the gregorian calendar. This currently only allows a range of 1400 to 9999. Both ends of the range are a bit arbitrary at the moment, but they are the limits of current testing of the library. As such they may be increased in the future.

    -

    +

    greg_year public construct/copy/destruct

    -
    1. greg_year(value_type year);
    +
    1. greg_year(value_type year);
    -

    -greg_year public member functions

    -
    1. operator value_type() const;
    +

    +greg_year public member functions

    +
    1. operator value_type() const;
    diff --git a/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_3.html b/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_3.html deleted file mode 100644 index 74eda47ab9..0000000000 --- a/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_3.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - -Function template operator<< - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator<<

    -

    boost::gregorian::operator<< — ostream operator for gregorian::date

    -
    -

    Synopsis

    -
    // In header: <boost/date_time/gregorian/greg_facet.hpp>
    -
    -
    -template<typename charT, typename traits> 
    -  std::basic_ostream< charT, traits > & 
    -  operator<<(std::basic_ostream< charT, traits > & os, const date & d);
    -
    -

    Description

    -

    Uses the date facet to determine various output parameters including:

    -
      -
    • string values for the month (eg: Jan, Feb, Mar) (default: English)

    • -
    • string values for special values (eg: not-a-date-time) (default: English)

    • -
    • selection of long, short strings, or numerical month representation (default: short string)

    • -
    • month day year order (default yyyy-mmm-dd)

    • -
    -

    -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_4.html b/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_4.html deleted file mode 100644 index ab6366f914..0000000000 --- a/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_4.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Function template operator<< - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator<<

    -

    boost::gregorian::operator<< — operator<< for gregorian::greg_month typically streaming: Jan, Feb, Mar...

    -
    -

    Synopsis

    -
    // In header: <boost/date_time/gregorian/greg_facet.hpp>
    -
    -
    -template<typename charT, typename traits> 
    -  std::basic_ostream< charT, traits > & 
    -  operator<<(std::basic_ostream< charT, traits > & os, const greg_month & m);
    -
    -

    Description

    -

    Uses the date facet to determine output string as well as selection of long or short strings. Default if no facet is installed is to output a 2 wide numeric value for the month eg: 01 == Jan, 02 == Feb, ... 12 == Dec.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_5.html b/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_5.html deleted file mode 100644 index 24c3829220..0000000000 --- a/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_5.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Function template operator<< - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator<<

    -

    boost::gregorian::operator<< — operator<< for gregorian::greg_weekday typically streaming: Sun, Mon, Tue, ...

    -
    -

    Synopsis

    -
    // In header: <boost/date_time/gregorian/greg_facet.hpp>
    -
    -
    -template<typename charT, typename traits> 
    -  std::basic_ostream< charT, traits > & 
    -  operator<<(std::basic_ostream< charT, traits > & os, 
    -             const greg_weekday & wd);
    -
    -

    Description

    -

    Uses the date facet to determine output string as well as selection of long or short string. Default if no facet is installed is to output a 3 char english string for the day of the week.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_6.html b/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_6.html deleted file mode 100644 index 5324336934..0000000000 --- a/doc/html/boost/gregorian/opera_1_3_12_15_4_11_1_1_6.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Function template operator<< - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator<<

    -

    boost::gregorian::operator<< — operator<< for gregorian::date_period typical output: [2002-Jan-01/2002-Jan-31]

    -
    -

    Synopsis

    -
    // In header: <boost/date_time/gregorian/greg_facet.hpp>
    -
    -
    -template<typename charT, typename traits> 
    -  std::basic_ostream< charT, traits > & 
    -  operator<<(std::basic_ostream< charT, traits > & os, const date_period & dp);
    -
    -

    Description

    -

    Uses the date facet to determine output string as well as selection of long or short string fr dates. Default if no facet is installed is to output a 3 char english string for the day of the week.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_3.html b/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_3.html new file mode 100644 index 0000000000..4f6c77d354 --- /dev/null +++ b/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_3.html @@ -0,0 +1,63 @@ + + + + +Function template operator<< + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator<<

    +

    boost::gregorian::operator<< — ostream operator for gregorian::date

    +
    +

    Synopsis

    +
    // In header: <boost/date_time/gregorian/greg_facet.hpp>
    +
    +
    +template<typename charT, typename traits> 
    +  std::basic_ostream< charT, traits > & 
    +  operator<<(std::basic_ostream< charT, traits > & os, const date & d);
    +
    +

    Description

    +

    Uses the date facet to determine various output parameters including:

    +
      +
    • string values for the month (eg: Jan, Feb, Mar) (default: English)

    • +
    • string values for special values (eg: not-a-date-time) (default: English)

    • +
    • selection of long, short strings, or numerical month representation (default: short string)

    • +
    • month day year order (default yyyy-mmm-dd)

    • +
    +

    +

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_4.html b/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_4.html new file mode 100644 index 0000000000..afc1b086f6 --- /dev/null +++ b/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_4.html @@ -0,0 +1,55 @@ + + + + +Function template operator<< + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator<<

    +

    boost::gregorian::operator<< — operator<< for gregorian::greg_month typically streaming: Jan, Feb, Mar...

    +
    +

    Synopsis

    +
    // In header: <boost/date_time/gregorian/greg_facet.hpp>
    +
    +
    +template<typename charT, typename traits> 
    +  std::basic_ostream< charT, traits > & 
    +  operator<<(std::basic_ostream< charT, traits > & os, const greg_month & m);
    +
    +

    Description

    +

    Uses the date facet to determine output string as well as selection of long or short strings. Default if no facet is installed is to output a 2 wide numeric value for the month eg: 01 == Jan, 02 == Feb, ... 12 == Dec.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_5.html b/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_5.html new file mode 100644 index 0000000000..cc51f8fa92 --- /dev/null +++ b/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_5.html @@ -0,0 +1,56 @@ + + + + +Function template operator<< + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator<<

    +

    boost::gregorian::operator<< — operator<< for gregorian::greg_weekday typically streaming: Sun, Mon, Tue, ...

    +
    +

    Synopsis

    +
    // In header: <boost/date_time/gregorian/greg_facet.hpp>
    +
    +
    +template<typename charT, typename traits> 
    +  std::basic_ostream< charT, traits > & 
    +  operator<<(std::basic_ostream< charT, traits > & os, 
    +             const greg_weekday & wd);
    +
    +

    Description

    +

    Uses the date facet to determine output string as well as selection of long or short string. Default if no facet is installed is to output a 3 char english string for the day of the week.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_6.html b/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_6.html new file mode 100644 index 0000000000..8a6a235245 --- /dev/null +++ b/doc/html/boost/gregorian/opera_1_3_13_15_4_11_1_1_6.html @@ -0,0 +1,55 @@ + + + + +Function template operator<< + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator<<

    +

    boost::gregorian::operator<< — operator<< for gregorian::date_period typical output: [2002-Jan-01/2002-Jan-31]

    +
    +

    Synopsis

    +
    // In header: <boost/date_time/gregorian/greg_facet.hpp>
    +
    +
    +template<typename charT, typename traits> 
    +  std::basic_ostream< charT, traits > & 
    +  operator<<(std::basic_ostream< charT, traits > & os, const date_period & dp);
    +
    +

    Description

    +

    Uses the date facet to determine output string as well as selection of long or short string fr dates. Default if no facet is installed is to output a 3 char english string for the day of the week.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/gregorian/special_value_from_string.html b/doc/html/boost/gregorian/special_value_from_string.html index b53e22a5b3..4225905844 100644 --- a/doc/html/boost/gregorian/special_value_from_string.html +++ b/doc/html/boost/gregorian/special_value_from_string.html @@ -36,7 +36,7 @@ BOOST_DATE_TIME_DECL special_values special_value_from_string(const std::string & s);
    -

    Description

    +

    Description

    Return special_value from string argument. If argument is not one of the special value names (defined in src/gregorian/names.hpp), return 'not_special'

    diff --git a/doc/html/boost/gregorian/weeks_duration.html b/doc/html/boost/gregorian/weeks_duration.html index 1c8b4805c8..b7fa2dbf63 100644 --- a/doc/html/boost/gregorian/weeks_duration.html +++ b/doc/html/boost/gregorian/weeks_duration.html @@ -36,19 +36,19 @@ class weeks_duration : public boost::gregorian::date_duration { public: // construct/copy/destruct - weeks_duration(duration_rep); - weeks_duration(date_time::special_values); + weeks_duration(duration_rep); + weeks_duration(date_time::special_values); };
    -

    Description

    +

    Description

    -

    +

    weeks_duration public construct/copy/destruct

      -
    1. weeks_duration(duration_rep w);
    2. -
    3. weeks_duration(date_time::special_values sv);
    4. +
    5. weeks_duration(duration_rep w);
    6. +
    7. weeks_duration(date_time::special_values sv);
    diff --git a/doc/html/boost/gregorian/year_based_generator.html b/doc/html/boost/gregorian/year_based_generator.html index 9814ec9c1a..0c9df81aea 100644 --- a/doc/html/boost/gregorian/year_based_generator.html +++ b/doc/html/boost/gregorian/year_based_generator.html @@ -35,7 +35,7 @@
    typedef date_time::year_based_generator< date > year_based_generator;
    -

    Description

    +

    Description

    A unifying date_generator base type for: partial_date, nth_day_of_the_week_in_month, first_day_of_the_week_in_month, and last_day_of_the_week_in_month

    diff --git a/doc/html/boost/hash.html b/doc/html/boost/hash.html index 95b6f488bd..0efa2f2d26 100644 --- a/doc/html/boost/hash.html +++ b/doc/html/boost/hash.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,15 +30,15 @@

    boost::hash — A TR1 compliant hash function object.

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    +
    // In header: <boost/container_hash/hash.hpp>
     
     template<typename T> 
     struct hash : public std::unary_function<T, std::size_t> {
    -  std::size_t operator()(T const&) const;
    +  std::size_t operator()(T const&) const;
     };
    -

    Description

    -
    std::size_t operator()(T const& val) const;
    +

    Description

    +
    std::size_t operator()(T const& val) const;
    @@ -50,7 +50,7 @@ @@ -59,7 +59,7 @@ @@ -101,7 +101,7 @@

    -
    hash_value(val)
    +
    hash_value(val)

    Notes:

    - The call to hash_value + The call to hash_value is unqualified, so that custom overloads can be found via argument dependent lookup.

    @@ -70,7 +70,7 @@

    Forward declared in - <boost/functional/hash_fwd.hpp> + <boost/container_hash/hash_fwd.hpp>

    This hash function is not intended for general use, and isn't @@ -83,7 +83,7 @@

    Throws:

    Only throws if - hash_value(T) throws. + hash_value(T) throws.


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/hash_T_1_3_11_11_2_2_24.html b/doc/html/boost/hash_T_1_3_11_11_2_2_24.html new file mode 100644 index 0000000000..3dca5be64c --- /dev/null +++ b/doc/html/boost/hash_T_1_3_11_11_2_2_24.html @@ -0,0 +1,74 @@ + + + + +Struct template hash<T*> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct template hash<T*>

    +

    boost::hash<T*>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +template<typename T> 
    +struct hash<T*> {
    +  std::size_t operator()(T*) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(T* val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    Unspecified in TR1, except that equal arguments yield the same result.

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_T_1_3_16_11_2_2_24.html b/doc/html/boost/hash_T_1_3_16_11_2_2_24.html deleted file mode 100644 index 696fa45848..0000000000 --- a/doc/html/boost/hash_T_1_3_16_11_2_2_24.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - -Struct template hash<T*> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct template hash<T*>

    -

    boost::hash<T*>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -template<typename T> 
    -struct hash<T*> {
    -  std::size_t operator()(T*) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(T* val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    Unspecified in TR1, except that equal arguments yield the same result.

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_bool_1_3_11_11_2_2_2.html b/doc/html/boost/hash_bool_1_3_11_11_2_2_2.html new file mode 100644 index 0000000000..d73050b8c8 --- /dev/null +++ b/doc/html/boost/hash_bool_1_3_11_11_2_2_2.html @@ -0,0 +1,77 @@ + + + + +Struct hash<bool> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<bool>

    +

    boost::hash<bool>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<bool> {
    +  std::size_t operator()(bool) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(bool val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_bool_1_3_16_11_2_2_2.html b/doc/html/boost/hash_bool_1_3_16_11_2_2_2.html deleted file mode 100644 index 279a75b1a1..0000000000 --- a/doc/html/boost/hash_bool_1_3_16_11_2_2_2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<bool> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<bool>

    -

    boost::hash<bool>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<bool> {
    -  std::size_t operator()(bool) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(bool val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_char1_1_3_11_11_2_2_7.html b/doc/html/boost/hash_char1_1_3_11_11_2_2_7.html new file mode 100644 index 0000000000..f80e0fa41a --- /dev/null +++ b/doc/html/boost/hash_char1_1_3_11_11_2_2_7.html @@ -0,0 +1,77 @@ + + + + +Struct hash<char16_t> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<char16_t>

    +

    boost::hash<char16_t>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<char16_t> {
    +  std::size_t operator()(char16_t) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(char16_t val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_char1_1_3_16_11_2_2_7.html b/doc/html/boost/hash_char1_1_3_16_11_2_2_7.html deleted file mode 100644 index 95caa4d72e..0000000000 --- a/doc/html/boost/hash_char1_1_3_16_11_2_2_7.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<char16_t> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<char16_t>

    -

    boost::hash<char16_t>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<char16_t> {
    -  std::size_t operator()(char16_t) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(char16_t val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_char3_1_3_11_11_2_2_8.html b/doc/html/boost/hash_char3_1_3_11_11_2_2_8.html new file mode 100644 index 0000000000..7532d76a6b --- /dev/null +++ b/doc/html/boost/hash_char3_1_3_11_11_2_2_8.html @@ -0,0 +1,77 @@ + + + + +Struct hash<char32_t> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<char32_t>

    +

    boost::hash<char32_t>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<char32_t> {
    +  std::size_t operator()(char32_t) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(char32_t val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_char3_1_3_16_11_2_2_8.html b/doc/html/boost/hash_char3_1_3_16_11_2_2_8.html deleted file mode 100644 index e99107ad55..0000000000 --- a/doc/html/boost/hash_char3_1_3_16_11_2_2_8.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<char32_t> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<char32_t>

    -

    boost::hash<char32_t>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<char32_t> {
    -  std::size_t operator()(char32_t) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(char32_t val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_char_1_3_11_11_2_2_3.html b/doc/html/boost/hash_char_1_3_11_11_2_2_3.html new file mode 100644 index 0000000000..a42fcf71ee --- /dev/null +++ b/doc/html/boost/hash_char_1_3_11_11_2_2_3.html @@ -0,0 +1,77 @@ + + + + +Struct hash<char> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<char>

    +

    boost::hash<char>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<char> {
    +  std::size_t operator()(char) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(char val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_char_1_3_16_11_2_2_3.html b/doc/html/boost/hash_char_1_3_16_11_2_2_3.html deleted file mode 100644 index 5156865bd9..0000000000 --- a/doc/html/boost/hash_char_1_3_16_11_2_2_3.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<char> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<char>

    -

    boost::hash<char>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<char> {
    -  std::size_t operator()(char) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(char val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_doub_1_3_11_11_2_2_18.html b/doc/html/boost/hash_doub_1_3_11_11_2_2_18.html new file mode 100644 index 0000000000..e2275098b1 --- /dev/null +++ b/doc/html/boost/hash_doub_1_3_11_11_2_2_18.html @@ -0,0 +1,77 @@ + + + + +Struct hash<double> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<double>

    +

    boost::hash<double>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<double> {
    +  std::size_t operator()(double) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(double val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_doub_1_3_16_11_2_2_18.html b/doc/html/boost/hash_doub_1_3_16_11_2_2_18.html deleted file mode 100644 index 18e21058a2..0000000000 --- a/doc/html/boost/hash_doub_1_3_16_11_2_2_18.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<double> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<double>

    -

    boost::hash<double>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<double> {
    -  std::size_t operator()(double) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(double val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_floa_1_3_11_11_2_2_17.html b/doc/html/boost/hash_floa_1_3_11_11_2_2_17.html new file mode 100644 index 0000000000..0dc35731f1 --- /dev/null +++ b/doc/html/boost/hash_floa_1_3_11_11_2_2_17.html @@ -0,0 +1,77 @@ + + + + +Struct hash<float> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<float>

    +

    boost::hash<float>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<float> {
    +  std::size_t operator()(float) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(float val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_floa_1_3_16_11_2_2_17.html b/doc/html/boost/hash_floa_1_3_16_11_2_2_17.html deleted file mode 100644 index 9333cc31cd..0000000000 --- a/doc/html/boost/hash_floa_1_3_16_11_2_2_17.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<float> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<float>

    -

    boost::hash<float>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<float> {
    -  std::size_t operator()(float) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(float val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_int_1_3_11_11_2_2_11.html b/doc/html/boost/hash_int_1_3_11_11_2_2_11.html new file mode 100644 index 0000000000..2c9eec8f35 --- /dev/null +++ b/doc/html/boost/hash_int_1_3_11_11_2_2_11.html @@ -0,0 +1,77 @@ + + + + +Struct hash<int> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<int>

    +

    boost::hash<int>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<int> {
    +  std::size_t operator()(int) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(int val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_int_1_3_16_11_2_2_11.html b/doc/html/boost/hash_int_1_3_16_11_2_2_11.html deleted file mode 100644 index 96f3352160..0000000000 --- a/doc/html/boost/hash_int_1_3_16_11_2_2_11.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<int> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<int>

    -

    boost::hash<int>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<int> {
    -  std::size_t operator()(int) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(int val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_long_1_3_11_11_2_2_13.html b/doc/html/boost/hash_long_1_3_11_11_2_2_13.html new file mode 100644 index 0000000000..fe3802c86e --- /dev/null +++ b/doc/html/boost/hash_long_1_3_11_11_2_2_13.html @@ -0,0 +1,77 @@ + + + + +Struct hash<long> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<long>

    +

    boost::hash<long>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<long> {
    +  std::size_t operator()(long) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(long val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_long_1_3_11_11_2_2_15.html b/doc/html/boost/hash_long_1_3_11_11_2_2_15.html new file mode 100644 index 0000000000..a4852aae12 --- /dev/null +++ b/doc/html/boost/hash_long_1_3_11_11_2_2_15.html @@ -0,0 +1,77 @@ + + + + +Struct hash<long long> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<long long>

    +

    boost::hash<long long>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<long long> {
    +  std::size_t operator()(long long) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(long long val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_long_1_3_11_11_2_2_19.html b/doc/html/boost/hash_long_1_3_11_11_2_2_19.html new file mode 100644 index 0000000000..bba4e2631c --- /dev/null +++ b/doc/html/boost/hash_long_1_3_11_11_2_2_19.html @@ -0,0 +1,77 @@ + + + + +Struct hash<long double> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<long double>

    +

    boost::hash<long double>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<long double> {
    +  std::size_t operator()(long double) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(long double val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_long_1_3_16_11_2_2_13.html b/doc/html/boost/hash_long_1_3_16_11_2_2_13.html deleted file mode 100644 index 35b568c497..0000000000 --- a/doc/html/boost/hash_long_1_3_16_11_2_2_13.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<long> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<long>

    -

    boost::hash<long>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<long> {
    -  std::size_t operator()(long) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(long val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_long_1_3_16_11_2_2_15.html b/doc/html/boost/hash_long_1_3_16_11_2_2_15.html deleted file mode 100644 index b738e9588a..0000000000 --- a/doc/html/boost/hash_long_1_3_16_11_2_2_15.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<long long> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<long long>

    -

    boost::hash<long long>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<long long> {
    -  std::size_t operator()(long long) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(long long val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_long_1_3_16_11_2_2_19.html b/doc/html/boost/hash_long_1_3_16_11_2_2_19.html deleted file mode 100644 index c8d21bb1a5..0000000000 --- a/doc/html/boost/hash_long_1_3_16_11_2_2_19.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<long double> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<long double>

    -

    boost::hash<long double>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<long double> {
    -  std::size_t operator()(long double) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(long double val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_short_1_3_11_11_2_2_9.html b/doc/html/boost/hash_short_1_3_11_11_2_2_9.html new file mode 100644 index 0000000000..a4129e6e4b --- /dev/null +++ b/doc/html/boost/hash_short_1_3_11_11_2_2_9.html @@ -0,0 +1,77 @@ + + + + +Struct hash<short> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<short>

    +

    boost::hash<short>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<short> {
    +  std::size_t operator()(short) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(short val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_short_1_3_16_11_2_2_9.html b/doc/html/boost/hash_short_1_3_16_11_2_2_9.html deleted file mode 100644 index fb5b5a6916..0000000000 --- a/doc/html/boost/hash_short_1_3_16_11_2_2_9.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<short> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<short>

    -

    boost::hash<short>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<short> {
    -  std::size_t operator()(short) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(short val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_signe_1_3_11_11_2_2_4.html b/doc/html/boost/hash_signe_1_3_11_11_2_2_4.html new file mode 100644 index 0000000000..478b147cc0 --- /dev/null +++ b/doc/html/boost/hash_signe_1_3_11_11_2_2_4.html @@ -0,0 +1,77 @@ + + + + +Struct hash<signed char> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<signed char>

    +

    boost::hash<signed char>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<signed char> {
    +  std::size_t operator()(signed char) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(signed char val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_signe_1_3_16_11_2_2_4.html b/doc/html/boost/hash_signe_1_3_16_11_2_2_4.html deleted file mode 100644 index bf148fbeb7..0000000000 --- a/doc/html/boost/hash_signe_1_3_16_11_2_2_4.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<signed char> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<signed char>

    -

    boost::hash<signed char>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<signed char> {
    -  std::size_t operator()(signed char) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(signed char val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_std__1_3_11_11_2_2_20.html b/doc/html/boost/hash_std__1_3_11_11_2_2_20.html new file mode 100644 index 0000000000..5792f8c0ec --- /dev/null +++ b/doc/html/boost/hash_std__1_3_11_11_2_2_20.html @@ -0,0 +1,77 @@ + + + + +Struct hash<std::string> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<std::string>

    +

    boost::hash<std::string>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<std::string> {
    +  std::size_t operator()(std::string const&) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(std::string const& val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_std__1_3_11_11_2_2_21.html b/doc/html/boost/hash_std__1_3_11_11_2_2_21.html new file mode 100644 index 0000000000..af785ab9e2 --- /dev/null +++ b/doc/html/boost/hash_std__1_3_11_11_2_2_21.html @@ -0,0 +1,77 @@ + + + + +Struct hash<std::wstring> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<std::wstring>

    +

    boost::hash<std::wstring>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<std::wstring> {
    +  std::size_t operator()(std::wstring const&) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(std::wstring const& val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_std__1_3_11_11_2_2_22.html b/doc/html/boost/hash_std__1_3_11_11_2_2_22.html new file mode 100644 index 0000000000..83aa6f4047 --- /dev/null +++ b/doc/html/boost/hash_std__1_3_11_11_2_2_22.html @@ -0,0 +1,77 @@ + + + + +Struct hash<std::u16string> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<std::u16string>

    +

    boost::hash<std::u16string>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<std::u16string> {
    +  std::size_t operator()(std::u16string const&) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(std::u16string const& val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_std__1_3_11_11_2_2_23.html b/doc/html/boost/hash_std__1_3_11_11_2_2_23.html new file mode 100644 index 0000000000..c164802a4e --- /dev/null +++ b/doc/html/boost/hash_std__1_3_11_11_2_2_23.html @@ -0,0 +1,77 @@ + + + + +Struct hash<std::u32string> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<std::u32string>

    +

    boost::hash<std::u32string>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<std::u32string> {
    +  std::size_t operator()(std::u32string const&) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(std::u32string const& val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_std__1_3_11_11_2_2_25.html b/doc/html/boost/hash_std__1_3_11_11_2_2_25.html new file mode 100644 index 0000000000..8db12483a3 --- /dev/null +++ b/doc/html/boost/hash_std__1_3_11_11_2_2_25.html @@ -0,0 +1,74 @@ + + + + +Struct hash<std::type_index> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<std::type_index>

    +

    boost::hash<std::type_index>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<std::type_index> {
    +  std::size_t operator()(std::type_index) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(std::type_index val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    val.hash_code()

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_std__1_3_16_11_2_2_20.html b/doc/html/boost/hash_std__1_3_16_11_2_2_20.html deleted file mode 100644 index e738eabe3a..0000000000 --- a/doc/html/boost/hash_std__1_3_16_11_2_2_20.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<std::string> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<std::string>

    -

    boost::hash<std::string>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<std::string> {
    -  std::size_t operator()(std::string const&) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(std::string const& val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_std__1_3_16_11_2_2_21.html b/doc/html/boost/hash_std__1_3_16_11_2_2_21.html deleted file mode 100644 index 0eeb1b9fd8..0000000000 --- a/doc/html/boost/hash_std__1_3_16_11_2_2_21.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<std::wstring> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<std::wstring>

    -

    boost::hash<std::wstring>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<std::wstring> {
    -  std::size_t operator()(std::wstring const&) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(std::wstring const& val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_std__1_3_16_11_2_2_22.html b/doc/html/boost/hash_std__1_3_16_11_2_2_22.html deleted file mode 100644 index 3a0a2eb277..0000000000 --- a/doc/html/boost/hash_std__1_3_16_11_2_2_22.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<std::u16string> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<std::u16string>

    -

    boost::hash<std::u16string>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<std::u16string> {
    -  std::size_t operator()(std::u16string const&) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(std::u16string const& val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_std__1_3_16_11_2_2_23.html b/doc/html/boost/hash_std__1_3_16_11_2_2_23.html deleted file mode 100644 index b279f93bc0..0000000000 --- a/doc/html/boost/hash_std__1_3_16_11_2_2_23.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<std::u32string> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<std::u32string>

    -

    boost::hash<std::u32string>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<std::u32string> {
    -  std::size_t operator()(std::u32string const&) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(std::u32string const& val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_std__1_3_16_11_2_2_25.html b/doc/html/boost/hash_std__1_3_16_11_2_2_25.html deleted file mode 100644 index 81173cffa2..0000000000 --- a/doc/html/boost/hash_std__1_3_16_11_2_2_25.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - -Struct hash<std::type_index> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<std::type_index>

    -

    boost::hash<std::type_index>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<std::type_index> {
    -  std::size_t operator()(std::type_index) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(std::type_index val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    val.hash_code()

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_unsi_1_3_11_11_2_2_10.html b/doc/html/boost/hash_unsi_1_3_11_11_2_2_10.html new file mode 100644 index 0000000000..726b41c7b8 --- /dev/null +++ b/doc/html/boost/hash_unsi_1_3_11_11_2_2_10.html @@ -0,0 +1,77 @@ + + + + +Struct hash<unsigned short> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<unsigned short>

    +

    boost::hash<unsigned short>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<unsigned short> {
    +  std::size_t operator()(unsigned short) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(unsigned short val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_unsi_1_3_11_11_2_2_12.html b/doc/html/boost/hash_unsi_1_3_11_11_2_2_12.html new file mode 100644 index 0000000000..853d717647 --- /dev/null +++ b/doc/html/boost/hash_unsi_1_3_11_11_2_2_12.html @@ -0,0 +1,77 @@ + + + + +Struct hash<unsigned int> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<unsigned int>

    +

    boost::hash<unsigned int>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<unsigned int> {
    +  std::size_t operator()(unsigned int) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(unsigned int val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_unsi_1_3_11_11_2_2_14.html b/doc/html/boost/hash_unsi_1_3_11_11_2_2_14.html new file mode 100644 index 0000000000..73fc4c1475 --- /dev/null +++ b/doc/html/boost/hash_unsi_1_3_11_11_2_2_14.html @@ -0,0 +1,77 @@ + + + + +Struct hash<unsigned long> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<unsigned long>

    +

    boost::hash<unsigned long>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<unsigned long> {
    +  std::size_t operator()(unsigned long) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(unsigned long val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_unsi_1_3_11_11_2_2_16.html b/doc/html/boost/hash_unsi_1_3_11_11_2_2_16.html new file mode 100644 index 0000000000..8095b0a65d --- /dev/null +++ b/doc/html/boost/hash_unsi_1_3_11_11_2_2_16.html @@ -0,0 +1,77 @@ + + + + +Struct hash<unsigned long long> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<unsigned long long>

    +

    boost::hash<unsigned long long>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<unsigned long long> {
    +  std::size_t operator()(unsigned long long) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(unsigned long long val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_unsi_1_3_16_11_2_2_10.html b/doc/html/boost/hash_unsi_1_3_16_11_2_2_10.html deleted file mode 100644 index d66d611c5d..0000000000 --- a/doc/html/boost/hash_unsi_1_3_16_11_2_2_10.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<unsigned short> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<unsigned short>

    -

    boost::hash<unsigned short>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<unsigned short> {
    -  std::size_t operator()(unsigned short) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(unsigned short val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_unsi_1_3_16_11_2_2_12.html b/doc/html/boost/hash_unsi_1_3_16_11_2_2_12.html deleted file mode 100644 index c86144e280..0000000000 --- a/doc/html/boost/hash_unsi_1_3_16_11_2_2_12.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<unsigned int> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<unsigned int>

    -

    boost::hash<unsigned int>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<unsigned int> {
    -  std::size_t operator()(unsigned int) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(unsigned int val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_unsi_1_3_16_11_2_2_14.html b/doc/html/boost/hash_unsi_1_3_16_11_2_2_14.html deleted file mode 100644 index a9c3fa00b4..0000000000 --- a/doc/html/boost/hash_unsi_1_3_16_11_2_2_14.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<unsigned long> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<unsigned long>

    -

    boost::hash<unsigned long>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<unsigned long> {
    -  std::size_t operator()(unsigned long) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(unsigned long val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_unsi_1_3_16_11_2_2_16.html b/doc/html/boost/hash_unsi_1_3_16_11_2_2_16.html deleted file mode 100644 index ee9c94f8b8..0000000000 --- a/doc/html/boost/hash_unsi_1_3_16_11_2_2_16.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<unsigned long long> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<unsigned long long>

    -

    boost::hash<unsigned long long>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<unsigned long long> {
    -  std::size_t operator()(unsigned long long) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(unsigned long long val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_unsig_1_3_11_11_2_2_5.html b/doc/html/boost/hash_unsig_1_3_11_11_2_2_5.html new file mode 100644 index 0000000000..de084a7b30 --- /dev/null +++ b/doc/html/boost/hash_unsig_1_3_11_11_2_2_5.html @@ -0,0 +1,77 @@ + + + + +Struct hash<unsigned char> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<unsigned char>

    +

    boost::hash<unsigned char>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<unsigned char> {
    +  std::size_t operator()(unsigned char) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(unsigned char val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_unsig_1_3_16_11_2_2_5.html b/doc/html/boost/hash_unsig_1_3_16_11_2_2_5.html deleted file mode 100644 index e2f35fcf5f..0000000000 --- a/doc/html/boost/hash_unsig_1_3_16_11_2_2_5.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<unsigned char> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<unsigned char>

    -

    boost::hash<unsigned char>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<unsigned char> {
    -  std::size_t operator()(unsigned char) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(unsigned char val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/hash_wchar_1_3_11_11_2_2_6.html b/doc/html/boost/hash_wchar_1_3_11_11_2_2_6.html new file mode 100644 index 0000000000..7dfbcd1b10 --- /dev/null +++ b/doc/html/boost/hash_wchar_1_3_11_11_2_2_6.html @@ -0,0 +1,77 @@ + + + + +Struct hash<wchar_t> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct hash<wchar_t>

    +

    boost::hash<wchar_t>

    +
    +

    Synopsis

    +
    // In header: <boost/container_hash/hash.hpp>
    +
    +
    +struct hash<wchar_t> {
    +  std::size_t operator()(wchar_t) const;
    +};
    +
    +

    Description

    +
    std::size_t operator()(wchar_t val) const;
    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    Unspecified in TR1, except that equal arguments yield the same result.

    +

    hash_value(val) in Boost.

    +

    Throws:

    Doesn't throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/hash_wchar_1_3_16_11_2_2_6.html b/doc/html/boost/hash_wchar_1_3_16_11_2_2_6.html deleted file mode 100644 index f74fefdcdf..0000000000 --- a/doc/html/boost/hash_wchar_1_3_16_11_2_2_6.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct hash<wchar_t> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct hash<wchar_t>

    -

    boost::hash<wchar_t>

    -
    -

    Synopsis

    -
    // In header: <boost/functional/hash.hpp>
    -
    -
    -struct hash<wchar_t> {
    -  std::size_t operator()(wchar_t) const;
    -};
    -
    -

    Description

    -
    std::size_t operator()(wchar_t val) const;
    -
    ---- - - - - - - - - - - -

    Returns:

    -

    Unspecified in TR1, except that equal arguments yield the same result.

    -

    hash_value(val) in Boost.

    -

    Throws:

    Doesn't throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/heap/skew_heap.html b/doc/html/boost/heap/skew_heap.html index c763e90eaf..626f07a471 100644 --- a/doc/html/boost/heap/skew_heap.html +++ b/doc/html/boost/heap/skew_heap.html @@ -8,7 +8,7 @@ - + @@ -51,8 +51,14 @@ typedefmpl::if_c<is_mutable,typenameimplementation_defined::handle_type,void*>::typehandle_type;// member classes/structs/unions - - structimplementation_defined{ + template<typename T,typename A0 =boost::parameter::void_, + typename A1 =boost::parameter::void_, + typename A2 =boost::parameter::void_, + typename A3 =boost::parameter::void_, + typename A4 =boost::parameter::void_, + typename A5 =boost::parameter::void_, + typename A6 =boost::parameter::void_> + structimplementation_defined{// typestypedefTvalue_type;typedefbase_maker::compare_argumentvalue_compare; @@ -69,49 +75,87 @@ typedefunspecifiedreference;typedefunspecifiedhandle_type;}; + template<typename T,typename A0 =boost::parameter::void_, + typename A1 =boost::parameter::void_, + typename A2 =boost::parameter::void_, + typename A3 =boost::parameter::void_, + typename A4 =boost::parameter::void_, + typename A5 =boost::parameter::void_, + typename A6 =boost::parameter::void_> + structpush_handle{ + + // public static functions + statichandle_typepush(skew_heap*,const_reference); + template<class... Args> + statichandle_typeemplace(skew_heap*,Args&&...); + }; + template<typename T,typename A0 =boost::parameter::void_, + typename A1 =boost::parameter::void_, + typename A2 =boost::parameter::void_, + typename A3 =boost::parameter::void_, + typename A4 =boost::parameter::void_, + typename A5 =boost::parameter::void_, + typename A6 =boost::parameter::void_> + structpush_void{ + + // public static functions + staticvoidpush(skew_heap*,const_reference); + template<class... Args>staticvoidemplace(skew_heap*,Args&&...); + };// construct/copy/destruct - explicitskew_heap(value_compareconst&=value_compare()); - skew_heap(skew_heapconst&); - skew_heap(skew_heap&&); - skew_heap&operator=(skew_heapconst&); - skew_heap&operator=(skew_heap&&); - ~skew_heap(void); + explicitskew_heap(value_compareconst&=value_compare()); + skew_heap(skew_heapconst&); + skew_heap(skew_heap&&); + skew_heap&operator=(skew_heapconst&); + skew_heap&operator=(skew_heap&&); + ~skew_heap(void); - // public member functions - mpl::if_c<is_mutable,handle_type,void>::typepush(value_typeconst&); + // public member functions + mpl::if_c<is_mutable,handle_type,void>::typepush(value_typeconst&);template<typename... Args> - mpl::if_c<is_mutable,handle_type,void>::typeemplace(Args&&...); - boolempty(void)const; - size_typesize(void)const; - size_typemax_size(void)const; - voidclear(void); - allocator_typeget_allocator(void)const; - voidswap(skew_heap&); - const_referencetop(void)const; - voidpop(void); - iteratorbegin(void)const; - iteratorend(void)const; - ordered_iteratorordered_begin(void)const; - ordered_iteratorordered_end(void)const; - voidmerge(skew_heap&); - value_compareconst&value_comp(void)const; - template<typename HeapType>booloperator<(HeapTypeconst&)const; - template<typename HeapType>booloperator>(HeapTypeconst&)const; - template<typename HeapType>booloperator>=(HeapTypeconst&)const; - template<typename HeapType>booloperator<=(HeapTypeconst&)const; - template<typename HeapType>booloperator==(HeapTypeconst&)const; - template<typename HeapType>booloperator!=(HeapTypeconst&)const; - voiderase(handle_type); - voidupdate(handle_type,const_reference); - voidupdate(handle_type); - voidincrease(handle_type,const_reference); - voidincrease(handle_type); - voiddecrease(handle_type,const_reference); - voiddecrease(handle_type); + mpl::if_c<is_mutable,handle_type,void>::typeemplace(Args&&...); + boolempty(void)const; + size_typesize(void)const; + size_typemax_size(void)const; + voidclear(void); + allocator_typeget_allocator(void)const; + voidswap(skew_heap&); + const_referencetop(void)const; + voidpop(void); + iteratorbegin(void)const; + iteratorend(void)const; + ordered_iteratorordered_begin(void)const; + ordered_iteratorordered_end(void)const; + voidmerge(skew_heap&); + value_compareconst&value_comp(void)const; + template<typename HeapType>booloperator<(HeapTypeconst&)const; + template<typename HeapType>booloperator>(HeapTypeconst&)const; + template<typename HeapType>booloperator>=(HeapTypeconst&)const; + template<typename HeapType>booloperator<=(HeapTypeconst&)const; + template<typename HeapType>booloperator==(HeapTypeconst&)const; + template<typename HeapType>booloperator!=(HeapTypeconst&)const; + voiderase(handle_type); + voidupdate(handle_type,const_reference); + voidupdate(handle_type); + voidincrease(handle_type,const_reference); + voidincrease(handle_type); + voiddecrease(handle_type,const_reference); + voiddecrease(handle_type); - // public static functions - statichandle_types_handle_from_iterator(iteratorconst&); + // public static functions + statichandle_types_handle_from_iterator(iteratorconst&); + + // private member functions + node_pointerpush_internal(const_reference); + template<class... Args>node_pointeremplace_internal(Args&&...); + voidunlink_node(node_pointer); + voidclone_tree(skew_heapconst&); + voidmerge_node(node_pointer); + node_pointermerge_nodes(node_pointer,node_pointer,node_pointer); + node_pointermerge_children(node_pointer); + node_pointermerge_nodes_recursive(node_pointer,node_pointer,node_pointer); + voidsanity_check(void);// public data membersstaticconstboolconstant_time_size; @@ -154,181 +198,181 @@ construct/copy/destruct
    1. -
      explicit skew_heap(value_compare const & cmp = value_compare());
      +
      explicit skew_heap(value_compare const & cmp = value_compare());

      Effects: constructs an empty priority queue.

      Complexity: Constant.

    2. -
      skew_heap(skew_heap const & rhs);
      +
      skew_heap(skew_heap const & rhs);

      Effects: copy-constructs priority queue from rhs.

      Complexity: Linear.

    3. -
      skew_heap(skew_heap && rhs);
      +
      skew_heap(skew_heap && rhs);

      Effects: C++11-style move constructor.

      Complexity: Constant.

      Note: Only available, if BOOST_NO_CXX11_RVALUE_REFERENCES is not defined

    4. -
      skew_heap & operator=(skew_heap const & rhs);
      +
      skew_heap & operator=(skew_heap const & rhs);

      Effects: Assigns priority queue from rhs.

      Complexity: Linear.

    5. -
      skew_heap & operator=(skew_heap && rhs);
      +
      skew_heap & operator=(skew_heap && rhs);

      Effects: C++11-style move assignment.

      Complexity: Constant.

      Note: Only available, if BOOST_NO_CXX11_RVALUE_REFERENCES is not defined

    6. -
    7. ~skew_heap(void);
    8. +
    9. ~skew_heap(void);

    -skew_heap public member functions

    +skew_heap public member functions
    1. -
      mpl::if_c< is_mutable, handle_type, void >::type push(value_type const & v);
      +
      mpl::if_c< is_mutable, handle_type, void >::type push(value_type const & v);

      Effects: Adds a new element to the priority queue.

      Complexity: Logarithmic (amortized).

    2. template<typename... Args> 
      -  mpl::if_c< is_mutable, handle_type, void >::type emplace(Args &&... args);
      + mpl::if_c< is_mutable, handle_type, void >::type emplace(Args &&... args);

      Effects: Adds a new element to the priority queue. The element is directly constructed in-place.

      Complexity: Logarithmic (amortized).

    3. -
      bool empty(void) const;
      +
      bool empty(void) const;

      Effects: Returns true, if the priority queue contains no elements.

      Complexity: Constant.

    4. -
      size_type size(void) const;
      +
      size_type size(void) const;

      Effects: Returns the number of elements contained in the priority queue.

      Complexity: Constant, if configured with constant_time_size<true>, otherwise linear.

    5. -
      size_type max_size(void) const;
      +
      size_type max_size(void) const;

      Effects: Returns the maximum number of elements the priority queue can contain.

      Complexity: Constant.

    6. -
      void clear(void);
      +
      void clear(void);

      Effects: Removes all elements from the priority queue.

      Complexity: Linear.

    7. -
      allocator_type get_allocator(void) const;
      +
      allocator_type get_allocator(void) const;

      Effects: Returns allocator.

      Complexity: Constant.

    8. -
      void swap(skew_heap & rhs);
      +
      void swap(skew_heap & rhs);

      Effects: Swaps two priority queues.

      Complexity: Constant.

    9. -
      const_reference top(void) const;
      +
      const_reference top(void) const;

      Effects: Returns a const_reference to the maximum element.

      Complexity: Constant.

    10. -
      void pop(void);
      +
      void pop(void);

      Effects: Removes the top element from the priority queue.

      Complexity: Logarithmic (amortized).

    11. -
      iterator begin(void) const;
      +
      iterator begin(void) const;

      Effects: Returns an iterator to the first element contained in the priority queue.

      Complexity: Constant.

    12. -
      iterator end(void) const;
      +
      iterator end(void) const;

      Effects: Returns an iterator to the end of the priority queue.

      Complexity: Constant.

    13. -
      ordered_iterator ordered_begin(void) const;
      +
      ordered_iterator ordered_begin(void) const;

      Effects: Returns an ordered iterator to the first element contained in the priority queue.

      Note: Ordered iterators traverse the priority queue in heap order.

    14. -
      ordered_iterator ordered_end(void) const;
      +
      ordered_iterator ordered_end(void) const;

      Effects: Returns an ordered iterator to the first element contained in the priority queue.

      Note: Ordered iterators traverse the priority queue in heap order.

    15. -
      void merge(skew_heap & rhs);
      +
      void merge(skew_heap & rhs);

      Effects: Merge all elements from rhs into this

      Complexity: Logarithmic (amortized).

    16. -
      value_compare const & value_comp(void) const;
      +
      value_compare const & value_comp(void) const;

      Effect: Returns the value_compare object used by the priority queue

    17. -
      template<typename HeapType> bool operator<(HeapType const & rhs) const;
      +
      template<typename HeapType> bool operator<(HeapType const & rhs) const;

      Returns: Element-wise comparison of heap data structures

      Requirement: the value_compare object of both heaps must match.

    18. -
      template<typename HeapType> bool operator>(HeapType const & rhs) const;
      +
      template<typename HeapType> bool operator>(HeapType const & rhs) const;

      Returns: Element-wise comparison of heap data structures

      Requirement: the value_compare object of both heaps must match.

    19. -
      template<typename HeapType> bool operator>=(HeapType const & rhs) const;
      +
      template<typename HeapType> bool operator>=(HeapType const & rhs) const;

      Returns: Element-wise comparison of heap data structures

      Requirement: the value_compare object of both heaps must match.

    20. -
      template<typename HeapType> bool operator<=(HeapType const & rhs) const;
      +
      template<typename HeapType> bool operator<=(HeapType const & rhs) const;

      Returns: Element-wise comparison of heap data structures

      Requirement: the value_compare object of both heaps must match.

    21. -
      template<typename HeapType> bool operator==(HeapType const & rhs) const;
      Equivalent comparison Returns: True, if both heap data structures are equivalent.

      Requirement: the value_compare object of both heaps must match.

      +
      template<typename HeapType> bool operator==(HeapType const & rhs) const;
      Equivalent comparison Returns: True, if both heap data structures are equivalent.

      Requirement: the value_compare object of both heaps must match.

    22. -
      template<typename HeapType> bool operator!=(HeapType const & rhs) const;
      Equivalent comparison Returns: True, if both heap data structures are not equivalent.

      Requirement: the value_compare object of both heaps must match.

      +
      template<typename HeapType> bool operator!=(HeapType const & rhs) const;
      Equivalent comparison Returns: True, if both heap data structures are not equivalent.

      Requirement: the value_compare object of both heaps must match.

    23. -
      void erase(handle_type object);
      +
      void erase(handle_type object);

      Effects: Removes the element handled by handle from the priority_queue.

      Complexity: Logarithmic (amortized).

    24. -
      void update(handle_type handle, const_reference v);
      +
      void update(handle_type handle, const_reference v);

      Effects: Assigns v to the element handled by handle & updates the priority queue.

      Complexity: Logarithmic (amortized).

    25. -
      void update(handle_type handle);
      +
      void update(handle_type handle);

      Effects: Updates the heap after the element handled by handle has been changed.

      Complexity: Logarithmic (amortized).

      Note: If this is not called, after a handle has been updated, the behavior of the data structure is undefined!

    26. -
      void increase(handle_type handle, const_reference v);
      +
      void increase(handle_type handle, const_reference v);

      Effects: Assigns v to the element handled by handle & updates the priority queue.

      Complexity: Logarithmic (amortized).

      Note: The new value is expected to be greater than the current one

    27. -
      void increase(handle_type handle);
      +
      void increase(handle_type handle);

      Effects: Updates the heap after the element handled by handle has been changed.

      Complexity: Logarithmic (amortized).

      Note: If this is not called, after a handle has been updated, the behavior of the data structure is undefined!

    28. -
      void decrease(handle_type handle, const_reference v);
      +
      void decrease(handle_type handle, const_reference v);

      Effects: Assigns v to the element handled by handle & updates the priority queue.

      Complexity: Logarithmic (amortized).

      Note: The new value is expected to be less than the current one

    29. -
      void decrease(handle_type handle);
      +
      void decrease(handle_type handle);

      Effects: Updates the heap after the element handled by handle has been changed.

      Complexity: Logarithmic (amortized).

      Note: The new value is expected to be less than the current one. If this is not called, after a handle has been updated, the behavior of the data structure is undefined!

      @@ -337,14 +381,32 @@

    -skew_heap public static functions

    +skew_heap public static functions
    1. -
      static handle_type s_handle_from_iterator(iterator const & it);
      +
      static handle_type s_handle_from_iterator(iterator const & it);

      Effects: Casts an iterator to a node handle.

      Complexity: Constant.

      Requirement: data structure must be configured as mutable

    +
    +

    +skew_heap private member functions

    +
      +
    1. node_pointer push_internal(const_reference v);
    2. +
    3. template<class... Args> node_pointer emplace_internal(Args &&... args);
    4. +
    5. void unlink_node(node_pointer node);
    6. +
    7. void clone_tree(skew_heap const & rhs);
    8. +
    9. void merge_node(node_pointer other);
    10. +
    11. node_pointer 
      +merge_nodes(node_pointer node1, node_pointer node2, node_pointer new_parent);
    12. +
    13. node_pointer merge_children(node_pointer node);
    14. +
    15. node_pointer 
      +merge_nodes_recursive(node_pointer node1, node_pointer node2, 
      +                      node_pointer new_parent);
    16. +
    17. void sanity_check(void);
    18. +
    +
    diff --git a/doc/html/boost/heap/skew_heap/implementation_defined.html b/doc/html/boost/heap/skew_heap/implementation_defined.html index 048b196fcd..54aa54cc76 100644 --- a/doc/html/boost/heap/skew_heap/implementation_defined.html +++ b/doc/html/boost/heap/skew_heap/implementation_defined.html @@ -2,13 +2,13 @@ -Struct implementation_defined +Struct template implementation_defined - +
    @@ -21,20 +21,26 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Struct implementation_defined

    +

    Struct template implementation_defined

    boost::heap::skew_heap::implementation_defined

    Synopsis

    // In header: <boost/heap/skew_heap.hpp>
     
     
    -
    -struct implementation_defined {
    +template<typename T, typename A0 = boost::parameter::void_, 
    +         typename A1 = boost::parameter::void_, 
    +         typename A2 = boost::parameter::void_, 
    +         typename A3 = boost::parameter::void_, 
    +         typename A4 = boost::parameter::void_, 
    +         typename A5 = boost::parameter::void_, 
    +         typename A6 = boost::parameter::void_> 
    +struct implementation_defined {
       // types
       typedef T                               value_type;         
       typedef base_maker::compare_argument    value_compare;      
    @@ -62,7 +68,7 @@
     
     
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/heap/skew_heap/push_handle.html b/doc/html/boost/heap/skew_heap/push_handle.html new file mode 100644 index 0000000000..78482c9919 --- /dev/null +++ b/doc/html/boost/heap/skew_heap/push_handle.html @@ -0,0 +1,75 @@ + + + + +Struct template push_handle + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct template push_handle

    +

    boost::heap::skew_heap::push_handle

    +
    +

    Synopsis

    +
    // In header: <boost/heap/skew_heap.hpp>
    +
    +
    +template<typename T, typename A0 = boost::parameter::void_, 
    +         typename A1 = boost::parameter::void_, 
    +         typename A2 = boost::parameter::void_, 
    +         typename A3 = boost::parameter::void_, 
    +         typename A4 = boost::parameter::void_, 
    +         typename A5 = boost::parameter::void_, 
    +         typename A6 = boost::parameter::void_> 
    +struct push_handle {
    +
    +  // public static functions
    +  static handle_type push(skew_heap *, const_reference);
    +  template<class... Args> static handle_type emplace(skew_heap *, Args &&...);
    +};
    +
    +

    Description

    +
    +

    +push_handle public static functions

    +
      +
    1. static handle_type push(skew_heap * self, const_reference v);
    2. +
    3. template<class... Args> 
      +  static handle_type emplace(skew_heap * self, Args &&... args);
    4. +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/heap/skew_heap/push_void.html b/doc/html/boost/heap/skew_heap/push_void.html new file mode 100644 index 0000000000..7f1c32327a --- /dev/null +++ b/doc/html/boost/heap/skew_heap/push_void.html @@ -0,0 +1,74 @@ + + + + +Struct template push_void + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct template push_void

    +

    boost::heap::skew_heap::push_void

    +
    +

    Synopsis

    +
    // In header: <boost/heap/skew_heap.hpp>
    +
    +
    +template<typename T, typename A0 = boost::parameter::void_, 
    +         typename A1 = boost::parameter::void_, 
    +         typename A2 = boost::parameter::void_, 
    +         typename A3 = boost::parameter::void_, 
    +         typename A4 = boost::parameter::void_, 
    +         typename A5 = boost::parameter::void_, 
    +         typename A6 = boost::parameter::void_> 
    +struct push_void {
    +
    +  // public static functions
    +  static void push(skew_heap *, const_reference);
    +  template<class... Args> static void emplace(skew_heap *, Args &&...);
    +};
    +
    +

    Description

    +
    +

    +push_void public static functions

    +
      +
    1. static void push(skew_heap * self, const_reference v);
    2. +
    3. template<class... Args> static void emplace(skew_heap * self, Args &&... args);
    4. +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/adaptive_pool.html b/doc/html/boost/interprocess/adaptive_pool.html index ac82cb755d..2b9df9c1b5 100644 --- a/doc/html/boost/interprocess/adaptive_pool.html +++ b/doc/html/boost/interprocess/adaptive_pool.html @@ -55,38 +55,38 @@ }; // construct/copy/destruct - adaptive_pool(segment_manager *); - adaptive_pool(const adaptive_pool &); + adaptive_pool(segment_manager *); + adaptive_pool(const adaptive_pool &); template<typename T2> - adaptive_pool(const adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &); + adaptive_pool(const adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &); template<typename T2, typename SegmentManager2, std::size_t N2, std::size_t F2, unsigned char OP2> adaptive_pool & - operator=(const adaptive_pool< T2, SegmentManager2, N2, F2, OP2 > &); - ~adaptive_pool(); + operator=(const adaptive_pool< T2, SegmentManager2, N2, F2, OP2 > &); + ~adaptive_pool(); - // public member functions - void * get_node_pool() const; - segment_manager * get_segment_manager() const; - size_type max_size() const; - pointer allocate(size_type, cvoid_pointer = 0); - void deallocate(const pointer &, size_type); - void deallocate_free_blocks(); - pointer address(reference) const; - const_pointer address(const_reference) const; - size_type size(const pointer &) const; - pointer allocation_command(boost::interprocess::allocation_type, size_type, + // public member functions + void * get_node_pool() const; + segment_manager * get_segment_manager() const; + size_type max_size() const; + pointer allocate(size_type, cvoid_pointer = 0); + void deallocate(const pointer &, size_type); + void deallocate_free_blocks(); + pointer address(reference) const; + const_pointer address(const_reference) const; + size_type size(const pointer &) const; + pointer allocation_command(boost::interprocess::allocation_type, size_type, size_type &, pointer &); - void allocate_many(size_type, size_type, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &); - pointer allocate_one(); - void allocate_individual(size_type, multiallocation_chain &); - void deallocate_one(const pointer &); - void deallocate_individual(multiallocation_chain &); + void allocate_many(size_type, size_type, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &); + pointer allocate_one(); + void allocate_individual(size_type, multiallocation_chain &); + void deallocate_one(const pointer &); + void deallocate_individual(multiallocation_chain &); - // friend functions - friend void swap(self_t &, self_t &); + // friend functions + friend void swap(self_t &, self_t &); };

    Description

    @@ -100,113 +100,113 @@ construct/copy/destruct
    1. -
      adaptive_pool(segment_manager * segment_mngr);
      +
      adaptive_pool(segment_manager * segment_mngr);

      Not assignable from other adaptive_pool Constructor from a segment manager. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    2. -
      adaptive_pool(const adaptive_pool & other);
      +
      adaptive_pool(const adaptive_pool & other);

      Copy constructor from other adaptive_pool. Increments the reference count of the associated node pool. Never throws

    3. template<typename T2> 
      -  adaptive_pool(const adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > & other);
      + adaptive_pool(const adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > & other);

    Copy constructor from related adaptive_pool. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

  • template<typename T2, typename SegmentManager2, std::size_t N2, 
              std::size_t F2, unsigned char OP2> 
       adaptive_pool & 
    -  operator=(const adaptive_pool< T2, SegmentManager2, N2, F2, OP2 > &);
    + operator=(const adaptive_pool< T2, SegmentManager2, N2, F2, OP2 > &);

    Not assignable from related adaptive_pool

  • -
    ~adaptive_pool();
    +
    ~adaptive_pool();

    Destructor, removes node_pool_t from memory if its reference count reaches to zero. Never throws

  • -adaptive_pool public member functions

    +adaptive_pool public member functions
    1. -
      void * get_node_pool() const;
      +
      void * get_node_pool() const;

      Returns a pointer to the node pool. Never throws

    2. -
      segment_manager * get_segment_manager() const;
      +
      segment_manager * get_segment_manager() const;

      Returns the segment manager. Never throws

    3. -
      size_type max_size() const;
      +
      size_type max_size() const;

      Returns the number of elements that could be allocated. Never throws

    4. -
      pointer allocate(size_type count, cvoid_pointer hint = 0);
      +
      pointer allocate(size_type count, cvoid_pointer hint = 0);

      Allocate memory for an array of count elements. Throws boost::interprocess::bad_alloc if there is no enough memory

    5. -
      void deallocate(const pointer & ptr, size_type count);
      +
      void deallocate(const pointer & ptr, size_type count);

      Deallocate allocated memory. Never throws

    6. -
      void deallocate_free_blocks();
      +
      void deallocate_free_blocks();

      Deallocates all free blocks of the pool

    7. -
      pointer address(reference value) const;
      +
      pointer address(reference value) const;

      Returns address of mutable object. Never throws

    8. -
      const_pointer address(const_reference value) const;
      +
      const_pointer address(const_reference value) const;

      Returns address of non mutable object. Never throws

    9. -
      size_type size(const pointer & p) const;
      +
      size_type size(const pointer & p) const;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.

    10. -
    11. pointer allocation_command(boost::interprocess::allocation_type command, 
      +
    12. pointer allocation_command(boost::interprocess::allocation_type command, 
                                  size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);
    13. -
      void allocate_many(size_type elem_size, size_type num_elements, 
      +
      void allocate_many(size_type elem_size, size_type num_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    14. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated

    15. -
      void deallocate_many(multiallocation_chain & chain);
      +
      void deallocate_many(multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    16. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc if there is no enough memory

    17. -
      void allocate_individual(size_type num_elements, 
      +
      void allocate_individual(size_type num_elements, 
                                multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    18. -
      void deallocate_one(const pointer & p);
      +
      void deallocate_one(const pointer & p);

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

    19. -
      void deallocate_individual(multiallocation_chain & chain);
      +
      void deallocate_individual(multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    -adaptive_pool friend functions

    +adaptive_pool friend functions
    1. -
      friend void swap(self_t & alloc1, self_t & alloc2);
      +
      friend void swap(self_t & alloc1, self_t & alloc2);

      Swaps allocators. Does not throw. If each allocator is placed in a different memory segment, the result is undefined.

    diff --git a/doc/html/boost/interprocess/adaptive_pool/rebind.html b/doc/html/boost/interprocess/adaptive_pool/rebind.html index 3347ee6116..4ab0cecd57 100644 --- a/doc/html/boost/interprocess/adaptive_pool/rebind.html +++ b/doc/html/boost/interprocess/adaptive_pool/rebind.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +53,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/allocator.html b/doc/html/boost/interprocess/allocator.html index 56a0fd3a79..658bca8ae7 100644 --- a/doc/html/boost/interprocess/allocator.html +++ b/doc/html/boost/interprocess/allocator.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -55,32 +55,32 @@ }; // construct/copy/destruct - allocator(segment_manager *); - allocator(const allocator &); - template<typename T2> allocator(const allocator< T2, SegmentManager > &); + allocator(segment_manager *); + allocator(const allocator &); + template<typename T2> allocator(const allocator< T2, SegmentManager > &); - // public member functions - segment_manager * get_segment_manager() const; - pointer allocate(size_type, cvoid_ptr = 0); - void deallocate(const pointer &, size_type); - size_type max_size() const; - size_type size(const pointer &) const; - pointer allocation_command(boost::interprocess::allocation_type, size_type, + // public member functions + segment_manager * get_segment_manager() const; + pointer allocate(size_type, cvoid_ptr = 0); + void deallocate(const pointer &, size_type); + size_type max_size() const; + size_type size(const pointer &) const; + pointer allocation_command(boost::interprocess::allocation_type, size_type, size_type &, pointer &); - void allocate_many(size_type, size_type, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &); - pointer allocate_one(); - void allocate_individual(size_type, multiallocation_chain &); - void deallocate_one(const pointer &); - void deallocate_individual(multiallocation_chain &); - pointer address(reference) const; - const_pointer address(const_reference) const; - template<typename P> void construct(const pointer &, P &&); - void destroy(const pointer &); + void allocate_many(size_type, size_type, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &); + pointer allocate_one(); + void allocate_individual(size_type, multiallocation_chain &); + void deallocate_one(const pointer &); + void deallocate_individual(multiallocation_chain &); + pointer address(reference) const; + const_pointer address(const_reference) const; + template<typename P> void construct(const pointer &, P &&); + void destroy(const pointer &); - // friend functions - friend void swap(self_t &, self_t &); + // friend functions + friend void swap(self_t &, self_t &); };

    Description

    @@ -92,101 +92,101 @@ construct/copy/destruct
    1. -
      allocator(segment_manager * segment_mngr);
      +
      allocator(segment_manager * segment_mngr);

      Constructor from the segment manager. Never throws

    2. -
      allocator(const allocator & other);
      +
      allocator(const allocator & other);

      Constructor from other allocator. Never throws

    3. -
      template<typename T2> allocator(const allocator< T2, SegmentManager > & other);
      +
      template<typename T2> allocator(const allocator< T2, SegmentManager > & other);

      Constructor from related allocator. Never throws

    -allocator public member functions

    +allocator public member functions
    1. -
      segment_manager * get_segment_manager() const;
      +
      segment_manager * get_segment_manager() const;

      Returns the segment manager. Never throws

    2. -
      pointer allocate(size_type count, cvoid_ptr hint = 0);
      +
      pointer allocate(size_type count, cvoid_ptr hint = 0);

      Allocates memory for an array of count elements. Throws boost::interprocess::bad_alloc if there is no enough memory

    3. -
      void deallocate(const pointer & ptr, size_type);
      +
      void deallocate(const pointer & ptr, size_type);

      Deallocates memory previously allocated. Never throws

    4. -
      size_type max_size() const;
      +
      size_type max_size() const;

      Returns the number of elements that could be allocated. Never throws

    5. -
      size_type size(const pointer & p) const;
      +
      size_type size(const pointer & p) const;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.

    6. -
    7. pointer allocation_command(boost::interprocess::allocation_type command, 
      +
    8. pointer allocation_command(boost::interprocess::allocation_type command, 
                                  size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);
    9. -
      void allocate_many(size_type elem_size, size_type num_elements, 
      +
      void allocate_many(size_type elem_size, size_type num_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    10. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated

    11. -
      void deallocate_many(multiallocation_chain & chain);
      +
      void deallocate_many(multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    12. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc if there is no enough memory

    13. -
      void allocate_individual(size_type num_elements, 
      +
      void allocate_individual(size_type num_elements, 
                                multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    14. -
      void deallocate_one(const pointer & p);
      +
      void deallocate_one(const pointer & p);

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

    15. -
      void deallocate_individual(multiallocation_chain & chain);
      +
      void deallocate_individual(multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    16. -
      pointer address(reference value) const;
      +
      pointer address(reference value) const;

      Returns address of mutable object. Never throws

    17. -
      const_pointer address(const_reference value) const;
      +
      const_pointer address(const_reference value) const;

      Returns address of non mutable object. Never throws

    18. -
      template<typename P> void construct(const pointer & ptr, P && p);
      +
      template<typename P> void construct(const pointer & ptr, P && p);

      Constructs an object Throws if T's constructor throws For backwards compatibility with libraries using C++03 allocators

    19. -
      void destroy(const pointer & ptr);
      +
      void destroy(const pointer & ptr);

      Destroys object. Throws if object's destructor throws

    -allocator friend functions

    +allocator friend functions
    1. -
      friend void swap(self_t & alloc1, self_t & alloc2);
      +
      friend void swap(self_t & alloc1, self_t & alloc2);

      Swap segment manager. Does not throw. If each allocator is placed in different memory segments, the result is undefined.

    @@ -202,7 +202,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/allocator/rebind.html b/doc/html/boost/interprocess/allocator/rebind.html index ee77ecbfca..cb72cff377 100644 --- a/doc/html/boost/interprocess/allocator/rebind.html +++ b/doc/html/boost/interprocess/allocator/rebind.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +53,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/anonymous_shared_memory.html b/doc/html/boost/interprocess/anonymous_shared_memory.html index d87f5d2457..8aecc75858 100644 --- a/doc/html/boost/interprocess/anonymous_shared_memory.html +++ b/doc/html/boost/interprocess/anonymous_shared_memory.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -49,7 +49,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/bad_alloc.html b/doc/html/boost/interprocess/bad_alloc.html index 169083ab4e..a648959e42 100644 --- a/doc/html/boost/interprocess/bad_alloc.html +++ b/doc/html/boost/interprocess/bad_alloc.html @@ -36,10 +36,10 @@ class bad_alloc : public boost::interprocess::interprocess_exception { public: // construct/copy/destruct - bad_alloc(); + bad_alloc(); - // public member functions - virtual const char * what() const; + // public member functions + virtual const char * what() const; };

    Description

    @@ -49,12 +49,12 @@ bad_alloc public construct/copy/destruct -
    1. bad_alloc();
    +
    1. bad_alloc();

    -bad_alloc public member functions

    -
    1. virtual const char * what() const;
    +bad_alloc public member functions +
    1. virtual const char * what() const;
    diff --git a/doc/html/boost/interprocess/basic_bufferbuf.html b/doc/html/boost/interprocess/basic_bufferbuf.html index 46db4b95fa..bf11fdf9b1 100644 --- a/doc/html/boost/interprocess/basic_bufferbuf.html +++ b/doc/html/boost/interprocess/basic_bufferbuf.html @@ -44,14 +44,14 @@ typedef std::basic_streambuf< char_type, traits_type > basic_streambuf_t; // construct/copy/destruct - explicit basic_bufferbuf(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); - explicit basic_bufferbuf(CharT *, std::size_t, + explicit basic_bufferbuf(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); + explicit basic_bufferbuf(CharT *, std::size_t, std::ios_base::openmode = std::ios_base::in|std::ios_base::out); - ~basic_bufferbuf(); + ~basic_bufferbuf(); - // public member functions - std::pair< CharT *, std::size_t > buffer() const; - void buffer(CharT *, std::size_t); + // public member functions + std::pair< CharT *, std::size_t > buffer() const; + void buffer(CharT *, std::size_t); };

    Description

    @@ -63,27 +63,27 @@ construct/copy/destruct
    1. -
      explicit basic_bufferbuf(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
      +
      explicit basic_bufferbuf(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

      Constructor. Does not throw.

    2. -
      explicit basic_bufferbuf(CharT * buf, std::size_t length, 
      +
      explicit basic_bufferbuf(CharT * buf, std::size_t length, 
                                std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

      Constructor. Assigns formatting buffer. Does not throw.

    3. -
    4. ~basic_bufferbuf();
    5. +
    6. ~basic_bufferbuf();

    -basic_bufferbuf public member functions

    +basic_bufferbuf public member functions
    1. -
      std::pair< CharT *, std::size_t > buffer() const;
      +
      std::pair< CharT *, std::size_t > buffer() const;

      Returns the pointer and size of the internal buffer. Does not throw.

    2. -
      void buffer(CharT * buf, std::size_t length);
      +
      void buffer(CharT * buf, std::size_t length);

      Sets the underlying buffer to a new value Does not throw.

    diff --git a/doc/html/boost/interprocess/basic_bufferstream.html b/doc/html/boost/interprocess/basic_bufferstream.html index 678f06d32e..c1660fe09a 100644 --- a/doc/html/boost/interprocess/basic_bufferstream.html +++ b/doc/html/boost/interprocess/basic_bufferstream.html @@ -43,15 +43,15 @@ typedef std::basic_ios< char_type, CharTraits >::traits_type traits_type; // construct/copy/destruct - basic_bufferstream(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); - basic_bufferstream(CharT *, std::size_t, + basic_bufferstream(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); + basic_bufferstream(CharT *, std::size_t, std::ios_base::openmode = std::ios_base::in|std::ios_base::out); - ~basic_bufferstream(); + ~basic_bufferstream(); - // public member functions - basic_bufferbuf< CharT, CharTraits > * rdbuf() const; - std::pair< CharT *, std::size_t > buffer() const; - void buffer(CharT *, std::size_t); + // public member functions + basic_bufferbuf< CharT, CharTraits > * rdbuf() const; + std::pair< CharT *, std::size_t > buffer() const; + void buffer(CharT *, std::size_t); };

    Description

    @@ -63,31 +63,31 @@ construct/copy/destruct
    1. -
      basic_bufferstream(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
      +
      basic_bufferstream(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

      Constructor. Does not throw.

    2. -
      basic_bufferstream(CharT * buf, std::size_t length, 
      +
      basic_bufferstream(CharT * buf, std::size_t length, 
                          std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

      Constructor. Assigns formatting buffer. Does not throw.

    3. -
    4. ~basic_bufferstream();
    5. +
    6. ~basic_bufferstream();

    -basic_bufferstream public member functions

    +basic_bufferstream public member functions
    1. -
      basic_bufferbuf< CharT, CharTraits > * rdbuf() const;
      +
      basic_bufferbuf< CharT, CharTraits > * rdbuf() const;

      Returns the address of the stored stream buffer.

    2. -
      std::pair< CharT *, std::size_t > buffer() const;
      +
      std::pair< CharT *, std::size_t > buffer() const;

      Returns the pointer and size of the internal buffer. Does not throw.

    3. -
      void buffer(CharT * buf, std::size_t length);
      +
      void buffer(CharT * buf, std::size_t length);

      Sets the underlying buffer to a new value. Resets stream position. Does not throw.

    diff --git a/doc/html/boost/interprocess/basic_ibufferstream.html b/doc/html/boost/interprocess/basic_ibufferstream.html index bd4cd83da7..d0540d4187 100644 --- a/doc/html/boost/interprocess/basic_ibufferstream.html +++ b/doc/html/boost/interprocess/basic_ibufferstream.html @@ -43,15 +43,15 @@ typedef std::basic_ios< char_type, CharTraits >::traits_type traits_type; // construct/copy/destruct - basic_ibufferstream(std::ios_base::openmode = std::ios_base::in); - basic_ibufferstream(const CharT *, std::size_t, + basic_ibufferstream(std::ios_base::openmode = std::ios_base::in); + basic_ibufferstream(const CharT *, std::size_t, std::ios_base::openmode = std::ios_base::in); - ~basic_ibufferstream(); + ~basic_ibufferstream(); - // public member functions - basic_bufferbuf< CharT, CharTraits > * rdbuf() const; - std::pair< const CharT *, std::size_t > buffer() const; - void buffer(const CharT *, std::size_t); + // public member functions + basic_bufferbuf< CharT, CharTraits > * rdbuf() const; + std::pair< const CharT *, std::size_t > buffer() const; + void buffer(const CharT *, std::size_t); };

    Description

    @@ -63,31 +63,31 @@ construct/copy/destruct
    1. -
      basic_ibufferstream(std::ios_base::openmode mode = std::ios_base::in);
      +
      basic_ibufferstream(std::ios_base::openmode mode = std::ios_base::in);

      Constructor. Does not throw.

    2. -
      basic_ibufferstream(const CharT * buf, std::size_t length, 
      +
      basic_ibufferstream(const CharT * buf, std::size_t length, 
                           std::ios_base::openmode mode = std::ios_base::in);

      Constructor. Assigns formatting buffer. Does not throw.

    3. -
    4. ~basic_ibufferstream();
    5. +
    6. ~basic_ibufferstream();

    -basic_ibufferstream public member functions

    +basic_ibufferstream public member functions
    1. -
      basic_bufferbuf< CharT, CharTraits > * rdbuf() const;
      +
      basic_bufferbuf< CharT, CharTraits > * rdbuf() const;

      Returns the address of the stored stream buffer.

    2. -
      std::pair< const CharT *, std::size_t > buffer() const;
      +
      std::pair< const CharT *, std::size_t > buffer() const;

      Returns the pointer and size of the internal buffer. Does not throw.

    3. -
      void buffer(const CharT * buf, std::size_t length);
      +
      void buffer(const CharT * buf, std::size_t length);

      Sets the underlying buffer to a new value. Resets stream position. Does not throw.

    diff --git a/doc/html/boost/interprocess/basic_ivectorstream.html b/doc/html/boost/interprocess/basic_ivectorstream.html index ad558a09c9..493310a688 100644 --- a/doc/html/boost/interprocess/basic_ivectorstream.html +++ b/doc/html/boost/interprocess/basic_ivectorstream.html @@ -46,17 +46,17 @@ typedef std::basic_ios< char_type, CharTraits >::traits_type traits_type; // construct/copy/destruct - basic_ivectorstream(std::ios_base::openmode = std::ios_base::in); + basic_ivectorstream(std::ios_base::openmode = std::ios_base::in); template<typename VectorParameter> - basic_ivectorstream(const VectorParameter &, + basic_ivectorstream(const VectorParameter &, std::ios_base::openmode = std::ios_base::in); - // public member functions - basic_vectorbuf< CharVector, CharTraits > * rdbuf() const; - void swap_vector(vector_type &); - const vector_type & vector() const; - void reserve(typename vector_type::size_type); - void clear(); + // public member functions + basic_vectorbuf< CharVector, CharTraits > * rdbuf() const; + void swap_vector(vector_type &); + const vector_type & vector() const; + void reserve(typename vector_type::size_type); + void clear(); };

    Description

    @@ -68,12 +68,12 @@ construct/copy/destruct
    1. -
      basic_ivectorstream(std::ios_base::openmode mode = std::ios_base::in);
      +
      basic_ivectorstream(std::ios_base::openmode mode = std::ios_base::in);

      Constructor. Throws if vector_type default constructor throws.

    2. template<typename VectorParameter> 
      -  basic_ivectorstream(const VectorParameter & param, 
      +  basic_ivectorstream(const VectorParameter & param, 
                             std::ios_base::openmode mode = std::ios_base::in);

      Constructor. Throws if vector_type(const VectorParameter &param) throws.

    3. @@ -81,26 +81,26 @@

    -basic_ivectorstream public member functions

    +basic_ivectorstream public member functions
    1. -
      basic_vectorbuf< CharVector, CharTraits > * rdbuf() const;
      +
      basic_vectorbuf< CharVector, CharTraits > * rdbuf() const;

      Returns the address of the stored stream buffer.

    2. -
      void swap_vector(vector_type & vect);
      +
      void swap_vector(vector_type & vect);

      Swaps the underlying vector with the passed vector. This function resets the read position in the stream. Does not throw.

    3. -
      const vector_type & vector() const;
      +
      const vector_type & vector() const;

      Returns a const reference to the internal vector. Does not throw.

    4. -
      void reserve(typename vector_type::size_type size);
      +
      void reserve(typename vector_type::size_type size);

      Calls reserve() method of the internal vector. Resets the stream to the first position. Throws if the internals vector's reserve throws.

    5. -
      void clear();
      +
      void clear();

      Calls clear() method of the internal vector. Resets the stream to the first position.

    diff --git a/doc/html/boost/interprocess/basic_managed__idp39474400.html b/doc/html/boost/interprocess/basic_managed__idp39474400.html new file mode 100644 index 0000000000..59f61cb1fc --- /dev/null +++ b/doc/html/boost/interprocess/basic_managed__idp39474400.html @@ -0,0 +1,103 @@ + + + + +Class template basic_managed_external_buffer + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Class template basic_managed_external_buffer

    +

    boost::interprocess::basic_managed_external_buffer

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/managed_external_buffer.hpp>
    +
    +template<typename CharType, typename AllocationAlgorithm, 
    +         template< class IndexConfig > class IndexType> 
    +class basic_managed_external_buffer {
    +public:
    +  // types
    +  typedef base_t::size_type size_type;
    +
    +  // construct/copy/destruct
    +  basic_managed_external_buffer();
    +  basic_managed_external_buffer(create_only_t, void *, size_type);
    +  basic_managed_external_buffer(open_only_t, void *, size_type);
    +  basic_managed_external_buffer(basic_managed_external_buffer &&);
    +  basic_managed_external_buffer & operator=(basic_managed_external_buffer &&);
    +
    +  // public member functions
    +  void grow(size_type);
    +  void swap(basic_managed_external_buffer &);
    +};
    +
    +

    Description

    +

    A basic user memory named object creation class. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType>

    +
    +

    +basic_managed_external_buffer + public + construct/copy/destruct

    +
      +
    1. +
      basic_managed_external_buffer();
      +

      Default constructor. Does nothing. Useful in combination with move semantics

      +
    2. +
    3. +
      basic_managed_external_buffer(create_only_t, void * addr, size_type size);
      Creates and places the segment manager. This can throw.
    4. +
    5. +
      basic_managed_external_buffer(open_only_t, void * addr, size_type size);
      Creates and places the segment manager. This can throw.
    6. +
    7. +
      basic_managed_external_buffer(basic_managed_external_buffer && moved);
      Moves the ownership of "moved"'s managed memory to *this. Does not throw.
    8. +
    9. +
      basic_managed_external_buffer & 
      +operator=(basic_managed_external_buffer && moved);
      Moves the ownership of "moved"'s managed memory to *this. Does not throw.
    10. +
    +
    +
    +

    +basic_managed_external_buffer public member functions

    +
      +
    1. void grow(size_type extra_bytes);
    2. +
    3. +
      void swap(basic_managed_external_buffer & other);
      +

      Swaps the ownership of the managed heap memories managed by *this and other. Never throws.

      +
    4. +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/basic_managed__idp39582912.html b/doc/html/boost/interprocess/basic_managed__idp39582912.html new file mode 100644 index 0000000000..994b3ccc55 --- /dev/null +++ b/doc/html/boost/interprocess/basic_managed__idp39582912.html @@ -0,0 +1,156 @@ + + + + +Class template basic_managed_shared_memory + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Class template basic_managed_shared_memory

    +

    boost::interprocess::basic_managed_shared_memory

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/managed_shared_memory.hpp>
    +
    +template<typename CharType, typename AllocationAlgorithm, 
    +         template< class IndexConfig > class IndexType> 
    +class basic_managed_shared_memory {
    +public:
    +  // construct/copy/destruct
    +  basic_managed_shared_memory();
    +  basic_managed_shared_memory(create_only_t, const char *, size_type, 
    +                              const void * = 0, 
    +                              const permissions & = permissions());
    +  basic_managed_shared_memory(open_or_create_t, const char *, size_type, 
    +                              const void * = 0, 
    +                              const permissions & = permissions());
    +  basic_managed_shared_memory(open_copy_on_write_t, const char *, 
    +                              const void * = 0);
    +  basic_managed_shared_memory(open_read_only_t, const char *, 
    +                              const void * = 0);
    +  basic_managed_shared_memory(open_only_t, const char *, const void * = 0);
    +  basic_managed_shared_memory(basic_managed_shared_memory &&);
    +  basic_managed_shared_memory & operator=(basic_managed_shared_memory &&);
    +  ~basic_managed_shared_memory();
    +
    +  // public member functions
    +  void swap(basic_managed_shared_memory &);
    +
    +  // public static functions
    +  static bool grow(const char *, size_type);
    +  static bool shrink_to_fit(const char *);
    +};
    +
    +

    Description

    +

    A basic shared memory named object creation class. Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType>

    +
    +

    +basic_managed_shared_memory + public + construct/copy/destruct

    +
      +
    1. +
      basic_managed_shared_memory();
      +

      Default constructor. Does nothing. Useful in combination with move semantics

      +
    2. +
    3. +
      basic_managed_shared_memory(create_only_t, const char * name, size_type size, 
      +                            const void * addr = 0, 
      +                            const permissions & perm = permissions());
      +

      Creates shared memory and creates and places the segment manager. This can throw.

      +
    4. +
    5. +
      basic_managed_shared_memory(open_or_create_t, const char * name, 
      +                            size_type size, const void * addr = 0, 
      +                            const permissions & perm = permissions());
      +

      Creates shared memory and creates and places the segment manager if segment was not created. If segment was created it connects to the segment. This can throw.

      +
    6. +
    7. +
      basic_managed_shared_memory(open_copy_on_write_t, const char * name, 
      +                            const void * addr = 0);
      +

      Connects to a created shared memory and its segment manager. in copy_on_write mode. This can throw.

      +
    8. +
    9. +
      basic_managed_shared_memory(open_read_only_t, const char * name, 
      +                            const void * addr = 0);
      +

      Connects to a created shared memory and its segment manager. in read-only mode. This can throw.

      +
    10. +
    11. +
      basic_managed_shared_memory(open_only_t, const char * name, 
      +                            const void * addr = 0);
      +

      Connects to a created shared memory and its segment manager. This can throw.

      +
    12. +
    13. +
      basic_managed_shared_memory(basic_managed_shared_memory && moved);
      +

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      +
    14. +
    15. +
      basic_managed_shared_memory & operator=(basic_managed_shared_memory && moved);
      +

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      +
    16. +
    17. +
      ~basic_managed_shared_memory();
      +

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

      +
    18. +
    +
    +
    +

    +basic_managed_shared_memory public member functions

    +
    1. +
      void swap(basic_managed_shared_memory & other);
      +

      Swaps the ownership of the managed shared memories managed by *this and other. Never throws.

      +
    +
    +
    +

    +basic_managed_shared_memory public static functions

    +
      +
    1. +
      static bool grow(const char * shmname, size_type extra_bytes);
      +

      Tries to resize the managed shared memory object so that we have room for more objects.

      +

      This function is not synchronized so no other thread or process should be reading or writing the file

      +
    2. +
    3. +
      static bool shrink_to_fit(const char * shmname);
      +

      Tries to resize the managed shared memory to minimized the size of the file.

      +

      This function is not synchronized so no other thread or process should be reading or writing the file

      +
    4. +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/basic_managed__idp39640656.html b/doc/html/boost/interprocess/basic_managed__idp39640656.html new file mode 100644 index 0000000000..335f455654 --- /dev/null +++ b/doc/html/boost/interprocess/basic_managed__idp39640656.html @@ -0,0 +1,143 @@ + + + + +Class template basic_managed_windows_shared_memory + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Class template basic_managed_windows_shared_memory

    +

    boost::interprocess::basic_managed_windows_shared_memory

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/managed_windows_shared_memory.hpp>
    +
    +template<typename CharType, typename AllocationAlgorithm, 
    +         template< class IndexConfig > class IndexType> 
    +class basic_managed_windows_shared_memory {
    +public:
    +  // types
    +  typedef base_t::size_type size_type;
    +
    +  // construct/copy/destruct
    +  basic_managed_windows_shared_memory();
    +  basic_managed_windows_shared_memory(create_only_t, const char *, size_type, 
    +                                      const void * = 0, 
    +                                      const permissions & = permissions());
    +  basic_managed_windows_shared_memory(open_or_create_t, const char *, 
    +                                      size_type, const void * = 0, 
    +                                      const permissions & = permissions());
    +  basic_managed_windows_shared_memory(open_only_t, const char *, 
    +                                      const void * = 0);
    +  basic_managed_windows_shared_memory(open_copy_on_write_t, const char *, 
    +                                      const void * = 0);
    +  basic_managed_windows_shared_memory(open_read_only_t, const char *, 
    +                                      const void * = 0);
    +  basic_managed_windows_shared_memory(basic_managed_windows_shared_memory &&);
    +  basic_managed_windows_shared_memory & 
    +  operator=(basic_managed_windows_shared_memory &&);
    +  ~basic_managed_windows_shared_memory();
    +
    +  // public member functions
    +  void swap(basic_managed_windows_shared_memory &);
    +};
    +
    +

    Description

    +

    A basic managed windows shared memory creation class. Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType> Unlike basic_managed_shared_memory, it has no kernel persistence and the shared memory is destroyed when all processes destroy all their windows_shared_memory objects and mapped regions for the same shared memory or the processes end/crash.

    +

    Warning: basic_managed_windows_shared_memory and basic_managed_shared_memory can't communicate between them.

    +
    +

    +basic_managed_windows_shared_memory + public + construct/copy/destruct

    +
      +
    1. +
      basic_managed_windows_shared_memory();
      +

      Default constructor. Does nothing. Useful in combination with move semantics

      +
    2. +
    3. +
      basic_managed_windows_shared_memory(create_only_t, const char * name, 
      +                                    size_type size, const void * addr = 0, 
      +                                    const permissions & perm = permissions());
      +

      Creates shared memory and creates and places the segment manager. This can throw.

      +
    4. +
    5. +
      basic_managed_windows_shared_memory(open_or_create_t, const char * name, 
      +                                    size_type size, const void * addr = 0, 
      +                                    const permissions & perm = permissions());
      +

      Creates shared memory and creates and places the segment manager if segment was not created. If segment was created it connects to the segment. This can throw.

      +
    6. +
    7. +
      basic_managed_windows_shared_memory(open_only_t, const char * name, 
      +                                    const void * addr = 0);
      +

      Connects to a created shared memory and its segment manager. This can throw.

      +
    8. +
    9. +
      basic_managed_windows_shared_memory(open_copy_on_write_t, const char * name, 
      +                                    const void * addr = 0);
      +

      Connects to a created shared memory and its segment manager in copy_on_write mode. This can throw.

      +
    10. +
    11. +
      basic_managed_windows_shared_memory(open_read_only_t, const char * name, 
      +                                    const void * addr = 0);
      +

      Connects to a created shared memory and its segment manager in read-only mode. This can throw.

      +
    12. +
    13. +
      basic_managed_windows_shared_memory(basic_managed_windows_shared_memory && moved);
      +

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      +
    14. +
    15. +
      basic_managed_windows_shared_memory & 
      +operator=(basic_managed_windows_shared_memory && moved);
      +

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      +
    16. +
    17. +
      ~basic_managed_windows_shared_memory();
      +

      Destroys *this and indicates that the calling process is finished using the resource. All mapped regions are still valid after destruction. When all mapped regions and basic_managed_windows_shared_memory objects referring the shared memory are destroyed, the operating system will destroy the shared memory.

      +
    18. +
    +
    +
    +

    +basic_managed_windows_shared_memory public member functions

    +
    1. +
      void swap(basic_managed_windows_shared_memory & other);
      +

      Swaps the ownership of the managed mapped memories managed by *this and other. Never throws.

      +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/basic_managed__idp39689376.html b/doc/html/boost/interprocess/basic_managed__idp39689376.html new file mode 100644 index 0000000000..980327b5dd --- /dev/null +++ b/doc/html/boost/interprocess/basic_managed__idp39689376.html @@ -0,0 +1,150 @@ + + + + +Class template basic_managed_xsi_shared_memory + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Class template basic_managed_xsi_shared_memory

    +

    boost::interprocess::basic_managed_xsi_shared_memory

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/managed_xsi_shared_memory.hpp>
    +
    +template<typename CharType, typename AllocationAlgorithm, 
    +         template< class IndexConfig > class IndexType> 
    +class basic_managed_xsi_shared_memory {
    +public:
    +  // types
    +  typedef base_t::size_type size_type;
    +
    +  // construct/copy/destruct
    +  basic_managed_xsi_shared_memory();
    +  basic_managed_xsi_shared_memory(create_only_t, const xsi_key &, std::size_t, 
    +                                  const void * = 0, 
    +                                  const permissions & = permissions());
    +  basic_managed_xsi_shared_memory(open_or_create_t, const xsi_key &, 
    +                                  std::size_t, const void * = 0, 
    +                                  const permissions & = permissions());
    +  basic_managed_xsi_shared_memory(open_read_only_t, const xsi_key &, 
    +                                  const void * = 0);
    +  basic_managed_xsi_shared_memory(open_only_t, const xsi_key &, 
    +                                  const void * = 0);
    +  basic_managed_xsi_shared_memory(basic_managed_xsi_shared_memory &&);
    +  basic_managed_xsi_shared_memory & 
    +  operator=(basic_managed_xsi_shared_memory &&);
    +  ~basic_managed_xsi_shared_memory();
    +
    +  // public member functions
    +  void swap(basic_managed_xsi_shared_memory &);
    +  int get_shmid() const;
    +
    +  // public static functions
    +  static bool remove(int);
    +};
    +
    +

    Description

    +

    A basic X/Open System Interface (XSI) shared memory named object creation class. Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType>

    +
    +

    +basic_managed_xsi_shared_memory + public + construct/copy/destruct

    +
      +
    1. +
      basic_managed_xsi_shared_memory();
      +

      Default constructor. Does nothing. Useful in combination with move semantics

      +
    2. +
    3. +
      basic_managed_xsi_shared_memory(create_only_t, const xsi_key & key, 
      +                                std::size_t size, const void * addr = 0, 
      +                                const permissions & perm = permissions());
      +

      Creates shared memory and creates and places the segment manager. This can throw.

      +
    4. +
    5. +
      basic_managed_xsi_shared_memory(open_or_create_t, const xsi_key & key, 
      +                                std::size_t size, const void * addr = 0, 
      +                                const permissions & perm = permissions());
      +

      Creates shared memory and creates and places the segment manager if segment was not created. If segment was created it connects to the segment. This can throw.

      +
    6. +
    7. +
      basic_managed_xsi_shared_memory(open_read_only_t, const xsi_key & key, 
      +                                const void * addr = 0);
      +

      Connects to a created shared memory and its segment manager. in read-only mode. This can throw.

      +
    8. +
    9. +
      basic_managed_xsi_shared_memory(open_only_t, const xsi_key & key, 
      +                                const void * addr = 0);
      +

      Connects to a created shared memory and its segment manager. This can throw.

      +
    10. +
    11. +
      basic_managed_xsi_shared_memory(basic_managed_xsi_shared_memory && moved);
      +

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      +
    12. +
    13. +
      basic_managed_xsi_shared_memory & 
      +operator=(basic_managed_xsi_shared_memory && moved);
      +

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      +
    14. +
    15. +
      ~basic_managed_xsi_shared_memory();
      +

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

      +
    16. +
    +
    +
    +

    +basic_managed_xsi_shared_memory public member functions

    +
      +
    1. +
      void swap(basic_managed_xsi_shared_memory & other);
      +

      Swaps the ownership of the managed shared memories managed by *this and other. Never throws.

      +
    2. +
    3. int get_shmid() const;
    4. +
    +
    +
    +

    +basic_managed_xsi_shared_memory public static functions

    +
    1. +
      static bool remove(int shmid);
      +

      Erases a XSI shared memory object identified by shmid from the system. Returns false on error. Never throws

      +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/basic_managed__idp55379840.html b/doc/html/boost/interprocess/basic_managed__idp55379840.html deleted file mode 100644 index f693387f94..0000000000 --- a/doc/html/boost/interprocess/basic_managed__idp55379840.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - -Class template basic_managed_external_buffer - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class template basic_managed_external_buffer

    -

    boost::interprocess::basic_managed_external_buffer

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/managed_external_buffer.hpp>
    -
    -template<typename CharType, typename AllocationAlgorithm, 
    -         template< class IndexConfig > class IndexType> 
    -class basic_managed_external_buffer {
    -public:
    -  // types
    -  typedef base_t::size_type size_type;
    -
    -  // construct/copy/destruct
    -  basic_managed_external_buffer();
    -  basic_managed_external_buffer(create_only_t, void *, size_type);
    -  basic_managed_external_buffer(open_only_t, void *, size_type);
    -  basic_managed_external_buffer(basic_managed_external_buffer &&);
    -  basic_managed_external_buffer & operator=(basic_managed_external_buffer &&);
    -
    -  // public member functions
    -  void grow(size_type);
    -  void swap(basic_managed_external_buffer &);
    -};
    -
    -

    Description

    -

    A basic user memory named object creation class. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType>

    -
    -

    -basic_managed_external_buffer - public - construct/copy/destruct

    -
      -
    1. -
      basic_managed_external_buffer();
      -

      Default constructor. Does nothing. Useful in combination with move semantics

      -
    2. -
    3. -
      basic_managed_external_buffer(create_only_t, void * addr, size_type size);
      Creates and places the segment manager. This can throw.
    4. -
    5. -
      basic_managed_external_buffer(open_only_t, void * addr, size_type size);
      Creates and places the segment manager. This can throw.
    6. -
    7. -
      basic_managed_external_buffer(basic_managed_external_buffer && moved);
      Moves the ownership of "moved"'s managed memory to *this. Does not throw.
    8. -
    9. -
      basic_managed_external_buffer & 
      -operator=(basic_managed_external_buffer && moved);
      Moves the ownership of "moved"'s managed memory to *this. Does not throw.
    10. -
    -
    -
    -

    -basic_managed_external_buffer public member functions

    -
      -
    1. void grow(size_type extra_bytes);
    2. -
    3. -
      void swap(basic_managed_external_buffer & other);
      -

      Swaps the ownership of the managed heap memories managed by *this and other. Never throws.

      -
    4. -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/basic_managed__idp55488352.html b/doc/html/boost/interprocess/basic_managed__idp55488352.html deleted file mode 100644 index 8e51647ffd..0000000000 --- a/doc/html/boost/interprocess/basic_managed__idp55488352.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - -Class template basic_managed_shared_memory - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class template basic_managed_shared_memory

    -

    boost::interprocess::basic_managed_shared_memory

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/managed_shared_memory.hpp>
    -
    -template<typename CharType, typename AllocationAlgorithm, 
    -         template< class IndexConfig > class IndexType> 
    -class basic_managed_shared_memory {
    -public:
    -  // construct/copy/destruct
    -  basic_managed_shared_memory();
    -  basic_managed_shared_memory(create_only_t, const char *, size_type, 
    -                              const void * = 0, 
    -                              const permissions & = permissions());
    -  basic_managed_shared_memory(open_or_create_t, const char *, size_type, 
    -                              const void * = 0, 
    -                              const permissions & = permissions());
    -  basic_managed_shared_memory(open_copy_on_write_t, const char *, 
    -                              const void * = 0);
    -  basic_managed_shared_memory(open_read_only_t, const char *, 
    -                              const void * = 0);
    -  basic_managed_shared_memory(open_only_t, const char *, const void * = 0);
    -  basic_managed_shared_memory(basic_managed_shared_memory &&);
    -  basic_managed_shared_memory & operator=(basic_managed_shared_memory &&);
    -  ~basic_managed_shared_memory();
    -
    -  // public member functions
    -  void swap(basic_managed_shared_memory &);
    -
    -  // public static functions
    -  static bool grow(const char *, size_type);
    -  static bool shrink_to_fit(const char *);
    -};
    -
    -

    Description

    -

    A basic shared memory named object creation class. Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType>

    -
    -

    -basic_managed_shared_memory - public - construct/copy/destruct

    -
      -
    1. -
      basic_managed_shared_memory();
      -

      Default constructor. Does nothing. Useful in combination with move semantics

      -
    2. -
    3. -
      basic_managed_shared_memory(create_only_t, const char * name, size_type size, 
      -                            const void * addr = 0, 
      -                            const permissions & perm = permissions());
      -

      Creates shared memory and creates and places the segment manager. This can throw.

      -
    4. -
    5. -
      basic_managed_shared_memory(open_or_create_t, const char * name, 
      -                            size_type size, const void * addr = 0, 
      -                            const permissions & perm = permissions());
      -

      Creates shared memory and creates and places the segment manager if segment was not created. If segment was created it connects to the segment. This can throw.

      -
    6. -
    7. -
      basic_managed_shared_memory(open_copy_on_write_t, const char * name, 
      -                            const void * addr = 0);
      -

      Connects to a created shared memory and its segment manager. in copy_on_write mode. This can throw.

      -
    8. -
    9. -
      basic_managed_shared_memory(open_read_only_t, const char * name, 
      -                            const void * addr = 0);
      -

      Connects to a created shared memory and its segment manager. in read-only mode. This can throw.

      -
    10. -
    11. -
      basic_managed_shared_memory(open_only_t, const char * name, 
      -                            const void * addr = 0);
      -

      Connects to a created shared memory and its segment manager. This can throw.

      -
    12. -
    13. -
      basic_managed_shared_memory(basic_managed_shared_memory && moved);
      -

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      -
    14. -
    15. -
      basic_managed_shared_memory & operator=(basic_managed_shared_memory && moved);
      -

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      -
    16. -
    17. -
      ~basic_managed_shared_memory();
      -

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

      -
    18. -
    -
    -
    -

    -basic_managed_shared_memory public member functions

    -
    1. -
      void swap(basic_managed_shared_memory & other);
      -

      Swaps the ownership of the managed shared memories managed by *this and other. Never throws.

      -
    -
    -
    -

    -basic_managed_shared_memory public static functions

    -
      -
    1. -
      static bool grow(const char * shmname, size_type extra_bytes);
      -

      Tries to resize the managed shared memory object so that we have room for more objects.

      -

      This function is not synchronized so no other thread or process should be reading or writing the file

      -
    2. -
    3. -
      static bool shrink_to_fit(const char * shmname);
      -

      Tries to resize the managed shared memory to minimized the size of the file.

      -

      This function is not synchronized so no other thread or process should be reading or writing the file

      -
    4. -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/basic_managed__idp55546096.html b/doc/html/boost/interprocess/basic_managed__idp55546096.html deleted file mode 100644 index cbbd9fa9d0..0000000000 --- a/doc/html/boost/interprocess/basic_managed__idp55546096.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - -Class template basic_managed_windows_shared_memory - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class template basic_managed_windows_shared_memory

    -

    boost::interprocess::basic_managed_windows_shared_memory

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/managed_windows_shared_memory.hpp>
    -
    -template<typename CharType, typename AllocationAlgorithm, 
    -         template< class IndexConfig > class IndexType> 
    -class basic_managed_windows_shared_memory {
    -public:
    -  // types
    -  typedef base_t::size_type size_type;
    -
    -  // construct/copy/destruct
    -  basic_managed_windows_shared_memory();
    -  basic_managed_windows_shared_memory(create_only_t, const char *, size_type, 
    -                                      const void * = 0, 
    -                                      const permissions & = permissions());
    -  basic_managed_windows_shared_memory(open_or_create_t, const char *, 
    -                                      size_type, const void * = 0, 
    -                                      const permissions & = permissions());
    -  basic_managed_windows_shared_memory(open_only_t, const char *, 
    -                                      const void * = 0);
    -  basic_managed_windows_shared_memory(open_copy_on_write_t, const char *, 
    -                                      const void * = 0);
    -  basic_managed_windows_shared_memory(open_read_only_t, const char *, 
    -                                      const void * = 0);
    -  basic_managed_windows_shared_memory(basic_managed_windows_shared_memory &&);
    -  basic_managed_windows_shared_memory & 
    -  operator=(basic_managed_windows_shared_memory &&);
    -  ~basic_managed_windows_shared_memory();
    -
    -  // public member functions
    -  void swap(basic_managed_windows_shared_memory &);
    -};
    -
    -

    Description

    -

    A basic managed windows shared memory creation class. Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType> Unlike basic_managed_shared_memory, it has no kernel persistence and the shared memory is destroyed when all processes destroy all their windows_shared_memory objects and mapped regions for the same shared memory or the processes end/crash.

    -

    Warning: basic_managed_windows_shared_memory and basic_managed_shared_memory can't communicate between them.

    -
    -

    -basic_managed_windows_shared_memory - public - construct/copy/destruct

    -
      -
    1. -
      basic_managed_windows_shared_memory();
      -

      Default constructor. Does nothing. Useful in combination with move semantics

      -
    2. -
    3. -
      basic_managed_windows_shared_memory(create_only_t, const char * name, 
      -                                    size_type size, const void * addr = 0, 
      -                                    const permissions & perm = permissions());
      -

      Creates shared memory and creates and places the segment manager. This can throw.

      -
    4. -
    5. -
      basic_managed_windows_shared_memory(open_or_create_t, const char * name, 
      -                                    size_type size, const void * addr = 0, 
      -                                    const permissions & perm = permissions());
      -

      Creates shared memory and creates and places the segment manager if segment was not created. If segment was created it connects to the segment. This can throw.

      -
    6. -
    7. -
      basic_managed_windows_shared_memory(open_only_t, const char * name, 
      -                                    const void * addr = 0);
      -

      Connects to a created shared memory and its segment manager. This can throw.

      -
    8. -
    9. -
      basic_managed_windows_shared_memory(open_copy_on_write_t, const char * name, 
      -                                    const void * addr = 0);
      -

      Connects to a created shared memory and its segment manager in copy_on_write mode. This can throw.

      -
    10. -
    11. -
      basic_managed_windows_shared_memory(open_read_only_t, const char * name, 
      -                                    const void * addr = 0);
      -

      Connects to a created shared memory and its segment manager in read-only mode. This can throw.

      -
    12. -
    13. -
      basic_managed_windows_shared_memory(basic_managed_windows_shared_memory && moved);
      -

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      -
    14. -
    15. -
      basic_managed_windows_shared_memory & 
      -operator=(basic_managed_windows_shared_memory && moved);
      -

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      -
    16. -
    17. -
      ~basic_managed_windows_shared_memory();
      -

      Destroys *this and indicates that the calling process is finished using the resource. All mapped regions are still valid after destruction. When all mapped regions and basic_managed_windows_shared_memory objects referring the shared memory are destroyed, the operating system will destroy the shared memory.

      -
    18. -
    -
    -
    -

    -basic_managed_windows_shared_memory public member functions

    -
    1. -
      void swap(basic_managed_windows_shared_memory & other);
      -

      Swaps the ownership of the managed mapped memories managed by *this and other. Never throws.

      -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/basic_managed__idp55594816.html b/doc/html/boost/interprocess/basic_managed__idp55594816.html deleted file mode 100644 index ea81ee65e3..0000000000 --- a/doc/html/boost/interprocess/basic_managed__idp55594816.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - -Class template basic_managed_xsi_shared_memory - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class template basic_managed_xsi_shared_memory

    -

    boost::interprocess::basic_managed_xsi_shared_memory

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/managed_xsi_shared_memory.hpp>
    -
    -template<typename CharType, typename AllocationAlgorithm, 
    -         template< class IndexConfig > class IndexType> 
    -class basic_managed_xsi_shared_memory {
    -public:
    -  // types
    -  typedef base_t::size_type size_type;
    -
    -  // construct/copy/destruct
    -  basic_managed_xsi_shared_memory();
    -  basic_managed_xsi_shared_memory(create_only_t, const xsi_key &, std::size_t, 
    -                                  const void * = 0, 
    -                                  const permissions & = permissions());
    -  basic_managed_xsi_shared_memory(open_or_create_t, const xsi_key &, 
    -                                  std::size_t, const void * = 0, 
    -                                  const permissions & = permissions());
    -  basic_managed_xsi_shared_memory(open_read_only_t, const xsi_key &, 
    -                                  const void * = 0);
    -  basic_managed_xsi_shared_memory(open_only_t, const xsi_key &, 
    -                                  const void * = 0);
    -  basic_managed_xsi_shared_memory(basic_managed_xsi_shared_memory &&);
    -  basic_managed_xsi_shared_memory & 
    -  operator=(basic_managed_xsi_shared_memory &&);
    -  ~basic_managed_xsi_shared_memory();
    -
    -  // public member functions
    -  void swap(basic_managed_xsi_shared_memory &);
    -  int get_shmid() const;
    -
    -  // public static functions
    -  static bool remove(int);
    -};
    -
    -

    Description

    -

    A basic X/Open System Interface (XSI) shared memory named object creation class. Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType>

    -
    -

    -basic_managed_xsi_shared_memory - public - construct/copy/destruct

    -
      -
    1. -
      basic_managed_xsi_shared_memory();
      -

      Default constructor. Does nothing. Useful in combination with move semantics

      -
    2. -
    3. -
      basic_managed_xsi_shared_memory(create_only_t, const xsi_key & key, 
      -                                std::size_t size, const void * addr = 0, 
      -                                const permissions & perm = permissions());
      -

      Creates shared memory and creates and places the segment manager. This can throw.

      -
    4. -
    5. -
      basic_managed_xsi_shared_memory(open_or_create_t, const xsi_key & key, 
      -                                std::size_t size, const void * addr = 0, 
      -                                const permissions & perm = permissions());
      -

      Creates shared memory and creates and places the segment manager if segment was not created. If segment was created it connects to the segment. This can throw.

      -
    6. -
    7. -
      basic_managed_xsi_shared_memory(open_read_only_t, const xsi_key & key, 
      -                                const void * addr = 0);
      -

      Connects to a created shared memory and its segment manager. in read-only mode. This can throw.

      -
    8. -
    9. -
      basic_managed_xsi_shared_memory(open_only_t, const xsi_key & key, 
      -                                const void * addr = 0);
      -

      Connects to a created shared memory and its segment manager. This can throw.

      -
    10. -
    11. -
      basic_managed_xsi_shared_memory(basic_managed_xsi_shared_memory && moved);
      -

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      -
    12. -
    13. -
      basic_managed_xsi_shared_memory & 
      -operator=(basic_managed_xsi_shared_memory && moved);
      -

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

      -
    14. -
    15. -
      ~basic_managed_xsi_shared_memory();
      -

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

      -
    16. -
    -
    -
    -

    -basic_managed_xsi_shared_memory public member functions

    -
      -
    1. -
      void swap(basic_managed_xsi_shared_memory & other);
      -

      Swaps the ownership of the managed shared memories managed by *this and other. Never throws.

      -
    2. -
    3. int get_shmid() const;
    4. -
    -
    -
    -

    -basic_managed_xsi_shared_memory public static functions

    -
    1. -
      static bool remove(int shmid);
      -

      Erases a XSI shared memory object identified by shmid from the system. Returns false on error. Never throws

      -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/basic_managed_heap_memory.html b/doc/html/boost/interprocess/basic_managed_heap_memory.html index bca3fd8f74..f895802458 100644 --- a/doc/html/boost/interprocess/basic_managed_heap_memory.html +++ b/doc/html/boost/interprocess/basic_managed_heap_memory.html @@ -40,15 +40,15 @@ typedef base_t::size_type size_type; // construct/copy/destruct - basic_managed_heap_memory(); - basic_managed_heap_memory(size_type); - basic_managed_heap_memory(basic_managed_heap_memory &&); - basic_managed_heap_memory & operator=(basic_managed_heap_memory &&); - ~basic_managed_heap_memory(); + basic_managed_heap_memory(); + basic_managed_heap_memory(size_type); + basic_managed_heap_memory(basic_managed_heap_memory &&); + basic_managed_heap_memory & operator=(basic_managed_heap_memory &&); + ~basic_managed_heap_memory(); - // public member functions - bool grow(size_type); - void swap(basic_managed_heap_memory &); + // public member functions + bool grow(size_type); + void swap(basic_managed_heap_memory &); };

    Description

    @@ -60,33 +60,33 @@ construct/copy/destruct
    1. -
      basic_managed_heap_memory();
      +
      basic_managed_heap_memory();

      Default constructor. Does nothing. Useful in combination with move semantics

    2. -
      basic_managed_heap_memory(size_type size);
      +
      basic_managed_heap_memory(size_type size);

      Creates heap memory and initializes the segment manager. This can throw.

    3. -
      basic_managed_heap_memory(basic_managed_heap_memory && moved);
      Moves the ownership of "moved"'s managed memory to *this. Does not throw.
    4. +
      basic_managed_heap_memory(basic_managed_heap_memory && moved);
      Moves the ownership of "moved"'s managed memory to *this. Does not throw.
    5. -
      basic_managed_heap_memory & operator=(basic_managed_heap_memory && moved);
      Moves the ownership of "moved"'s managed memory to *this. Does not throw.
    6. +
      basic_managed_heap_memory & operator=(basic_managed_heap_memory && moved);
      Moves the ownership of "moved"'s managed memory to *this. Does not throw.
    7. -
      ~basic_managed_heap_memory();
      +
      ~basic_managed_heap_memory();

      Destructor. Liberates the heap memory holding the managed data. Never throws.

    -basic_managed_heap_memory public member functions

    +basic_managed_heap_memory public member functions
    1. -
      bool grow(size_type extra_bytes);
      +
      bool grow(size_type extra_bytes);

      Tries to resize internal heap memory so that we have room for more objects. WARNING: If memory is reallocated, all the objects will be binary-copied to the new buffer. To be able to use this function, all pointers constructed in this buffer must be offset pointers. Otherwise, the result is undefined. Returns true if the growth has been successful, so you will have some extra bytes to allocate new objects. If returns false, the heap allocation has failed.

    2. -
      void swap(basic_managed_heap_memory & other);
      +
      void swap(basic_managed_heap_memory & other);

      Swaps the ownership of the managed heap memories managed by *this and other. Never throws.

    diff --git a/doc/html/boost/interprocess/basic_managed_mapped_file.html b/doc/html/boost/interprocess/basic_managed_mapped_file.html index ca25d5097c..98d5fa066b 100644 --- a/doc/html/boost/interprocess/basic_managed_mapped_file.html +++ b/doc/html/boost/interprocess/basic_managed_mapped_file.html @@ -40,28 +40,28 @@ typedef implementation_defined size_type; // construct/copy/destruct - basic_managed_mapped_file(); - basic_managed_mapped_file(create_only_t, const char *, size_type, + basic_managed_mapped_file(); + basic_managed_mapped_file(create_only_t, const char *, size_type, const void * = 0, const permissions & = permissions()); - basic_managed_mapped_file(open_or_create_t, const char *, size_type, + basic_managed_mapped_file(open_or_create_t, const char *, size_type, const void * = 0, const permissions & = permissions()); - basic_managed_mapped_file(open_only_t, const char *, const void * = 0); - basic_managed_mapped_file(open_copy_on_write_t, const char *, + basic_managed_mapped_file(open_only_t, const char *, const void * = 0); + basic_managed_mapped_file(open_copy_on_write_t, const char *, const void * = 0); - basic_managed_mapped_file(open_read_only_t, const char *, const void * = 0); - basic_managed_mapped_file(basic_managed_mapped_file &&); - basic_managed_mapped_file & operator=(basic_managed_mapped_file &&); - ~basic_managed_mapped_file(); + basic_managed_mapped_file(open_read_only_t, const char *, const void * = 0); + basic_managed_mapped_file(basic_managed_mapped_file &&); + basic_managed_mapped_file & operator=(basic_managed_mapped_file &&); + ~basic_managed_mapped_file(); - // public member functions - void swap(basic_managed_mapped_file &); - bool flush(); + // public member functions + void swap(basic_managed_mapped_file &); + bool flush(); - // public static functions - static bool grow(const char *, size_type); - static bool shrink_to_fit(const char *); + // public static functions + static bool grow(const char *, size_type); + static bool shrink_to_fit(const char *); };

    Description

    @@ -84,75 +84,75 @@ construct/copy/destruct
    1. -
      basic_managed_mapped_file();
      +
      basic_managed_mapped_file();

      Creates mapped file and creates and places the segment manager. This can throw.

    2. -
      basic_managed_mapped_file(create_only_t, const char * name, size_type size, 
      +
      basic_managed_mapped_file(create_only_t, const char * name, size_type size, 
                                 const void * addr = 0, 
                                 const permissions & perm = permissions());

      Creates mapped file and creates and places the segment manager. This can throw.

    3. -
      basic_managed_mapped_file(open_or_create_t, const char * name, size_type size, 
      +
      basic_managed_mapped_file(open_or_create_t, const char * name, size_type size, 
                                 const void * addr = 0, 
                                 const permissions & perm = permissions());

      Creates mapped file and creates and places the segment manager if segment was not created. If segment was created it connects to the segment. This can throw.

    4. -
      basic_managed_mapped_file(open_only_t, const char * name, 
      +
      basic_managed_mapped_file(open_only_t, const char * name, 
                                 const void * addr = 0);

      Connects to a created mapped file and its segment manager. This can throw.

    5. -
      basic_managed_mapped_file(open_copy_on_write_t, const char * name, 
      +
      basic_managed_mapped_file(open_copy_on_write_t, const char * name, 
                                 const void * addr = 0);

      Connects to a created mapped file and its segment manager in copy_on_write mode. This can throw.

    6. -
      basic_managed_mapped_file(open_read_only_t, const char * name, 
      +
      basic_managed_mapped_file(open_read_only_t, const char * name, 
                                 const void * addr = 0);

      Connects to a created mapped file and its segment manager in read-only mode. This can throw.

    7. -
      basic_managed_mapped_file(basic_managed_mapped_file && moved);
      +
      basic_managed_mapped_file(basic_managed_mapped_file && moved);

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

    8. -
      basic_managed_mapped_file & operator=(basic_managed_mapped_file && moved);
      +
      basic_managed_mapped_file & operator=(basic_managed_mapped_file && moved);

      Moves the ownership of "moved"'s managed memory to *this. Does not throw

    9. -
      ~basic_managed_mapped_file();
      +
      ~basic_managed_mapped_file();

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -basic_managed_mapped_file public member functions

    +basic_managed_mapped_file public member functions
    1. -
      void swap(basic_managed_mapped_file & other);
      +
      void swap(basic_managed_mapped_file & other);

      Swaps the ownership of the managed mapped memories managed by *this and other. Never throws.

    2. -
      bool flush();
      +
      bool flush();

      Flushes cached data to file. Never throws

    -basic_managed_mapped_file public static functions

    +basic_managed_mapped_file public static functions
    1. -
      static bool grow(const char * filename, size_type extra_bytes);
      +
      static bool grow(const char * filename, size_type extra_bytes);

      Tries to resize mapped file so that we have room for more objects.

      This function is not synchronized so no other thread or process should be reading or writing the file

    2. -
      static bool shrink_to_fit(const char * filename);
      +
      static bool shrink_to_fit(const char * filename);

      Tries to resize mapped file to minimized the size of the file.

      This function is not synchronized so no other thread or process should be reading or writing the file

    3. diff --git a/doc/html/boost/interprocess/basic_obufferstream.html b/doc/html/boost/interprocess/basic_obufferstream.html index cdddb9d1f7..26727eaff0 100644 --- a/doc/html/boost/interprocess/basic_obufferstream.html +++ b/doc/html/boost/interprocess/basic_obufferstream.html @@ -43,15 +43,15 @@ typedef std::basic_ios< char_type, CharTraits >::traits_type traits_type; // construct/copy/destruct - basic_obufferstream(std::ios_base::openmode = std::ios_base::out); - basic_obufferstream(CharT *, std::size_t, + basic_obufferstream(std::ios_base::openmode = std::ios_base::out); + basic_obufferstream(CharT *, std::size_t, std::ios_base::openmode = std::ios_base::out); - ~basic_obufferstream(); + ~basic_obufferstream(); - // public member functions - basic_bufferbuf< CharT, CharTraits > * rdbuf() const; - std::pair< CharT *, std::size_t > buffer() const; - void buffer(CharT *, std::size_t); + // public member functions + basic_bufferbuf< CharT, CharTraits > * rdbuf() const; + std::pair< CharT *, std::size_t > buffer() const; + void buffer(CharT *, std::size_t); };

    Description

    @@ -63,31 +63,31 @@ construct/copy/destruct
    1. -
      basic_obufferstream(std::ios_base::openmode mode = std::ios_base::out);
      +
      basic_obufferstream(std::ios_base::openmode mode = std::ios_base::out);

      Constructor. Does not throw.

    2. -
      basic_obufferstream(CharT * buf, std::size_t length, 
      +
      basic_obufferstream(CharT * buf, std::size_t length, 
                           std::ios_base::openmode mode = std::ios_base::out);

      Constructor. Assigns formatting buffer. Does not throw.

    3. -
    4. ~basic_obufferstream();
    5. +
    6. ~basic_obufferstream();

    -basic_obufferstream public member functions

    +basic_obufferstream public member functions
    1. -
      basic_bufferbuf< CharT, CharTraits > * rdbuf() const;
      +
      basic_bufferbuf< CharT, CharTraits > * rdbuf() const;

      Returns the address of the stored stream buffer.

    2. -
      std::pair< CharT *, std::size_t > buffer() const;
      +
      std::pair< CharT *, std::size_t > buffer() const;

      Returns the pointer and size of the internal buffer. Does not throw.

    3. -
      void buffer(CharT * buf, std::size_t length);
      +
      void buffer(CharT * buf, std::size_t length);

      Sets the underlying buffer to a new value. Resets stream position. Does not throw.

    diff --git a/doc/html/boost/interprocess/basic_ovectorstream.html b/doc/html/boost/interprocess/basic_ovectorstream.html index 02f7bb85a3..04b3fb03fd 100644 --- a/doc/html/boost/interprocess/basic_ovectorstream.html +++ b/doc/html/boost/interprocess/basic_ovectorstream.html @@ -46,16 +46,16 @@ typedef std::basic_ios< char_type, CharTraits >::traits_type traits_type; // construct/copy/destruct - basic_ovectorstream(std::ios_base::openmode = std::ios_base::out); + basic_ovectorstream(std::ios_base::openmode = std::ios_base::out); template<typename VectorParameter> - basic_ovectorstream(const VectorParameter &, + basic_ovectorstream(const VectorParameter &, std::ios_base::openmode = std::ios_base::out); - // public member functions - basic_vectorbuf< CharVector, CharTraits > * rdbuf() const; - void swap_vector(vector_type &); - const vector_type & vector() const; - void reserve(typename vector_type::size_type); + // public member functions + basic_vectorbuf< CharVector, CharTraits > * rdbuf() const; + void swap_vector(vector_type &); + const vector_type & vector() const; + void reserve(typename vector_type::size_type); };

    Description

    @@ -67,12 +67,12 @@ construct/copy/destruct
    1. -
      basic_ovectorstream(std::ios_base::openmode mode = std::ios_base::out);
      +
      basic_ovectorstream(std::ios_base::openmode mode = std::ios_base::out);

      Constructor. Throws if vector_type default constructor throws.

    2. template<typename VectorParameter> 
      -  basic_ovectorstream(const VectorParameter & param, 
      +  basic_ovectorstream(const VectorParameter & param, 
                             std::ios_base::openmode mode = std::ios_base::out);

      Constructor. Throws if vector_type(const VectorParameter &param) throws.

    3. @@ -80,22 +80,22 @@

    -basic_ovectorstream public member functions

    +basic_ovectorstream public member functions
    1. -
      basic_vectorbuf< CharVector, CharTraits > * rdbuf() const;
      +
      basic_vectorbuf< CharVector, CharTraits > * rdbuf() const;

      Returns the address of the stored stream buffer.

    2. -
      void swap_vector(vector_type & vect);
      +
      void swap_vector(vector_type & vect);

      Swaps the underlying vector with the passed vector. This function resets the write position in the stream. Does not throw.

    3. -
      const vector_type & vector() const;
      +
      const vector_type & vector() const;

      Returns a const reference to the internal vector. Does not throw.

    4. -
      void reserve(typename vector_type::size_type size);
      +
      void reserve(typename vector_type::size_type size);

      Calls reserve() method of the internal vector. Resets the stream to the first position. Throws if the internals vector's reserve throws.

    diff --git a/doc/html/boost/interprocess/basic_vectorbuf.html b/doc/html/boost/interprocess/basic_vectorbuf.html index 13c5a2d87b..3fd1712d48 100644 --- a/doc/html/boost/interprocess/basic_vectorbuf.html +++ b/doc/html/boost/interprocess/basic_vectorbuf.html @@ -46,16 +46,16 @@ typedef CharTraits traits_type; // construct/copy/destruct - explicit basic_vectorbuf(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); + explicit basic_vectorbuf(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); template<typename VectorParameter> - explicit basic_vectorbuf(const VectorParameter &, + explicit basic_vectorbuf(const VectorParameter &, std::ios_base::openmode = std::ios_base::in|std::ios_base::out); - // public member functions - void swap_vector(vector_type &); - const vector_type & vector() const; - void reserve(typename vector_type::size_type); - void clear(); + // public member functions + void swap_vector(vector_type &); + const vector_type & vector() const; + void reserve(typename vector_type::size_type); + void clear(); };

    Description

    @@ -67,12 +67,12 @@ construct/copy/destruct
    1. -
      explicit basic_vectorbuf(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
      +
      explicit basic_vectorbuf(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

      Constructor. Throws if vector_type default constructor throws.

    2. template<typename VectorParameter> 
      -  explicit basic_vectorbuf(const VectorParameter & param, 
      +  explicit basic_vectorbuf(const VectorParameter & param, 
                                  std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

      Constructor. Throws if vector_type(const VectorParameter &param) throws.

    3. @@ -80,22 +80,22 @@

    -basic_vectorbuf public member functions

    +basic_vectorbuf public member functions
    1. -
      void swap_vector(vector_type & vect);
      +
      void swap_vector(vector_type & vect);

      Swaps the underlying vector with the passed vector. This function resets the read/write position in the stream. Does not throw.

    2. -
      const vector_type & vector() const;
      +
      const vector_type & vector() const;

      Returns a const reference to the internal vector. Does not throw.

    3. -
      void reserve(typename vector_type::size_type size);
      +
      void reserve(typename vector_type::size_type size);

      Preallocates memory from the internal vector. Resets the stream to the first position. Throws if the internals vector's memory allocation throws.

    4. -
      void clear();
      +
      void clear();

      Calls clear() method of the internal vector. Resets the stream to the first position.

    diff --git a/doc/html/boost/interprocess/basic_vectorstream.html b/doc/html/boost/interprocess/basic_vectorstream.html index 1b787c8e49..c8f0ed0af0 100644 --- a/doc/html/boost/interprocess/basic_vectorstream.html +++ b/doc/html/boost/interprocess/basic_vectorstream.html @@ -46,17 +46,17 @@ typedef std::basic_ios< char_type, CharTraits >::traits_type traits_type; // construct/copy/destruct - basic_vectorstream(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); + basic_vectorstream(std::ios_base::openmode = std::ios_base::in|std::ios_base::out); template<typename VectorParameter> - basic_vectorstream(const VectorParameter &, + basic_vectorstream(const VectorParameter &, std::ios_base::openmode = std::ios_base::in|std::ios_base::out); - // public member functions - basic_vectorbuf< CharVector, CharTraits > * rdbuf() const; - void swap_vector(vector_type &); - const vector_type & vector() const; - void reserve(typename vector_type::size_type); - void clear(); + // public member functions + basic_vectorbuf< CharVector, CharTraits > * rdbuf() const; + void swap_vector(vector_type &); + const vector_type & vector() const; + void reserve(typename vector_type::size_type); + void clear(); };

    Description

    @@ -68,12 +68,12 @@ construct/copy/destruct
    1. -
      basic_vectorstream(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
      +
      basic_vectorstream(std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

      Constructor. Throws if vector_type default constructor throws.

    2. template<typename VectorParameter> 
      -  basic_vectorstream(const VectorParameter & param, 
      +  basic_vectorstream(const VectorParameter & param, 
                            std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);

      Constructor. Throws if vector_type(const VectorParameter &param) throws.

    3. @@ -81,23 +81,23 @@

    -basic_vectorstream public member functions

    +basic_vectorstream public member functions
      -
    1. basic_vectorbuf< CharVector, CharTraits > * rdbuf() const;
    2. +
    3. basic_vectorbuf< CharVector, CharTraits > * rdbuf() const;
    4. -
      void swap_vector(vector_type & vect);
      +
      void swap_vector(vector_type & vect);

      Swaps the underlying vector with the passed vector. This function resets the read/write position in the stream. Does not throw.

    5. -
      const vector_type & vector() const;
      +
      const vector_type & vector() const;

      Returns a const reference to the internal vector. Does not throw.

    6. -
      void reserve(typename vector_type::size_type size);
      +
      void reserve(typename vector_type::size_type size);

      Calls reserve() method of the internal vector. Resets the stream to the first position. Throws if the internals vector's reserve throws.

    7. -
      void clear();
      +
      void clear();

      Calls clear() method of the internal vector. Resets the stream to the first position.

    diff --git a/doc/html/boost/interprocess/cached_adaptive_pool.html b/doc/html/boost/interprocess/cached_adaptive_pool.html index 2c1226b5fe..7844b23088 100644 --- a/doc/html/boost/interprocess/cached_adaptive_pool.html +++ b/doc/html/boost/interprocess/cached_adaptive_pool.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -55,43 +55,43 @@ }; // construct/copy/destruct - cached_adaptive_pool(segment_manager *); - cached_adaptive_pool(const cached_adaptive_pool &); + cached_adaptive_pool(segment_manager *); + cached_adaptive_pool(const cached_adaptive_pool &); template<typename T2> - cached_adaptive_pool(const cached_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &); + cached_adaptive_pool(const cached_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &); template<typename T2, typename SegmentManager2, std::size_t N2, std::size_t F2, unsigned char OP2> cached_adaptive_pool & - operator=(const cached_adaptive_pool< T2, SegmentManager2, N2, F2, OP2 > &); - cached_adaptive_pool & operator=(const cached_adaptive_pool &); - ~cached_adaptive_pool(); + operator=(const cached_adaptive_pool< T2, SegmentManager2, N2, F2, OP2 > &); + cached_adaptive_pool & operator=(const cached_adaptive_pool &); + ~cached_adaptive_pool(); - // public member functions - node_pool_t * get_node_pool() const; - segment_manager * get_segment_manager() const; - size_type max_size() const; - pointer allocate(size_type, cvoid_pointer = 0); - void deallocate(const pointer &, size_type); - void deallocate_free_blocks(); - pointer address(reference) const; - const_pointer address(const_reference) const; - void construct(const pointer &, const_reference); - void destroy(const pointer &); - size_type size(const pointer &) const; - pointer allocation_command(boost::interprocess::allocation_type, size_type, + // public member functions + node_pool_t * get_node_pool() const; + segment_manager * get_segment_manager() const; + size_type max_size() const; + pointer allocate(size_type, cvoid_pointer = 0); + void deallocate(const pointer &, size_type); + void deallocate_free_blocks(); + pointer address(reference) const; + const_pointer address(const_reference) const; + void construct(const pointer &, const_reference); + void destroy(const pointer &); + size_type size(const pointer &) const; + pointer allocation_command(boost::interprocess::allocation_type, size_type, size_type &, pointer &); - void allocate_many(size_type, size_type, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &); - pointer allocate_one(); - multiallocation_chain allocate_individual(size_type); - void deallocate_one(const pointer &); - void deallocate_individual(multiallocation_chain &); - void set_max_cached_nodes(size_type); - size_type get_max_cached_nodes() const; + void allocate_many(size_type, size_type, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &); + pointer allocate_one(); + multiallocation_chain allocate_individual(size_type); + void deallocate_one(const pointer &); + void deallocate_individual(multiallocation_chain &); + void set_max_cached_nodes(size_type); + size_type get_max_cached_nodes() const; - // friend functions - friend void swap(self_t &, self_t &); + // friend functions + friend void swap(self_t &, self_t &); };

    Description

    @@ -106,132 +106,132 @@ construct/copy/destruct
    1. -
      cached_adaptive_pool(segment_manager * segment_mngr);
      +
      cached_adaptive_pool(segment_manager * segment_mngr);

      Constructor from a segment manager. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    2. -
      cached_adaptive_pool(const cached_adaptive_pool & other);
      +
      cached_adaptive_pool(const cached_adaptive_pool & other);

      Copy constructor from other cached_adaptive_pool. Increments the reference count of the associated node pool. Never throws

    3. template<typename T2> 
      -  cached_adaptive_pool(const cached_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > & other);
      + cached_adaptive_pool(const cached_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > & other);

      Copy constructor from related cached_adaptive_pool. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    4. template<typename T2, typename SegmentManager2, std::size_t N2, 
                std::size_t F2, unsigned char OP2> 
         cached_adaptive_pool & 
      -  operator=(const cached_adaptive_pool< T2, SegmentManager2, N2, F2, OP2 > &);
      + operator=(const cached_adaptive_pool< T2, SegmentManager2, N2, F2, OP2 > &);

      Not assignable from related cached_adaptive_pool

    5. -
      cached_adaptive_pool & operator=(const cached_adaptive_pool &);
      +
      cached_adaptive_pool & operator=(const cached_adaptive_pool &);

      Not assignable from other cached_adaptive_pool

    6. -
      ~cached_adaptive_pool();
      +
      ~cached_adaptive_pool();

      Destructor, removes node_pool_t from memory if its reference count reaches to zero. Never throws

    -cached_adaptive_pool public member functions

    +cached_adaptive_pool public member functions
    1. -
      node_pool_t * get_node_pool() const;
      +
      node_pool_t * get_node_pool() const;

      Returns a pointer to the node pool. Never throws

    2. -
      segment_manager * get_segment_manager() const;
      +
      segment_manager * get_segment_manager() const;

      Returns the segment manager. Never throws

    3. -
      size_type max_size() const;
      +
      size_type max_size() const;

      Returns the number of elements that could be allocated. Never throws

    4. -
      pointer allocate(size_type count, cvoid_pointer hint = 0);
      +
      pointer allocate(size_type count, cvoid_pointer hint = 0);

      Allocate memory for an array of count elements. Throws boost::interprocess::bad_alloc if there is no enough memory

    5. -
      void deallocate(const pointer & ptr, size_type count);
      +
      void deallocate(const pointer & ptr, size_type count);

      Deallocate allocated memory. Never throws

    6. -
      void deallocate_free_blocks();
      +
      void deallocate_free_blocks();

      Deallocates all free blocks of the pool

    7. -
      pointer address(reference value) const;
      +
      pointer address(reference value) const;

      Returns address of mutable object. Never throws

    8. -
      const_pointer address(const_reference value) const;
      +
      const_pointer address(const_reference value) const;

      Returns address of non mutable object. Never throws

    9. -
      void construct(const pointer & ptr, const_reference v);
      +
      void construct(const pointer & ptr, const_reference v);

      Copy construct an object. Throws if T's copy constructor throws

    10. -
      void destroy(const pointer & ptr);
      +
      void destroy(const pointer & ptr);

      Destroys object. Throws if object's destructor throws

    11. -
      size_type size(const pointer & p) const;
      +
      size_type size(const pointer & p) const;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.

    12. -
    13. pointer allocation_command(boost::interprocess::allocation_type command, 
      +
    14. pointer allocation_command(boost::interprocess::allocation_type command, 
                                  size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);
    15. -
      void allocate_many(size_type elem_size, size_type num_elements, 
      +
      void allocate_many(size_type elem_size, size_type num_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    16. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated

    17. -
      void deallocate_many(multiallocation_chain & chain);
      +
      void deallocate_many(multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    18. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc if there is no enough memory

    19. -
      multiallocation_chain allocate_individual(size_type num_elements);
      +
      multiallocation_chain allocate_individual(size_type num_elements);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    20. -
      void deallocate_one(const pointer & p);
      +
      void deallocate_one(const pointer & p);

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

    21. -
      void deallocate_individual(multiallocation_chain & chain);
      +
      void deallocate_individual(multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    22. -
      void set_max_cached_nodes(size_type newmax);
      +
      void set_max_cached_nodes(size_type newmax);

      Sets the new max cached nodes value. This can provoke deallocations if "newmax" is less than current cached nodes. Never throws

    23. -
      size_type get_max_cached_nodes() const;
      +
      size_type get_max_cached_nodes() const;

      Returns the max cached nodes parameter. Never throws

    -cached_adaptive_pool friend functions

    +cached_adaptive_pool friend functions
    1. -
      friend void swap(self_t & alloc1, self_t & alloc2);
      +
      friend void swap(self_t & alloc1, self_t & alloc2);

      Swaps allocators. Does not throw. If each allocator is placed in a different memory segment, the result is undefined.

    @@ -247,7 +247,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/cached_adaptive_pool/rebind.html b/doc/html/boost/interprocess/cached_adaptive_pool/rebind.html index 3f0255c598..63df04672c 100644 --- a/doc/html/boost/interprocess/cached_adaptive_pool/rebind.html +++ b/doc/html/boost/interprocess/cached_adaptive_pool/rebind.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +53,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/cached_node_allocator.html b/doc/html/boost/interprocess/cached_node_allocator.html index 0e3215c6c9..1016865d87 100644 --- a/doc/html/boost/interprocess/cached_node_allocator.html +++ b/doc/html/boost/interprocess/cached_node_allocator.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -54,42 +54,42 @@ }; // construct/copy/destruct - cached_node_allocator(segment_manager *); - cached_node_allocator(const cached_node_allocator &); + cached_node_allocator(segment_manager *); + cached_node_allocator(const cached_node_allocator &); template<typename T2> - cached_node_allocator(const cached_node_allocator< T2, SegmentManager, NodesPerBlock > &); + cached_node_allocator(const cached_node_allocator< T2, SegmentManager, NodesPerBlock > &); template<typename T2, typename SegmentManager2, std::size_t N2> cached_node_allocator & - operator=(const cached_node_allocator< T2, SegmentManager2, N2 > &); - cached_node_allocator & operator=(const cached_node_allocator &); - ~cached_node_allocator(); + operator=(const cached_node_allocator< T2, SegmentManager2, N2 > &); + cached_node_allocator & operator=(const cached_node_allocator &); + ~cached_node_allocator(); - // public member functions - node_pool_t * get_node_pool() const; - segment_manager * get_segment_manager() const; - size_type max_size() const; - pointer allocate(size_type, cvoid_pointer = 0); - void deallocate(const pointer &, size_type); - void deallocate_free_blocks(); - pointer address(reference) const; - const_pointer address(const_reference) const; - void construct(const pointer &, const_reference); - void destroy(const pointer &); - size_type size(const pointer &) const; - pointer allocation_command(boost::interprocess::allocation_type, size_type, + // public member functions + node_pool_t * get_node_pool() const; + segment_manager * get_segment_manager() const; + size_type max_size() const; + pointer allocate(size_type, cvoid_pointer = 0); + void deallocate(const pointer &, size_type); + void deallocate_free_blocks(); + pointer address(reference) const; + const_pointer address(const_reference) const; + void construct(const pointer &, const_reference); + void destroy(const pointer &); + size_type size(const pointer &) const; + pointer allocation_command(boost::interprocess::allocation_type, size_type, size_type &, pointer &); - void allocate_many(size_type, size_type, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &); - pointer allocate_one(); - multiallocation_chain allocate_individual(size_type); - void deallocate_one(const pointer &); - void deallocate_individual(multiallocation_chain); - void set_max_cached_nodes(size_type); - size_type get_max_cached_nodes() const; + void allocate_many(size_type, size_type, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &); + pointer allocate_one(); + multiallocation_chain allocate_individual(size_type); + void deallocate_one(const pointer &); + void deallocate_individual(multiallocation_chain); + void set_max_cached_nodes(size_type); + size_type get_max_cached_nodes() const; - // friend functions - friend void swap(self_t &, self_t &); + // friend functions + friend void swap(self_t &, self_t &); };

    Description

    @@ -100,131 +100,131 @@ construct/copy/destruct
    1. -
      cached_node_allocator(segment_manager * segment_mngr);
      +
      cached_node_allocator(segment_manager * segment_mngr);

      Constructor from a segment manager. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    2. -
      cached_node_allocator(const cached_node_allocator & other);
      +
      cached_node_allocator(const cached_node_allocator & other);

      Copy constructor from other cached_node_allocator. Increments the reference count of the associated node pool. Never throws

    3. template<typename T2> 
      -  cached_node_allocator(const cached_node_allocator< T2, SegmentManager, NodesPerBlock > & other);
      + cached_node_allocator(const cached_node_allocator< T2, SegmentManager, NodesPerBlock > & other);

      Copy constructor from related cached_node_allocator. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    4. template<typename T2, typename SegmentManager2, std::size_t N2> 
         cached_node_allocator & 
      -  operator=(const cached_node_allocator< T2, SegmentManager2, N2 > &);
      + operator=(const cached_node_allocator< T2, SegmentManager2, N2 > &);

      Not assignable from related cached_node_allocator

    5. -
      cached_node_allocator & operator=(const cached_node_allocator &);
      +
      cached_node_allocator & operator=(const cached_node_allocator &);

      Not assignable from other cached_node_allocator

    6. -
      ~cached_node_allocator();
      +
      ~cached_node_allocator();

      Destructor, removes node_pool_t from memory if its reference count reaches to zero. Never throws

    -cached_node_allocator public member functions

    +cached_node_allocator public member functions
    1. -
      node_pool_t * get_node_pool() const;
      +
      node_pool_t * get_node_pool() const;

      Returns a pointer to the node pool. Never throws

    2. -
      segment_manager * get_segment_manager() const;
      +
      segment_manager * get_segment_manager() const;

      Returns the segment manager. Never throws

    3. -
      size_type max_size() const;
      +
      size_type max_size() const;

      Returns the number of elements that could be allocated. Never throws

    4. -
      pointer allocate(size_type count, cvoid_pointer hint = 0);
      +
      pointer allocate(size_type count, cvoid_pointer hint = 0);

      Allocate memory for an array of count elements. Throws boost::interprocess::bad_alloc if there is no enough memory

    5. -
      void deallocate(const pointer & ptr, size_type count);
      +
      void deallocate(const pointer & ptr, size_type count);

      Deallocate allocated memory. Never throws

    6. -
      void deallocate_free_blocks();
      +
      void deallocate_free_blocks();

      Deallocates all free blocks of the pool

    7. -
      pointer address(reference value) const;
      +
      pointer address(reference value) const;

      Returns address of mutable object. Never throws

    8. -
      const_pointer address(const_reference value) const;
      +
      const_pointer address(const_reference value) const;

      Returns address of non mutable object. Never throws

    9. -
      void construct(const pointer & ptr, const_reference v);
      +
      void construct(const pointer & ptr, const_reference v);

      Default construct an object. Throws if T's default constructor throws

    10. -
      void destroy(const pointer & ptr);
      +
      void destroy(const pointer & ptr);

      Destroys object. Throws if object's destructor throws

    11. -
      size_type size(const pointer & p) const;
      +
      size_type size(const pointer & p) const;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.

    12. -
    13. pointer allocation_command(boost::interprocess::allocation_type command, 
      +
    14. pointer allocation_command(boost::interprocess::allocation_type command, 
                                  size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);
    15. -
      void allocate_many(size_type elem_size, size_type num_elements, 
      +
      void allocate_many(size_type elem_size, size_type num_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    16. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated

    17. -
      void deallocate_many(multiallocation_chain & chain);
      +
      void deallocate_many(multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    18. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc if there is no enough memory

    19. -
      multiallocation_chain allocate_individual(size_type num_elements);
      +
      multiallocation_chain allocate_individual(size_type num_elements);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    20. -
      void deallocate_one(const pointer & p);
      +
      void deallocate_one(const pointer & p);

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

    21. -
      void deallocate_individual(multiallocation_chain it);
      +
      void deallocate_individual(multiallocation_chain it);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    22. -
      void set_max_cached_nodes(size_type newmax);
      +
      void set_max_cached_nodes(size_type newmax);

      Sets the new max cached nodes value. This can provoke deallocations if "newmax" is less than current cached nodes. Never throws

    23. -
      size_type get_max_cached_nodes() const;
      +
      size_type get_max_cached_nodes() const;

      Returns the max cached nodes parameter. Never throws

    -cached_node_allocator friend functions

    +cached_node_allocator friend functions
    1. -
      friend void swap(self_t & alloc1, self_t & alloc2);
      +
      friend void swap(self_t & alloc1, self_t & alloc2);

      Swaps allocators. Does not throw. If each allocator is placed in a different memory segment, the result is undefined.

    @@ -240,7 +240,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/cached_node_allocator/rebind.html b/doc/html/boost/interprocess/cached_node_allocator/rebind.html index eb656a602f..b64b186e70 100644 --- a/doc/html/boost/interprocess/cached_node_allocator/rebind.html +++ b/doc/html/boost/interprocess/cached_node_allocator/rebind.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +53,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/defer_lock_type.html b/doc/html/boost/interprocess/defer_lock_type.html index e54c8f873c..6db72b633e 100644 --- a/doc/html/boost/interprocess/defer_lock_type.html +++ b/doc/html/boost/interprocess/defer_lock_type.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -46,7 +46,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/deleter.html b/doc/html/boost/interprocess/deleter.html index 96467baf92..682a61a620 100644 --- a/doc/html/boost/interprocess/deleter.html +++ b/doc/html/boost/interprocess/deleter.html @@ -39,10 +39,10 @@ typedef boost::intrusive::pointer_traits< typename SegmentManager::void_pointer >::template rebind_pointer< T >::type pointer; // construct/copy/destruct - deleter(segment_manager_pointer); + deleter(segment_manager_pointer); - // public member functions - void operator()(const pointer &); + // public member functions + void operator()(const pointer &); };

    Description

    @@ -53,12 +53,12 @@ deleter public construct/copy/destruct -
    1. deleter(segment_manager_pointer pmngr);
    +
    1. deleter(segment_manager_pointer pmngr);

    -deleter public member functions

    -
    1. void operator()(const pointer & p);
    +deleter public member functions +
    1. void operator()(const pointer & p);
    diff --git a/doc/html/boost/interprocess/enable_shared_from_this.html b/doc/html/boost/interprocess/enable_shared_from_this.html index b3391906e3..412e1d0a93 100644 --- a/doc/html/boost/interprocess/enable_shared_from_this.html +++ b/doc/html/boost/interprocess/enable_shared_from_this.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -36,19 +36,19 @@ class enable_shared_from_this { public: - // public member functions - shared_ptr< T, A, D > shared_from_this(); - shared_ptr< T const, A, D > shared_from_this() const; + // public member functions + shared_ptr< T, A, D > shared_from_this(); + shared_ptr< T const, A, D > shared_from_this() const; };

    Description

    This class is used as a base class that allows a shared_ptr to the current object to be obtained from within a member function. enable_shared_from_this defines two member functions called shared_from_this that return a shared_ptr<T> and shared_ptr<T const>, depending on constness, to this.

    -enable_shared_from_this public member functions

    +enable_shared_from_this public member functions
      -
    1. shared_ptr< T, A, D > shared_from_this();
    2. -
    3. shared_ptr< T const, A, D > shared_from_this() const;
    4. +
    5. shared_ptr< T, A, D > shared_from_this();
    6. +
    7. shared_ptr< T const, A, D > shared_from_this() const;
    @@ -63,7 +63,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/file_lock.html b/doc/html/boost/interprocess/file_lock.html index 9c6bb6a19a..c64d45c953 100644 --- a/doc/html/boost/interprocess/file_lock.html +++ b/doc/html/boost/interprocess/file_lock.html @@ -36,22 +36,22 @@ class file_lock { public: // construct/copy/destruct - file_lock(); - file_lock(const char *); - file_lock(file_lock &&); - file_lock & operator=(file_lock &&); - ~file_lock(); + file_lock(); + file_lock(const char *); + file_lock(file_lock &&); + file_lock & operator=(file_lock &&); + ~file_lock(); - // public member functions - void swap(file_lock &); - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); - void unlock(); - void lock_sharable(); - bool try_lock_sharable(); - bool timed_lock_sharable(const boost::posix_time::ptime &); - void unlock_sharable(); + // public member functions + void swap(file_lock &); + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); + void unlock(); + void lock_sharable(); + bool try_lock_sharable(); + bool timed_lock_sharable(const boost::posix_time::ptime &); + void unlock_sharable(); };

    Description

    @@ -63,63 +63,63 @@ construct/copy/destruct
    1. -
      file_lock();
      +
      file_lock();

      Constructs an empty file mapping. Does not throw

    2. -
      file_lock(const char * name);
      +
      file_lock(const char * name);

      Opens a file lock. Throws interprocess_exception if the file does not exist or there are no operating system resources.

    3. -
      file_lock(file_lock && moved);
      +
      file_lock(file_lock && moved);

      Moves the ownership of "moved"'s file mapping object to *this. After the call, "moved" does not represent any file mapping object. Does not throw

    4. -
      file_lock & operator=(file_lock && moved);
      +
      file_lock & operator=(file_lock && moved);

      Moves the ownership of "moved"'s file mapping to *this. After the call, "moved" does not represent any file mapping. Does not throw

    5. -
      ~file_lock();
      Closes a file lock. Does not throw.
    6. +
      ~file_lock();
      Closes a file lock. Does not throw.

    -file_lock public member functions

    +file_lock public member functions
    1. -
      void swap(file_lock & other);
      +
      void swap(file_lock & other);

      Swaps two file_locks. Does not throw.

    2. -
      void lock();
      +
      void lock();

      Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive, or sharable ownership of the mutex, it waits until it can obtain the ownership. Throws: interprocess_exception on error.

    3. -
      bool try_lock();
      +
      bool try_lock();

      Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting. If no other thread has exclusive, or sharable ownership of the mutex this succeeds. Returns: If it can acquire exclusive ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

    4. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock(const boost::posix_time::ptime & abs_time);

      Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive, or sharable ownership of the mutex or abs_time is reached. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

    5. -
      void unlock();
      +
      void unlock();

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The calling thread releases the exclusive ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

    6. -
      void lock_sharable();
      +
      void lock_sharable();

      Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

    7. -
      bool try_lock_sharable();
      +
      bool try_lock_sharable();

      Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting. If no other thread has exclusive ownership of the mutex this succeeds. Returns: If it can acquire sharable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

    8. -
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);

      Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached. Returns: If acquires sharable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

    9. -
      void unlock_sharable();
      +
      void unlock_sharable();

      Precondition: The thread must have sharable ownership of the mutex. Effects: The calling thread releases the sharable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

    diff --git a/doc/html/boost/interprocess/file_mapping.html b/doc/html/boost/interprocess/file_mapping.html index be3cb8a7bf..b39b70d31f 100644 --- a/doc/html/boost/interprocess/file_mapping.html +++ b/doc/html/boost/interprocess/file_mapping.html @@ -36,20 +36,20 @@ class file_mapping { public: // construct/copy/destruct - file_mapping(); - file_mapping(const char *, mode_t); - file_mapping(file_mapping &&); - file_mapping & operator=(file_mapping &&); - ~file_mapping(); + file_mapping(); + file_mapping(const char *, mode_t); + file_mapping(file_mapping &&); + file_mapping & operator=(file_mapping &&); + ~file_mapping(); - // public member functions - void swap(file_mapping &); - mode_t get_mode() const; - mapping_handle_t get_mapping_handle() const; - const char * get_name() const; + // public member functions + void swap(file_mapping &); + mode_t get_mode() const; + mapping_handle_t get_mapping_handle() const; + const char * get_name() const; - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -61,54 +61,54 @@ construct/copy/destruct
    1. -
      file_mapping();
      +
      file_mapping();

      Constructs an empty file mapping. Does not throw

    2. -
      file_mapping(const char * filename, mode_t mode);
      +
      file_mapping(const char * filename, mode_t mode);

      Opens a file mapping of file "filename", starting in offset "file_offset", and the mapping's size will be "size". The mapping can be opened for read-only "read_only" or read-write "read_write" modes. Throws interprocess_exception on error.

    3. -
      file_mapping(file_mapping && moved);
      +
      file_mapping(file_mapping && moved);

      Moves the ownership of "moved"'s file mapping object to *this. After the call, "moved" does not represent any file mapping object. Does not throw

    4. -
      file_mapping & operator=(file_mapping && moved);
      +
      file_mapping & operator=(file_mapping && moved);

      Moves the ownership of "moved"'s file mapping to *this. After the call, "moved" does not represent any file mapping. Does not throw

    5. -
      ~file_mapping();
      +
      ~file_mapping();

      Destroys the file mapping. All mapped regions created from this are still valid. Does not throw

    -file_mapping public member functions

    +file_mapping public member functions
    1. -
      void swap(file_mapping & other);
      +
      void swap(file_mapping & other);

      Swaps to file_mappings. Does not throw.

    2. -
      mode_t get_mode() const;
      +
      mode_t get_mode() const;

      Returns access mode used in the constructor

    3. -
      mapping_handle_t get_mapping_handle() const;
      +
      mapping_handle_t get_mapping_handle() const;

      Obtains the mapping handle to be used with mapped_region

    4. -
      const char * get_name() const;
      +
      const char * get_name() const;

      Returns the name of the file used in the constructor.

    -file_mapping public static functions

    +file_mapping public static functions
    1. -
      static bool remove(const char * filename);
      +
      static bool remove(const char * filename);

      Removes the file named "filename" even if it's been memory mapped. Returns true on success. The function might fail in some operating systems if the file is being used other processes and no deletion permission was shared.

    diff --git a/doc/html/boost/interprocess/fixed_managed__idp39630976.html b/doc/html/boost/interprocess/fixed_managed__idp39630976.html new file mode 100644 index 0000000000..5407859d31 --- /dev/null +++ b/doc/html/boost/interprocess/fixed_managed__idp39630976.html @@ -0,0 +1,55 @@ + + + + +Type definition fixed_managed_shared_memory + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Type definition fixed_managed_shared_memory

    +

    fixed_managed_shared_memory

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/managed_shared_memory.hpp>
    +
    +
    +typedef basic_managed_shared_memory< char,rbtree_best_fit< mutex_family, void * >,iset_index > fixed_managed_shared_memory;
    +
    +

    Description

    +

    Typedef for a default basic_managed_shared_memory of narrow characters to be placed in a fixed address

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/fixed_managed__idp55536416.html b/doc/html/boost/interprocess/fixed_managed__idp55536416.html deleted file mode 100644 index 4bf2a60460..0000000000 --- a/doc/html/boost/interprocess/fixed_managed__idp55536416.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Type definition fixed_managed_shared_memory - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Type definition fixed_managed_shared_memory

    -

    fixed_managed_shared_memory

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/managed_shared_memory.hpp>
    -
    -
    -typedef basic_managed_shared_memory< char,rbtree_best_fit< mutex_family, void * >,iset_index > fixed_managed_shared_memory;
    -
    -

    Description

    -

    Typedef for a default basic_managed_shared_memory of narrow characters to be placed in a fixed address

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/flat_map_index.html b/doc/html/boost/interprocess/flat_map_index.html index ba672a81cf..bca3ba540e 100644 --- a/doc/html/boost/interprocess/flat_map_index.html +++ b/doc/html/boost/interprocess/flat_map_index.html @@ -36,11 +36,11 @@ class flat_map_index : public flat_map_index_aux::index_t< MapConfig > { public: // construct/copy/destruct - flat_map_index(segment_manager_base *); + flat_map_index(segment_manager_base *); - // public member functions - void reserve(typename segment_manager_base::size_type); - void shrink_to_fit(); + // public member functions + void reserve(typename segment_manager_base::size_type); + void shrink_to_fit(); };

    Description

    @@ -51,16 +51,16 @@ public construct/copy/destruct
    1. -
      flat_map_index(segment_manager_base * segment_mngr);
      Constructor. Takes a pointer to the segment manager. Can throw.
    +
    flat_map_index(segment_manager_base * segment_mngr);
    Constructor. Takes a pointer to the segment manager. Can throw.

    -flat_map_index public member functions

    +flat_map_index public member functions
    1. -
      void reserve(typename segment_manager_base::size_type n);
      This reserves memory to optimize the insertion of n elements in the index.
    2. +
      void reserve(typename segment_manager_base::size_type n);
      This reserves memory to optimize the insertion of n elements in the index.
    3. -
      void shrink_to_fit();
      This frees all unnecessary memory.
    4. +
      void shrink_to_fit();
      This frees all unnecessary memory.
    diff --git a/doc/html/boost/interprocess/interprocess_condition.html b/doc/html/boost/interprocess/interprocess_condition.html index 89a7fde719..1ce5f64064 100644 --- a/doc/html/boost/interprocess/interprocess_condition.html +++ b/doc/html/boost/interprocess/interprocess_condition.html @@ -36,17 +36,17 @@ class interprocess_condition { public: // construct/copy/destruct - interprocess_condition(); - ~interprocess_condition(); + interprocess_condition(); + ~interprocess_condition(); - // public member functions - void notify_one(); - void notify_all(); - template<typename L> void wait(L &); - template<typename L, typename Pr> void wait(L &, Pr); - template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &); + // public member functions + void notify_one(); + void notify_all(); + template<typename L> void wait(L &); + template<typename L, typename Pr> void wait(L &, Pr); + template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &); template<typename L, typename Pr> - bool timed_wait(L &, const boost::posix_time::ptime &, Pr); + bool timed_wait(L &, const boost::posix_time::ptime &, Pr); };

    Description

    @@ -59,41 +59,41 @@ construct/copy/destruct
    1. -
      interprocess_condition();
      Constructs a interprocess_condition. On error throws interprocess_exception.
    2. +
      interprocess_condition();
      Constructs a interprocess_condition. On error throws interprocess_exception.
    3. -
      ~interprocess_condition();
      +
      ~interprocess_condition();

      Destroys *this liberating system resources.

    -interprocess_condition public member functions

    +interprocess_condition public member functions
    1. -
      void notify_one();
      +
      void notify_one();

      If there is a thread waiting on *this, change that thread's state to ready. Otherwise there is no effect.

    2. -
      void notify_all();
      +
      void notify_all();

      Change the state of all threads waiting on *this to ready. If there are no waiting threads, notify_all() has no effect.

    3. -
      template<typename L> void wait(L & lock);
      +
      template<typename L> void wait(L & lock);

      Releases the lock on the interprocess_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), and then reacquires the lock.

    4. -
      template<typename L, typename Pr> void wait(L & lock, Pr pred);
      +
      template<typename L, typename Pr> void wait(L & lock, Pr pred);

      The same as: while (!pred()) wait(lock)

    5. template<typename L> 
      -  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time);
      + bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time);

      Releases the lock on the interprocess_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), or until time abs_time is reached, and then reacquires the lock. Returns: false if time abs_time is reached, otherwise true.

    6. template<typename L, typename Pr> 
      -  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time, 
      +  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time, 
                         Pr pred);

      The same as: while (!pred()) { if (!timed_wait(lock, abs_time)) return pred(); } return true;

    7. diff --git a/doc/html/boost/interprocess/interprocess_condition_any.html b/doc/html/boost/interprocess/interprocess_condition_any.html index 6f3165c06d..bf2fd52a85 100644 --- a/doc/html/boost/interprocess/interprocess_condition_any.html +++ b/doc/html/boost/interprocess/interprocess_condition_any.html @@ -36,17 +36,17 @@ class interprocess_condition_any { public: // construct/copy/destruct - interprocess_condition_any(); - ~interprocess_condition_any(); + interprocess_condition_any(); + ~interprocess_condition_any(); - // public member functions - void notify_one(); - void notify_all(); - template<typename L> void wait(L &); - template<typename L, typename Pr> void wait(L &, Pr); - template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &); + // public member functions + void notify_one(); + void notify_all(); + template<typename L> void wait(L &); + template<typename L, typename Pr> void wait(L &, Pr); + template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &); template<typename L, typename Pr> - bool timed_wait(L &, const boost::posix_time::ptime &, Pr); + bool timed_wait(L &, const boost::posix_time::ptime &, Pr); };

    Description

    @@ -60,41 +60,41 @@ construct/copy/destruct
    1. -
      interprocess_condition_any();
      Constructs a interprocess_condition_any. On error throws interprocess_exception.
    2. +
      interprocess_condition_any();
      Constructs a interprocess_condition_any. On error throws interprocess_exception.
    3. -
      ~interprocess_condition_any();
      +
      ~interprocess_condition_any();

      Destroys *this liberating system resources.

    -interprocess_condition_any public member functions

    +interprocess_condition_any public member functions
    1. -
      void notify_one();
      +
      void notify_one();

      If there is a thread waiting on *this, change that thread's state to ready. Otherwise there is no effect.

    2. -
      void notify_all();
      +
      void notify_all();

      Change the state of all threads waiting on *this to ready. If there are no waiting threads, notify_all() has no effect.

    3. -
      template<typename L> void wait(L & lock);
      +
      template<typename L> void wait(L & lock);

      Releases the lock on the interprocess_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), and then reacquires the lock.

    4. -
      template<typename L, typename Pr> void wait(L & lock, Pr pred);
      +
      template<typename L, typename Pr> void wait(L & lock, Pr pred);

      The same as: while (!pred()) wait(lock)

    5. template<typename L> 
      -  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time);
      + bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time);

      Releases the lock on the interprocess_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), or until time abs_time is reached, and then reacquires the lock. Returns: false if time abs_time is reached, otherwise true.

    6. template<typename L, typename Pr> 
      -  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time, 
      +  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time, 
                         Pr pred);

      The same as: while (!pred()) { if (!timed_wait(lock, abs_time)) return pred(); } return true;

    7. diff --git a/doc/html/boost/interprocess/interprocess_exception.html b/doc/html/boost/interprocess/interprocess_exception.html index 5fe886f1d4..524b622db5 100644 --- a/doc/html/boost/interprocess/interprocess_exception.html +++ b/doc/html/boost/interprocess/interprocess_exception.html @@ -36,14 +36,14 @@ class interprocess_exception : public exception { public: // construct/copy/destruct - interprocess_exception(const char *); - interprocess_exception(const error_info &, const char * = 0); - ~interprocess_exception(); + interprocess_exception(const char *); + interprocess_exception(const error_info &, const char * = 0); + ~interprocess_exception(); - // public member functions - virtual const char * what() const; - native_error_t get_native_error() const; - error_code_t get_error_code() const; + // public member functions + virtual const char * what() const; + native_error_t get_native_error() const; + error_code_t get_error_code() const; };

    Description

    @@ -54,18 +54,18 @@ public construct/copy/destruct
      -
    1. interprocess_exception(const char * err);
    2. -
    3. interprocess_exception(const error_info & err_info, const char * str = 0);
    4. -
    5. ~interprocess_exception();
    6. +
    7. interprocess_exception(const char * err);
    8. +
    9. interprocess_exception(const error_info & err_info, const char * str = 0);
    10. +
    11. ~interprocess_exception();

    -interprocess_exception public member functions

    +interprocess_exception public member functions
      -
    1. virtual const char * what() const;
    2. -
    3. native_error_t get_native_error() const;
    4. -
    5. error_code_t get_error_code() const;
    6. +
    7. virtual const char * what() const;
    8. +
    9. native_error_t get_native_error() const;
    10. +
    11. error_code_t get_error_code() const;
    diff --git a/doc/html/boost/interprocess/interprocess_mutex.html b/doc/html/boost/interprocess/interprocess_mutex.html index 5f6caf267e..37c3f5db57 100644 --- a/doc/html/boost/interprocess/interprocess_mutex.html +++ b/doc/html/boost/interprocess/interprocess_mutex.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -36,14 +36,14 @@ class interprocess_mutex { public: // construct/copy/destruct - interprocess_mutex(); - ~interprocess_mutex(); + interprocess_mutex(); + ~interprocess_mutex(); - // public member functions - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); - void unlock(); + // public member functions + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); + void unlock(); };

    Description

    @@ -55,33 +55,33 @@ construct/copy/destruct
    1. -
      interprocess_mutex();
      +
      interprocess_mutex();

      Constructor. Throws interprocess_exception on error.

    2. -
      ~interprocess_mutex();
      +
      ~interprocess_mutex();

      Destructor. If any process uses the mutex after the destructor is called the result is undefined. Does not throw.

    -interprocess_mutex public member functions

    +interprocess_mutex public member functions
    1. -
      void lock();
      +
      void lock();

      Effects: The calling thread tries to obtain ownership of the mutex, and if another thread has ownership of the mutex, it waits until it can obtain the ownership. If a thread takes ownership of the mutex the mutex must be unlocked by the same mutex. Throws: interprocess_exception on error.

    2. -
      bool try_lock();
      +
      bool try_lock();

      Effects: The calling thread tries to obtain ownership of the mutex, and if another thread has ownership of the mutex returns immediately. Returns: If the thread acquires ownership of the mutex, returns true, if the another thread has ownership of the mutex, returns false. Throws: interprocess_exception on error.

    3. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock(const boost::posix_time::ptime & abs_time);

      Effects: The calling thread will try to obtain exclusive ownership of the mutex if it can do so in until the specified time is reached. If the mutex supports recursive locking, the mutex must be unlocked the same number of times it is locked. Returns: If the thread acquires ownership of the mutex, returns true, if the timeout expires returns false. Throws: interprocess_exception on error.

    4. -
      void unlock();
      +
      void unlock();

      Effects: The calling thread releases the exclusive ownership of the mutex. Throws: interprocess_exception on error.

    @@ -98,7 +98,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/interprocess_r_idp40896864.html b/doc/html/boost/interprocess/interprocess_r_idp40896864.html new file mode 100644 index 0000000000..9ae0748076 --- /dev/null +++ b/doc/html/boost/interprocess/interprocess_r_idp40896864.html @@ -0,0 +1,104 @@ + + + + +Class interprocess_recursive_mutex + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Class interprocess_recursive_mutex

    +

    boost::interprocess::interprocess_recursive_mutex

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/sync/interprocess_recursive_mutex.hpp>
    +
    +
    +class interprocess_recursive_mutex {
    +public:
    +  // construct/copy/destruct
    +  interprocess_recursive_mutex();
    +  ~interprocess_recursive_mutex();
    +
    +  // public member functions
    +  void lock();
    +  bool try_lock();
    +  bool timed_lock(const boost::posix_time::ptime &);
    +  void unlock();
    +};
    +
    +

    Description

    +

    Wraps a interprocess_mutex that can be placed in shared memory and can be shared between processes. Allows several locking calls by the same process. Allows timed lock tries

    +
    +

    +interprocess_recursive_mutex + public + construct/copy/destruct

    +
      +
    1. +
      interprocess_recursive_mutex();
      +

      Constructor. Throws interprocess_exception on error.

      +
    2. +
    3. +
      ~interprocess_recursive_mutex();
      +

      Destructor. If any process uses the mutex after the destructor is called the result is undefined. Does not throw.

      +
    4. +
    +
    +
    +

    +interprocess_recursive_mutex public member functions

    +
      +
    1. +
      void lock();
      +

      Effects: The calling thread tries to obtain ownership of the mutex, and if another thread has ownership of the mutex, it waits until it can obtain the ownership. If a thread takes ownership of the mutex the mutex must be unlocked by the same mutex. The mutex must be unlocked the same number of times it is locked. Throws: interprocess_exception on error.

      +
    2. +
    3. +
      bool try_lock();
      +

      Tries to lock the interprocess_mutex, returns false when interprocess_mutex is already locked, returns true when success. The mutex must be unlocked the same number of times it is locked. Throws: interprocess_exception if a severe error is found

      +
    4. +
    5. +
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +

      Tries to lock the interprocess_mutex, if interprocess_mutex can't be locked before abs_time time, returns false. The mutex must be unlocked the same number of times it is locked. Throws: interprocess_exception if a severe error is found

      +
    6. +
    7. +
      void unlock();
      +

      Effects: The calling thread releases the exclusive ownership of the mutex. If the mutex supports recursive locking, the mutex must be unlocked the same number of times it is locked. Throws: interprocess_exception on error.

      +
    8. +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/interprocess_r_idp56793568.html b/doc/html/boost/interprocess/interprocess_r_idp56793568.html deleted file mode 100644 index 2c5d1ee17d..0000000000 --- a/doc/html/boost/interprocess/interprocess_r_idp56793568.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - -Class interprocess_recursive_mutex - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class interprocess_recursive_mutex

    -

    boost::interprocess::interprocess_recursive_mutex

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/sync/interprocess_recursive_mutex.hpp>
    -
    -
    -class interprocess_recursive_mutex {
    -public:
    -  // construct/copy/destruct
    -  interprocess_recursive_mutex();
    -  ~interprocess_recursive_mutex();
    -
    -  // public member functions
    -  void lock();
    -  bool try_lock();
    -  bool timed_lock(const boost::posix_time::ptime &);
    -  void unlock();
    -};
    -
    -

    Description

    -

    Wraps a interprocess_mutex that can be placed in shared memory and can be shared between processes. Allows several locking calls by the same process. Allows timed lock tries

    -
    -

    -interprocess_recursive_mutex - public - construct/copy/destruct

    -
      -
    1. -
      interprocess_recursive_mutex();
      -

      Constructor. Throws interprocess_exception on error.

      -
    2. -
    3. -
      ~interprocess_recursive_mutex();
      -

      Destructor. If any process uses the mutex after the destructor is called the result is undefined. Does not throw.

      -
    4. -
    -
    -
    -

    -interprocess_recursive_mutex public member functions

    -
      -
    1. -
      void lock();
      -

      Effects: The calling thread tries to obtain ownership of the mutex, and if another thread has ownership of the mutex, it waits until it can obtain the ownership. If a thread takes ownership of the mutex the mutex must be unlocked by the same mutex. The mutex must be unlocked the same number of times it is locked. Throws: interprocess_exception on error.

      -
    2. -
    3. -
      bool try_lock();
      -

      Tries to lock the interprocess_mutex, returns false when interprocess_mutex is already locked, returns true when success. The mutex must be unlocked the same number of times it is locked. Throws: interprocess_exception if a severe error is found

      -
    4. -
    5. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      -

      Tries to lock the interprocess_mutex, if interprocess_mutex can't be locked before abs_time time, returns false. The mutex must be unlocked the same number of times it is locked. Throws: interprocess_exception if a severe error is found

      -
    6. -
    7. -
      void unlock();
      -

      Effects: The calling thread releases the exclusive ownership of the mutex. If the mutex supports recursive locking, the mutex must be unlocked the same number of times it is locked. Throws: interprocess_exception on error.

      -
    8. -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/interprocess_s_idp40942256.html b/doc/html/boost/interprocess/interprocess_s_idp40942256.html new file mode 100644 index 0000000000..a4d8507bcc --- /dev/null +++ b/doc/html/boost/interprocess/interprocess_s_idp40942256.html @@ -0,0 +1,128 @@ + + + + +Class interprocess_sharable_mutex + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Class interprocess_sharable_mutex

    +

    boost::interprocess::interprocess_sharable_mutex

    +
    +

    Synopsis

    + +
    +

    Description

    +

    Wraps a interprocess_sharable_mutex that can be placed in shared memory and can be shared between processes. Allows timed lock tries

    +
    +

    +interprocess_sharable_mutex + public + construct/copy/destruct

    +
      +
    1. interprocess_sharable_mutex(const interprocess_sharable_mutex &);
    2. +
    3. +
      interprocess_sharable_mutex();
      +

      Constructs the sharable lock. Throws interprocess_exception on error.

      +
    4. +
    5. interprocess_sharable_mutex & operator=(const interprocess_sharable_mutex &);
    6. +
    7. +
      ~interprocess_sharable_mutex();
      +

      Destroys the sharable lock. Does not throw.

      +
    8. +
    +
    +
    +

    +interprocess_sharable_mutex public member functions

    +
      +
    1. +
      void lock();
      +

      Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive or sharable ownership of the mutex, it waits until it can obtain the ownership. Throws: interprocess_exception on error.

      +
    2. +
    3. +
      bool try_lock();
      +

      Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting. If no other thread has exclusive or sharable ownership of the mutex this succeeds. Returns: If it can acquire exclusive ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      +
    4. +
    5. +
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +

      Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive or sharable ownership of the mutex or abs_time is reached. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      +
    6. +
    7. +
      void unlock();
      +

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The calling thread releases the exclusive ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      +
    8. +
    9. +
      void lock_sharable();
      +

      Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

      +
    10. +
    11. +
      bool try_lock_sharable();
      +

      Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting. If no other thread has exclusive ownership of the mutex this succeeds. Returns: If it can acquire sharable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      +
    12. +
    13. +
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);
      +

      Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached. Returns: If acquires sharable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      +
    14. +
    15. +
      void unlock_sharable();
      +

      Precondition: The thread must have sharable ownership of the mutex. Effects: The calling thread releases the sharable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      +
    16. +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/interprocess_s_idp56838960.html b/doc/html/boost/interprocess/interprocess_s_idp56838960.html deleted file mode 100644 index 931f333ab9..0000000000 --- a/doc/html/boost/interprocess/interprocess_s_idp56838960.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -Class interprocess_sharable_mutex - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class interprocess_sharable_mutex

    -

    boost::interprocess::interprocess_sharable_mutex

    -
    -

    Synopsis

    - -
    -

    Description

    -

    Wraps a interprocess_sharable_mutex that can be placed in shared memory and can be shared between processes. Allows timed lock tries

    -
    -

    -interprocess_sharable_mutex - public - construct/copy/destruct

    -
      -
    1. interprocess_sharable_mutex(const interprocess_sharable_mutex &);
    2. -
    3. -
      interprocess_sharable_mutex();
      -

      Constructs the sharable lock. Throws interprocess_exception on error.

      -
    4. -
    5. interprocess_sharable_mutex & operator=(const interprocess_sharable_mutex &);
    6. -
    7. -
      ~interprocess_sharable_mutex();
      -

      Destroys the sharable lock. Does not throw.

      -
    8. -
    -
    -
    -

    -interprocess_sharable_mutex public member functions

    -
      -
    1. -
      void lock();
      -

      Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive or sharable ownership of the mutex, it waits until it can obtain the ownership. Throws: interprocess_exception on error.

      -
    2. -
    3. -
      bool try_lock();
      -

      Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting. If no other thread has exclusive or sharable ownership of the mutex this succeeds. Returns: If it can acquire exclusive ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      -
    4. -
    5. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      -

      Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive or sharable ownership of the mutex or abs_time is reached. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      -
    6. -
    7. -
      void unlock();
      -

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The calling thread releases the exclusive ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      -
    8. -
    9. -
      void lock_sharable();
      -

      Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

      -
    10. -
    11. -
      bool try_lock_sharable();
      -

      Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting. If no other thread has exclusive ownership of the mutex this succeeds. Returns: If it can acquire sharable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      -
    12. -
    13. -
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);
      -

      Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached. Returns: If acquires sharable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      -
    14. -
    15. -
      void unlock_sharable();
      -

      Precondition: The thread must have sharable ownership of the mutex. Effects: The calling thread releases the sharable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      -
    16. -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/interprocess_semaphore.html b/doc/html/boost/interprocess/interprocess_semaphore.html index a458054967..64acddc323 100644 --- a/doc/html/boost/interprocess/interprocess_semaphore.html +++ b/doc/html/boost/interprocess/interprocess_semaphore.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -36,14 +36,14 @@ class interprocess_semaphore { public: // construct/copy/destruct - interprocess_semaphore(unsigned int); - ~interprocess_semaphore(); + interprocess_semaphore(unsigned int); + ~interprocess_semaphore(); - // public member functions - void post(); - void wait(); - bool try_wait(); - bool timed_wait(const boost::posix_time::ptime &); + // public member functions + void post(); + void wait(); + bool try_wait(); + bool timed_wait(const boost::posix_time::ptime &); };

    Description

    @@ -55,33 +55,33 @@ construct/copy/destruct
    1. -
      interprocess_semaphore(unsigned int initialCount);
      +
      interprocess_semaphore(unsigned int initialCount);

      Creates a interprocess_semaphore with the given initial count. interprocess_exception if there is an error.

    2. -
      ~interprocess_semaphore();
      +
      ~interprocess_semaphore();

      Destroys the interprocess_semaphore. Does not throw

    -interprocess_semaphore public member functions

    +interprocess_semaphore public member functions
    1. -
      void post();
      +
      void post();

      Increments the interprocess_semaphore count. If there are processes/threads blocked waiting for the interprocess_semaphore, then one of these processes will return successfully from its wait function. If there is an error an interprocess_exception exception is thrown.

    2. -
      void wait();
      +
      void wait();

      Decrements the interprocess_semaphore. If the interprocess_semaphore value is not greater than zero, then the calling process/thread blocks until it can decrement the counter. If there is an error an interprocess_exception exception is thrown.

    3. -
      bool try_wait();
      +
      bool try_wait();

      Decrements the interprocess_semaphore if the interprocess_semaphore's value is greater than zero and returns true. If the value is not greater than zero returns false. If there is an error an interprocess_exception exception is thrown.

    4. -
      bool timed_wait(const boost::posix_time::ptime & abs_time);
      +
      bool timed_wait(const boost::posix_time::ptime & abs_time);

      Decrements the interprocess_semaphore if the interprocess_semaphore's value is greater than zero and returns true. Otherwise, waits for the interprocess_semaphore to the posted or the timeout expires. If the timeout expires, the function returns false. If the interprocess_semaphore is posted the function returns true. If there is an error throws sem_exception

    @@ -98,7 +98,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/interprocess_u_idp40973072.html b/doc/html/boost/interprocess/interprocess_u_idp40973072.html new file mode 100644 index 0000000000..0659f1832d --- /dev/null +++ b/doc/html/boost/interprocess/interprocess_u_idp40973072.html @@ -0,0 +1,190 @@ + + + + +Class interprocess_upgradable_mutex + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Class interprocess_upgradable_mutex

    +

    boost::interprocess::interprocess_upgradable_mutex

    +
    +

    Synopsis

    + +
    +

    Description

    +

    Wraps a interprocess_upgradable_mutex that can be placed in shared memory and can be shared between processes. Allows timed lock tries

    +
    +

    +interprocess_upgradable_mutex + public + construct/copy/destruct

    +
      +
    1. interprocess_upgradable_mutex(const interprocess_upgradable_mutex &);
    2. +
    3. +
      interprocess_upgradable_mutex();
      +

      Constructs the upgradable lock. Throws interprocess_exception on error.

      +
    4. +
    5. interprocess_upgradable_mutex & 
      +operator=(const interprocess_upgradable_mutex &);
    6. +
    7. +
      ~interprocess_upgradable_mutex();
      +

      Destroys the upgradable lock. Does not throw.

      +
    8. +
    +
    +
    +

    +interprocess_upgradable_mutex public member functions

    +
      +
    1. +
      void lock();
      +

      Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive, sharable or upgradable ownership of the mutex, it waits until it can obtain the ownership. Throws: interprocess_exception on error.

      +
    2. +
    3. +
      bool try_lock();
      +

      Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting. If no other thread has exclusive, sharable or upgradable ownership of the mutex this succeeds. Returns: If it can acquire exclusive ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      +
    4. +
    5. +
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +

      Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive, sharable or upgradable ownership of the mutex or abs_time is reached. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      +
    6. +
    7. +
      void unlock();
      +

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The calling thread releases the exclusive ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      +
    8. +
    9. +
      void lock_sharable();
      +

      Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

      +
    10. +
    11. +
      bool try_lock_sharable();
      +

      Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting. If no other thread has exclusive ownership of the mutex this succeeds. Returns: If it can acquire sharable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      +
    12. +
    13. +
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);
      +

      Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached. Returns: If acquires sharable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      +
    14. +
    15. +
      void unlock_sharable();
      +

      Precondition: The thread must have sharable ownership of the mutex. Effects: The calling thread releases the sharable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      +
    16. +
    17. +
      void lock_upgradable();
      +

      Effects: The calling thread tries to obtain upgradable ownership of the mutex, and if another thread has exclusive or upgradable ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

      +
    18. +
    19. +
      bool try_lock_upgradable();
      +

      Effects: The calling thread tries to acquire upgradable ownership of the mutex without waiting. If no other thread has exclusive or upgradable ownership of the mutex this succeeds. Returns: If it can acquire upgradable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      +
    20. +
    21. +
      bool timed_lock_upgradable(const boost::posix_time::ptime & abs_time);
      +

      Effects: The calling thread tries to acquire upgradable ownership of the mutex waiting if necessary until no other thread has exclusive or upgradable ownership of the mutex or abs_time is reached. Returns: If acquires upgradable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      +
    22. +
    23. +
      void unlock_upgradable();
      +

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The calling thread releases the upgradable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      +
    24. +
    25. +
      void unlock_and_lock_upgradable();
      +

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The thread atomically releases exclusive ownership and acquires upgradable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

      +
    26. +
    27. +
      void unlock_and_lock_sharable();
      +

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The thread atomically releases exclusive ownership and acquires sharable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

      +
    28. +
    29. +
      void unlock_upgradable_and_lock_sharable();
      +

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and acquires sharable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

      +
    30. +
    31. +
      void unlock_upgradable_and_lock();
      +

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and acquires exclusive ownership. This operation will block until all threads with sharable ownership release their sharable lock. Throws: An exception derived from interprocess_exception on error.

      +
    32. +
    33. +
      bool try_unlock_upgradable_and_lock();
      +

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and tries to acquire exclusive ownership. This operation will fail if there are threads with sharable ownership, but it will maintain upgradable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

      +
    34. +
    35. +
      *bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime & abs_time);
      +

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and tries to acquire exclusive ownership, waiting if necessary until abs_time. This operation will fail if there are threads with sharable ownership or timeout reaches, but it will maintain upgradable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

      +
    36. +
    37. +
      bool try_unlock_sharable_and_lock();
      +

      Precondition: The thread must have sharable ownership of the mutex. Effects: The thread atomically releases sharable ownership and tries to acquire exclusive ownership. This operation will fail if there are threads with sharable or upgradable ownership, but it will maintain sharable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

      +
    38. +
    39. +
      bool try_unlock_sharable_and_lock_upgradable();
      +

      Precondition: The thread must have sharable ownership of the mutex. Effects: The thread atomically releases sharable ownership and tries to acquire upgradable ownership. This operation will fail if there are threads with sharable or upgradable ownership, but it will maintain sharable ownership. Returns: If acquires upgradable ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

      +
    40. +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/interprocess_u_idp56869776.html b/doc/html/boost/interprocess/interprocess_u_idp56869776.html deleted file mode 100644 index f19dbb6127..0000000000 --- a/doc/html/boost/interprocess/interprocess_u_idp56869776.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - -Class interprocess_upgradable_mutex - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class interprocess_upgradable_mutex

    -

    boost::interprocess::interprocess_upgradable_mutex

    -
    -

    Synopsis

    - -
    -

    Description

    -

    Wraps a interprocess_upgradable_mutex that can be placed in shared memory and can be shared between processes. Allows timed lock tries

    -
    -

    -interprocess_upgradable_mutex - public - construct/copy/destruct

    -
      -
    1. interprocess_upgradable_mutex(const interprocess_upgradable_mutex &);
    2. -
    3. -
      interprocess_upgradable_mutex();
      -

      Constructs the upgradable lock. Throws interprocess_exception on error.

      -
    4. -
    5. interprocess_upgradable_mutex & 
      -operator=(const interprocess_upgradable_mutex &);
    6. -
    7. -
      ~interprocess_upgradable_mutex();
      -

      Destroys the upgradable lock. Does not throw.

      -
    8. -
    -
    -
    -

    -interprocess_upgradable_mutex public member functions

    -
      -
    1. -
      void lock();
      -

      Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive, sharable or upgradable ownership of the mutex, it waits until it can obtain the ownership. Throws: interprocess_exception on error.

      -
    2. -
    3. -
      bool try_lock();
      -

      Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting. If no other thread has exclusive, sharable or upgradable ownership of the mutex this succeeds. Returns: If it can acquire exclusive ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      -
    4. -
    5. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      -

      Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive, sharable or upgradable ownership of the mutex or abs_time is reached. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      -
    6. -
    7. -
      void unlock();
      -

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The calling thread releases the exclusive ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      -
    8. -
    9. -
      void lock_sharable();
      -

      Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

      -
    10. -
    11. -
      bool try_lock_sharable();
      -

      Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting. If no other thread has exclusive ownership of the mutex this succeeds. Returns: If it can acquire sharable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      -
    12. -
    13. -
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);
      -

      Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached. Returns: If acquires sharable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      -
    14. -
    15. -
      void unlock_sharable();
      -

      Precondition: The thread must have sharable ownership of the mutex. Effects: The calling thread releases the sharable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      -
    16. -
    17. -
      void lock_upgradable();
      -

      Effects: The calling thread tries to obtain upgradable ownership of the mutex, and if another thread has exclusive or upgradable ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

      -
    18. -
    19. -
      bool try_lock_upgradable();
      -

      Effects: The calling thread tries to acquire upgradable ownership of the mutex without waiting. If no other thread has exclusive or upgradable ownership of the mutex this succeeds. Returns: If it can acquire upgradable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

      -
    20. -
    21. -
      bool timed_lock_upgradable(const boost::posix_time::ptime & abs_time);
      -

      Effects: The calling thread tries to acquire upgradable ownership of the mutex waiting if necessary until no other thread has exclusive or upgradable ownership of the mutex or abs_time is reached. Returns: If acquires upgradable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

      -
    22. -
    23. -
      void unlock_upgradable();
      -

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The calling thread releases the upgradable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

      -
    24. -
    25. -
      void unlock_and_lock_upgradable();
      -

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The thread atomically releases exclusive ownership and acquires upgradable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

      -
    26. -
    27. -
      void unlock_and_lock_sharable();
      -

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The thread atomically releases exclusive ownership and acquires sharable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

      -
    28. -
    29. -
      void unlock_upgradable_and_lock_sharable();
      -

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and acquires sharable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

      -
    30. -
    31. -
      void unlock_upgradable_and_lock();
      -

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and acquires exclusive ownership. This operation will block until all threads with sharable ownership release their sharable lock. Throws: An exception derived from interprocess_exception on error.

      -
    32. -
    33. -
      bool try_unlock_upgradable_and_lock();
      -

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and tries to acquire exclusive ownership. This operation will fail if there are threads with sharable ownership, but it will maintain upgradable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

      -
    34. -
    35. -
      *bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime & abs_time);
      -

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and tries to acquire exclusive ownership, waiting if necessary until abs_time. This operation will fail if there are threads with sharable ownership or timeout reaches, but it will maintain upgradable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

      -
    36. -
    37. -
      bool try_unlock_sharable_and_lock();
      -

      Precondition: The thread must have sharable ownership of the mutex. Effects: The thread atomically releases sharable ownership and tries to acquire exclusive ownership. This operation will fail if there are threads with sharable or upgradable ownership, but it will maintain sharable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

      -
    38. -
    39. -
      bool try_unlock_sharable_and_lock_upgradable();
      -

      Precondition: The thread must have sharable ownership of the mutex. Effects: The thread atomically releases sharable ownership and tries to acquire upgradable ownership. This operation will fail if there are threads with sharable or upgradable ownership, but it will maintain sharable ownership. Returns: If acquires upgradable ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

      -
    40. -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/intrusive_ptr.html b/doc/html/boost/interprocess/intrusive_ptr.html index 39b1beda90..ab68f72d65 100644 --- a/doc/html/boost/interprocess/intrusive_ptr.html +++ b/doc/html/boost/interprocess/intrusive_ptr.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -40,30 +40,33 @@ typedef T element_type; // Provides the type of the stored pointer. // construct/copy/destruct - intrusive_ptr(); - intrusive_ptr(const pointer &, bool = true); - intrusive_ptr(intrusive_ptr const &); - template<typename U> intrusive_ptr(intrusive_ptr< U, VP > const &); - intrusive_ptr & operator=(intrusive_ptr const &); + intrusive_ptr() noexcept; + intrusive_ptr(const pointer &, bool = true) noexcept; + intrusive_ptr(intrusive_ptr const &) noexcept; + intrusive_ptr(intrusive_ptr &&) noexcept; + template<typename U> intrusive_ptr(intrusive_ptr< U, VP > const &) noexcept; + intrusive_ptr & operator=(BOOST_COPY_ASSIGN_REF(intrusive_ptr)) noexcept; + intrusive_ptr & operator=(intrusive_ptr &&) noexcept; template<typename U> - intrusive_ptr & operator=(intrusive_ptr< U, VP > const &); - intrusive_ptr & operator=(pointer); - ~intrusive_ptr(); + intrusive_ptr & operator=(intrusive_ptr< U, VP > const &) noexcept; + intrusive_ptr & operator=(pointer) noexcept; + ~intrusive_ptr(); - // public member functions - pointer & get(); - const pointer & get() const; - T & operator*() const; - const pointer & operator->() const; - pointer & operator->(); - operator unspecified_bool_type() const; - bool operator!() const; - void swap(intrusive_ptr &); + // public member functions + void reset() noexcept; + pointer & get() noexcept; + const pointer & get() const noexcept; + T & operator*() const noexcept; + const pointer & operator->() const noexcept; + pointer & operator->() noexcept; + operator unspecified_bool_type() const noexcept; + bool operator!() const noexcept; + void swap(intrusive_ptr &) noexcept; };

    Description

    The intrusive_ptr class template stores a pointer to an object with an embedded reference count. intrusive_ptr is parameterized on T (the type of the object pointed to) and VoidPointer(a void pointer type that defines the type of pointer that intrusive_ptr will store). intrusive_ptr<T, void *> defines a class with a T* member whereas intrusive_ptr<T, offset_ptr<void> > defines a class with a offset_ptr<T> member. Relies on unqualified calls to:

    -

    void intrusive_ptr_add_ref(T * p); void intrusive_ptr_release(T * p);

    +

    void intrusive_ptr_add_ref(T * p) BOOST_NOEXCEPT; void intrusive_ptr_release(T * p) BOOST_NOEXCEPT;

    with (p != 0)

    The object is responsible for destroying itself.

    @@ -73,74 +76,83 @@ construct/copy/destruct
    1. -
      intrusive_ptr();
      +
      intrusive_ptr() noexcept;

      Constructor. Initializes internal pointer to 0. Does not throw

    2. -
      intrusive_ptr(const pointer & p, bool add_ref = true);
      +
      intrusive_ptr(const pointer & p, bool add_ref = true) noexcept;

      Constructor. Copies pointer and if "p" is not zero and "add_ref" is true calls intrusive_ptr_add_ref(to_raw_pointer(p)). Does not throw

    3. -
      intrusive_ptr(intrusive_ptr const & rhs);
      +
      intrusive_ptr(intrusive_ptr const & rhs) noexcept;

      Copy constructor. Copies the internal pointer and if "p" is not zero calls intrusive_ptr_add_ref(to_raw_pointer(p)). Does not throw

    4. -
      template<typename U> intrusive_ptr(intrusive_ptr< U, VP > const & rhs);
      +
      intrusive_ptr(intrusive_ptr && rhs) noexcept;
      Move constructor. Moves the internal pointer. Does not throw.
    5. +
    6. +
      template<typename U> 
      +  intrusive_ptr(intrusive_ptr< U, VP > const & rhs) noexcept;

      Constructor from related. Copies the internal pointer and if "p" is not zero calls intrusive_ptr_add_ref(to_raw_pointer(p)). Does not throw

    7. -
      intrusive_ptr & operator=(intrusive_ptr const & rhs);
      +
      intrusive_ptr & operator=(BOOST_COPY_ASSIGN_REF(intrusive_ptr) rhs) noexcept;

      Assignment operator. Equivalent to intrusive_ptr(r).swap(*this). Does not throw

    8. +
      intrusive_ptr & operator=(intrusive_ptr && rhs) noexcept;
      +

      Move Assignment operator Does not throw

      +
    9. +
    10. template<typename U> 
      -  intrusive_ptr & operator=(intrusive_ptr< U, VP > const & rhs);
      + intrusive_ptr & operator=(intrusive_ptr< U, VP > const & rhs) noexcept;

      Assignment from related. Equivalent to intrusive_ptr(r).swap(*this). Does not throw

    11. -
      intrusive_ptr & operator=(pointer rhs);
      +
      intrusive_ptr & operator=(pointer rhs) noexcept;

      Assignment from pointer. Equivalent to intrusive_ptr(r).swap(*this). Does not throw

    12. -
      ~intrusive_ptr();
      -

      Destructor. If internal pointer is not 0, calls intrusive_ptr_release(to_raw_pointer(m_ptr)). Does not throw

      -
    13. +
      ~intrusive_ptr();
      Destructor. Calls reset(). Does not throw.

    -intrusive_ptr public member functions

    +intrusive_ptr public member functions
    1. -
      pointer & get();
      +
      void reset() noexcept;
      +

      Release internal pointer and set it to 0. If internal pointer is not 0, calls intrusive_ptr_release(to_raw_pointer(m_ptr)). Does not throw

      +
    2. +
    3. +
      pointer & get() noexcept;

      Returns a reference to the internal pointer. Does not throw

    4. -
      const pointer & get() const;
      +
      const pointer & get() const noexcept;

      Returns a reference to the internal pointer. Does not throw

    5. -
      T & operator*() const;
      +
      T & operator*() const noexcept;

      Returns *get(). Does not throw

    6. -
      const pointer & operator->() const;
      +
      const pointer & operator->() const noexcept;

      Returns *get(). Does not throw

    7. -
      pointer & operator->();
      +
      pointer & operator->() noexcept;

      Returns get(). Does not throw

    8. -
      operator unspecified_bool_type() const;
      +
      operator unspecified_bool_type() const noexcept;

      Conversion to boolean. Does not throw

    9. -
      bool operator!() const;
      +
      bool operator!() const noexcept;

      Not operator. Does not throw

    10. -
      void swap(intrusive_ptr & rhs);
      +
      void swap(intrusive_ptr & rhs) noexcept;

      Exchanges the contents of the two smart pointers. Does not throw

    @@ -157,7 +169,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/iset_index.html b/doc/html/boost/interprocess/iset_index.html index aef400075e..550322033b 100644 --- a/doc/html/boost/interprocess/iset_index.html +++ b/doc/html/boost/interprocess/iset_index.html @@ -42,15 +42,15 @@ typedef index_type::value_type value_type; // construct/copy/destruct - iset_index(typename MapConfig::segment_manager_base *); + iset_index(typename MapConfig::segment_manager_base *); - // public member functions - void reserve(typename MapConfig::segment_manager_base::size_type); - void shrink_to_fit(); - iterator find(const intrusive_compare_key_type &); - const_iterator find(const intrusive_compare_key_type &) const; + // public member functions + void reserve(typename MapConfig::segment_manager_base::size_type); + void shrink_to_fit(); + iterator find(const intrusive_compare_key_type &); + const_iterator find(const intrusive_compare_key_type &) const; std::pair< iterator, bool > - insert_check(const intrusive_compare_key_type &, insert_commit_data &); + insert_check(const intrusive_compare_key_type &, insert_commit_data &); };

    Description

    @@ -61,24 +61,24 @@ public construct/copy/destruct
    1. -
      iset_index(typename MapConfig::segment_manager_base *);
      +
      iset_index(typename MapConfig::segment_manager_base *);

      Constructor. Takes a pointer to the segment manager. Can throw

    -iset_index public member functions

    +iset_index public member functions
    1. -
      void reserve(typename MapConfig::segment_manager_base::size_type);
      +
      void reserve(typename MapConfig::segment_manager_base::size_type);

      This reserves memory to optimize the insertion of n elements in the index

    2. -
      void shrink_to_fit();
      This frees all unnecessary memory.
    3. -
    4. iterator find(const intrusive_compare_key_type & key);
    5. -
    6. const_iterator find(const intrusive_compare_key_type & key) const;
    7. +
      void shrink_to_fit();
      This frees all unnecessary memory. +
    8. iterator find(const intrusive_compare_key_type & key);
    9. +
    10. const_iterator find(const intrusive_compare_key_type & key) const;
    11. std::pair< iterator, bool > 
      -insert_check(const intrusive_compare_key_type & key, 
      +insert_check(const intrusive_compare_key_type & key, 
                    insert_commit_data & commit_data);
    diff --git a/doc/html/boost/interprocess/iunordered_set_index.html b/doc/html/boost/interprocess/iunordered_set_index.html index 8cb086e995..c53e69ee35 100644 --- a/doc/html/boost/interprocess/iunordered_set_index.html +++ b/doc/html/boost/interprocess/iunordered_set_index.html @@ -48,17 +48,17 @@ typedef index_type::size_type size_type; // construct/copy/destruct - iunordered_set_index(segment_manager_base *); - ~iunordered_set_index(); + iunordered_set_index(segment_manager_base *); + ~iunordered_set_index(); - // public member functions - void reserve(size_type); - void shrink_to_fit(); - iterator find(const intrusive_compare_key_type &); - const_iterator find(const intrusive_compare_key_type &) const; + // public member functions + void reserve(size_type); + void shrink_to_fit(); + iterator find(const intrusive_compare_key_type &); + const_iterator find(const intrusive_compare_key_type &) const; std::pair< iterator, bool > - insert_check(const intrusive_compare_key_type &, insert_commit_data &); - iterator insert_commit(value_type &, insert_commit_data &); + insert_check(const intrusive_compare_key_type &, insert_commit_data &); + iterator insert_commit(value_type &, insert_commit_data &); };

    Description

    @@ -70,30 +70,30 @@ construct/copy/destruct
    1. -
      iunordered_set_index(segment_manager_base * mngr);
      +
      iunordered_set_index(segment_manager_base * mngr);

      Constructor. Takes a pointer to the segment manager. Can throw

    2. -
    3. ~iunordered_set_index();
    4. +
    5. ~iunordered_set_index();

    -iunordered_set_index public member functions

    +iunordered_set_index public member functions
    1. -
      void reserve(size_type new_n);
      +
      void reserve(size_type new_n);

      This reserves memory to optimize the insertion of n elements in the index

    2. -
      void shrink_to_fit();
      +
      void shrink_to_fit();

      This tries to free unused memory previously allocated.

    3. -
    4. iterator find(const intrusive_compare_key_type & key);
    5. -
    6. const_iterator find(const intrusive_compare_key_type & key) const;
    7. +
    8. iterator find(const intrusive_compare_key_type & key);
    9. +
    10. const_iterator find(const intrusive_compare_key_type & key) const;
    11. std::pair< iterator, bool > 
      -insert_check(const intrusive_compare_key_type & key, 
      +insert_check(const intrusive_compare_key_type & key, 
                    insert_commit_data & commit_data);
    12. -
    13. iterator insert_commit(value_type & val, insert_commit_data & commit_data);
    14. +
    15. iterator insert_commit(value_type & val, insert_commit_data & commit_data);
    diff --git a/doc/html/boost/interprocess/lock_exception.html b/doc/html/boost/interprocess/lock_exception.html index 312a6a72cd..230cb33fd7 100644 --- a/doc/html/boost/interprocess/lock_exception.html +++ b/doc/html/boost/interprocess/lock_exception.html @@ -36,10 +36,10 @@ class lock_exception : public boost::interprocess::interprocess_exception { public: // construct/copy/destruct - lock_exception(); + lock_exception(); - // public member functions - virtual const char * what() const; + // public member functions + virtual const char * what() const; };

    Description

    @@ -49,12 +49,12 @@ lock_exception public construct/copy/destruct -
    1. lock_exception();
    +
    1. lock_exception();

    -lock_exception public member functions

    -
    1. virtual const char * what() const;
    +lock_exception public member functions +
    1. virtual const char * what() const;
    diff --git a/doc/html/boost/interprocess/make_managed_s_idp40508976.html b/doc/html/boost/interprocess/make_managed_s_idp40508976.html new file mode 100644 index 0000000000..1dda3c49bb --- /dev/null +++ b/doc/html/boost/interprocess/make_managed_s_idp40508976.html @@ -0,0 +1,58 @@ + + + + +Function template make_managed_shared_ptr + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template make_managed_shared_ptr

    +

    boost::interprocess::make_managed_shared_ptr

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/shared_ptr.hpp>
    +
    +
    +template<typename T, typename ManagedMemory> 
    +  managed_shared_ptr< T, ManagedMemory >::type 
    +  make_managed_shared_ptr(T * constructed_object, 
    +                          ManagedMemory & managed_memory);
    +
    +

    Description

    +

    Returns an instance of a shared pointer constructed with the default allocator and deleter from a pointer of type T that has been allocated in the passed managed segment

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/make_managed_s_idp40513488.html b/doc/html/boost/interprocess/make_managed_s_idp40513488.html new file mode 100644 index 0000000000..c46da2fa2c --- /dev/null +++ b/doc/html/boost/interprocess/make_managed_s_idp40513488.html @@ -0,0 +1,59 @@ + + + + +Function template make_managed_shared_ptr + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template make_managed_shared_ptr

    +

    boost::interprocess::make_managed_shared_ptr

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/shared_ptr.hpp>
    +
    +
    +template<typename T, typename ManagedMemory> 
    +  managed_shared_ptr< T, ManagedMemory >::type 
    +  make_managed_shared_ptr(T * constructed_object, 
    +                          ManagedMemory & managed_memory, 
    +                          const std::nothrow_t &);
    +
    +

    Description

    +

    Returns an instance of a shared pointer constructed with the default allocator and deleter from a pointer of type T that has been allocated in the passed managed segment. Does not throw, return null shared pointer in error.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/make_managed_s_idp56405680.html b/doc/html/boost/interprocess/make_managed_s_idp56405680.html deleted file mode 100644 index 29277c15ff..0000000000 --- a/doc/html/boost/interprocess/make_managed_s_idp56405680.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template make_managed_shared_ptr - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template make_managed_shared_ptr

    -

    boost::interprocess::make_managed_shared_ptr

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/shared_ptr.hpp>
    -
    -
    -template<typename T, typename ManagedMemory> 
    -  managed_shared_ptr< T, ManagedMemory >::type 
    -  make_managed_shared_ptr(T * constructed_object, 
    -                          ManagedMemory & managed_memory);
    -
    -

    Description

    -

    Returns an instance of a shared pointer constructed with the default allocator and deleter from a pointer of type T that has been allocated in the passed managed segment

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/make_managed_s_idp56410192.html b/doc/html/boost/interprocess/make_managed_s_idp56410192.html deleted file mode 100644 index 8a21eff230..0000000000 --- a/doc/html/boost/interprocess/make_managed_s_idp56410192.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - -Function template make_managed_shared_ptr - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template make_managed_shared_ptr

    -

    boost::interprocess::make_managed_shared_ptr

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/shared_ptr.hpp>
    -
    -
    -template<typename T, typename ManagedMemory> 
    -  managed_shared_ptr< T, ManagedMemory >::type 
    -  make_managed_shared_ptr(T * constructed_object, 
    -                          ManagedMemory & managed_memory, 
    -                          const std::nothrow_t &);
    -
    -

    Description

    -

    Returns an instance of a shared pointer constructed with the default allocator and deleter from a pointer of type T that has been allocated in the passed managed segment. Does not throw, return null shared pointer in error.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/managed_external_buffer.html b/doc/html/boost/interprocess/managed_external_buffer.html index 0adc279831..08f1ff8ce5 100644 --- a/doc/html/boost/interprocess/managed_external_buffer.html +++ b/doc/html/boost/interprocess/managed_external_buffer.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -33,10 +33,10 @@ +typedef basic_managed_external_buffer< char,rbtree_best_fit< null_mutex_family >,iset_index > managed_external_buffer;

    Description

    -

    Typedef for a default basic_managed_external_buffer of narrow characters

    +

    Typedef for a default basic_managed_external_buffer of narrow characters

    @@ -49,7 +49,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/managed_shared_memory.html b/doc/html/boost/interprocess/managed_shared_memory.html index dba8c18a93..b0c26e70ff 100644 --- a/doc/html/boost/interprocess/managed_shared_memory.html +++ b/doc/html/boost/interprocess/managed_shared_memory.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -33,10 +33,10 @@ +typedef basic_managed_shared_memory< char,rbtree_best_fit< mutex_family >,iset_index > managed_shared_memory;

    Description

    -

    Typedef for a default basic_managed_shared_memory of narrow characters

    +

    Typedef for a default basic_managed_shared_memory of narrow characters

    @@ -49,7 +49,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/managed_shared_ptr.html b/doc/html/boost/interprocess/managed_shared_ptr.html index 4c37cc3655..d7d625d7d6 100644 --- a/doc/html/boost/interprocess/managed_shared_ptr.html +++ b/doc/html/boost/interprocess/managed_shared_ptr.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -54,7 +54,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/managed_unique_ptr.html b/doc/html/boost/interprocess/managed_unique_ptr.html index 6832b0708c..c38b1e0cf3 100644 --- a/doc/html/boost/interprocess/managed_unique_ptr.html +++ b/doc/html/boost/interprocess/managed_unique_ptr.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -52,7 +52,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/managed_window_idp39679728.html b/doc/html/boost/interprocess/managed_window_idp39679728.html new file mode 100644 index 0000000000..a1fcb609ba --- /dev/null +++ b/doc/html/boost/interprocess/managed_window_idp39679728.html @@ -0,0 +1,55 @@ + + + + +Type definition managed_windows_shared_memory + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Type definition managed_windows_shared_memory

    +

    managed_windows_shared_memory

    +
    +

    Synopsis

    + +
    +

    Description

    +

    Typedef for a default basic_managed_windows_shared_memory of narrow characters

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/managed_window_idp55585168.html b/doc/html/boost/interprocess/managed_window_idp55585168.html deleted file mode 100644 index aa21f81a7e..0000000000 --- a/doc/html/boost/interprocess/managed_window_idp55585168.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Type definition managed_windows_shared_memory - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Type definition managed_windows_shared_memory

    -

    managed_windows_shared_memory

    -
    -

    Synopsis

    - -
    -

    Description

    -

    Typedef for a default basic_managed_windows_shared_memory of narrow characters

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/managed_xsi_shared_memory.html b/doc/html/boost/interprocess/managed_xsi_shared_memory.html index 857a27273f..ff9bb640fb 100644 --- a/doc/html/boost/interprocess/managed_xsi_shared_memory.html +++ b/doc/html/boost/interprocess/managed_xsi_shared_memory.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -33,10 +33,10 @@ +typedef basic_managed_xsi_shared_memory< char,rbtree_best_fit< mutex_family >,iset_index > managed_xsi_shared_memory;

    Description

    -

    Typedef for a default basic_managed_xsi_shared_memory of narrow characters

    +

    Typedef for a default basic_managed_xsi_shared_memory of narrow characters

    @@ -49,7 +49,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/map_index.html b/doc/html/boost/interprocess/map_index.html index ce5cdc3e34..e8bd4f56db 100644 --- a/doc/html/boost/interprocess/map_index.html +++ b/doc/html/boost/interprocess/map_index.html @@ -36,11 +36,11 @@ class map_index : public boost::container::map< MapConfig > { public: // construct/copy/destruct - map_index(segment_manager_base *); + map_index(segment_manager_base *); - // public member functions - void reserve(typename segment_manager_base::size_type); - void shrink_to_fit(); + // public member functions + void reserve(typename segment_manager_base::size_type); + void shrink_to_fit(); };

    Description

    @@ -51,20 +51,20 @@ public construct/copy/destruct
    1. -
      map_index(segment_manager_base * segment_mngr);
      +
      map_index(segment_manager_base * segment_mngr);

      Constructor. Takes a pointer to the segment manager. Can throw

    -map_index public member functions

    +map_index public member functions
    1. -
      void reserve(typename segment_manager_base::size_type);
      +
      void reserve(typename segment_manager_base::size_type);

      This reserves memory to optimize the insertion of n elements in the index

    2. -
      void shrink_to_fit();
      +
      void shrink_to_fit();

      This tries to free previously allocate unused memory.

    diff --git a/doc/html/boost/interprocess/mapped_region.html b/doc/html/boost/interprocess/mapped_region.html index e395bc2a59..5d8e4a70fd 100644 --- a/doc/html/boost/interprocess/mapped_region.html +++ b/doc/html/boost/interprocess/mapped_region.html @@ -38,25 +38,25 @@ enum advice_types; // construct/copy/destruct template<typename MemoryMappable> - mapped_region(const MemoryMappable &, mode_t, offset_t = 0, + mapped_region(const MemoryMappable &, mode_t, offset_t = 0, std::size_t = 0, const void * = 0, map_options_t = default_map_options); - mapped_region(); - mapped_region(mapped_region &&); - mapped_region & operator=(mapped_region &&); - ~mapped_region(); + mapped_region(); + mapped_region(mapped_region &&); + mapped_region & operator=(mapped_region &&); + ~mapped_region(); - // public member functions - void swap(mapped_region &); - std::size_t get_size() const; - void * get_address() const; - mode_t get_mode() const; - bool flush(std::size_t = 0, std::size_t = 0, bool = true); - bool shrink_by(std::size_t, bool = true); - bool advise(advice_types); + // public member functions + void swap(mapped_region &); + std::size_t get_size() const; + void * get_address() const; + mode_t get_mode() const; + bool flush(std::size_t = 0, std::size_t = 0, bool = true); + bool shrink_by(std::size_t, bool = true); + bool advise(advice_types); - // public static functions - static std::size_t get_page_size(); + // public static functions + static std::size_t get_page_size(); };

    Description

    @@ -70,7 +70,7 @@
    1. template<typename MemoryMappable> 
      -  mapped_region(const MemoryMappable & mapping, mode_t mode, 
      +  mapped_region(const MemoryMappable & mapping, mode_t mode, 
                       offset_t offset = 0, std::size_t size = 0, 
                       const void * address = 0, 
                       map_options_t map_options = default_map_options);
      @@ -83,61 +83,61 @@

      The OS could allocate more pages than size/page_size(), but get_address() will always return the address passed in this function (if not null) and get_size() will return the specified size.

    2. -
      mapped_region();
      +
      mapped_region();

      Default constructor. Address will be 0 (nullptr). Size will be 0. Does not throw

    3. -
      mapped_region(mapped_region && other);
      +
      mapped_region(mapped_region && other);

      Move constructor. *this will be constructed taking ownership of "other"'s region and "other" will be left in default constructor state.

    4. -
      mapped_region & operator=(mapped_region && other);
      +
      mapped_region & operator=(mapped_region && other);

      Move assignment. If *this owns a memory mapped region, it will be destroyed and it will take ownership of "other"'s memory mapped region.

    5. -
      ~mapped_region();
      +
      ~mapped_region();

      Destroys the mapped region. Does not throw

    -mapped_region public member functions

    +mapped_region public member functions
    1. -
      void swap(mapped_region & other);
      +
      void swap(mapped_region & other);

      Swaps the mapped_region with another mapped region

    2. -
      std::size_t get_size() const;
      Returns the size of the mapping. Never throws.
    3. +
      std::size_t get_size() const;
      Returns the size of the mapping. Never throws.
    4. -
      void * get_address() const;
      +
      void * get_address() const;

      Returns the base address of the mapping. Never throws.

    5. -
      mode_t get_mode() const;
      +
      mode_t get_mode() const;

      Returns the mode of the mapping used to construct the mapped region. Never throws.

    6. -
      bool flush(std::size_t mapping_offset = 0, std::size_t numbytes = 0, 
      +
      bool flush(std::size_t mapping_offset = 0, std::size_t numbytes = 0, 
                  bool async = true);

      Flushes to the disk a byte range within the mapped memory. If 'async' is true, the function will return before flushing operation is completed If 'async' is false, function will return once data has been written into the underlying device (i.e., in mapped files OS cached information is written to disk). Never throws. Returns false if operation could not be performed.

    7. -
      bool shrink_by(std::size_t bytes, bool from_back = true);
      +
      bool shrink_by(std::size_t bytes, bool from_back = true);

      Shrinks current mapped region. If after shrinking there is no longer need for a previously mapped memory page, accessing that page can trigger a segmentation fault. Depending on the OS, this operation might fail (XSI shared memory), it can decommit storage and free a portion of the virtual address space (e.g.POSIX) or this function can release some physical memory wihout freeing any virtual address space(Windows). Returns true on success. Never throws.

    8. -
      bool advise(advice_types advise);
      +
      bool advise(advice_types advise);

      Advises the implementation on the expected behavior of the application with respect to the data in the region. The implementation may use this information to optimize handling of the region data. This function has no effect on the semantics of access to memory in the region, although it may affect the performance of access. If the advise type is not known to the implementation, the function returns false. True otherwise.

    -mapped_region public static functions

    +mapped_region public static functions
    1. -
      static std::size_t get_page_size();
      +
      static std::size_t get_page_size();

      Returns the size of the page. This size is the minimum memory that will be used by the system when mapping a memory mappable source and will restrict the address and the offset to map.

    diff --git a/doc/html/boost/interprocess/message_queue.html b/doc/html/boost/interprocess/message_queue.html index c375a816fd..b1e73997b6 100644 --- a/doc/html/boost/interprocess/message_queue.html +++ b/doc/html/boost/interprocess/message_queue.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -49,7 +49,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/message_queue_t.html b/doc/html/boost/interprocess/message_queue_t.html index 8b4260c83c..ff2b810ec7 100644 --- a/doc/html/boost/interprocess/message_queue_t.html +++ b/doc/html/boost/interprocess/message_queue_t.html @@ -39,31 +39,31 @@ typedef VoidPointer void_pointer; typedef boost::intrusive::pointer_traits< void_pointer >::template rebind_pointer< char >::type char_ptr; typedef boost::intrusive::pointer_traits< char_ptr >::difference_type difference_type; - typedef unspecified size_type; + typedef boost::container::dtl::make_unsigned< difference_type >::type size_type; // construct/copy/destruct - message_queue_t(create_only_t, const char *, size_type, size_type, + message_queue_t(create_only_t, const char *, size_type, size_type, const permissions & = permissions()); - message_queue_t(open_or_create_t, const char *, size_type, size_type, + message_queue_t(open_or_create_t, const char *, size_type, size_type, const permissions & = permissions()); - message_queue_t(open_only_t, const char *); - ~message_queue_t(); + message_queue_t(open_only_t, const char *); + ~message_queue_t(); - // public member functions - void send(const void *, size_type, unsigned int); - bool try_send(const void *, size_type, unsigned int); - bool timed_send(const void *, size_type, unsigned int, + // public member functions + void send(const void *, size_type, unsigned int); + bool try_send(const void *, size_type, unsigned int); + bool timed_send(const void *, size_type, unsigned int, const boost::posix_time::ptime &); - void receive(void *, size_type, size_type &, unsigned int &); - bool try_receive(void *, size_type, size_type &, unsigned int &); - bool timed_receive(void *, size_type, size_type &, unsigned int &, + void receive(void *, size_type, size_type &, unsigned int &); + bool try_receive(void *, size_type, size_type &, unsigned int &); + bool timed_receive(void *, size_type, size_type &, unsigned int &, const boost::posix_time::ptime &); - size_type get_max_msg() const; - size_type get_max_msg_size() const; - size_type get_num_msg() const; + size_type get_max_msg() const; + size_type get_max_msg_size() const; + size_type get_num_msg() const; - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -75,81 +75,81 @@ construct/copy/destruct
    1. -
      message_queue_t(create_only_t create_only, const char * name, 
      +
      message_queue_t(create_only_t create_only, const char * name, 
                       size_type max_num_msg, size_type max_msg_size, 
                       const permissions & perm = permissions());

      Creates a process shared message queue with name "name". For this message queue, the maximum number of messages will be "max_num_msg" and the maximum message size will be "max_msg_size". Throws on error and if the queue was previously created.

    2. -
      message_queue_t(open_or_create_t open_or_create, const char * name, 
      +
      message_queue_t(open_or_create_t open_or_create, const char * name, 
                       size_type max_num_msg, size_type max_msg_size, 
                       const permissions & perm = permissions());

      Opens or creates a process shared message queue with name "name". If the queue is created, the maximum number of messages will be "max_num_msg" and the maximum message size will be "max_msg_size". If queue was previously created the queue will be opened and "max_num_msg" and "max_msg_size" parameters are ignored. Throws on error.

    3. -
      message_queue_t(open_only_t open_only, const char * name);
      +
      message_queue_t(open_only_t open_only, const char * name);

      Opens a previously created process shared message queue with name "name". If the queue was not previously created or there are no free resources, throws an error.

    4. -
      ~message_queue_t();
      +
      ~message_queue_t();

      Destroys *this and indicates that the calling process is finished using the resource. All opened message queues are still valid after destruction. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the message queue from the system use remove().

    -message_queue_t public member functions

    +message_queue_t public member functions
    1. -
      void send(const void * buffer, size_type buffer_size, unsigned int priority);
      +
      void send(const void * buffer, size_type buffer_size, unsigned int priority);

      Sends a message stored in buffer "buffer" with size "buffer_size" in the message queue with priority "priority". If the message queue is full the sender is blocked. Throws interprocess_error on error.

    2. -
      bool try_send(const void * buffer, size_type buffer_size, 
      +
      bool try_send(const void * buffer, size_type buffer_size, 
                     unsigned int priority);

      Sends a message stored in buffer "buffer" with size "buffer_size" through the message queue with priority "priority". If the message queue is full the sender is not blocked and returns false, otherwise returns true. Throws interprocess_error on error.

    3. -
      bool timed_send(const void * buffer, size_type buffer_size, 
      +
      bool timed_send(const void * buffer, size_type buffer_size, 
                       unsigned int priority, 
                       const boost::posix_time::ptime & abs_time);

      Sends a message stored in buffer "buffer" with size "buffer_size" in the message queue with priority "priority". If the message queue is full the sender retries until time "abs_time" is reached. Returns true if the message has been successfully sent. Returns false if timeout is reached. Throws interprocess_error on error.

    4. -
      void receive(void * buffer, size_type buffer_size, size_type & recvd_size, 
      +
      void receive(void * buffer, size_type buffer_size, size_type & recvd_size, 
                    unsigned int & priority);

      Receives a message from the message queue. The message is stored in buffer "buffer", which has size "buffer_size". The received message has size "recvd_size" and priority "priority". If the message queue is empty the receiver is blocked. Throws interprocess_error on error.

    5. -
      bool try_receive(void * buffer, size_type buffer_size, size_type & recvd_size, 
      +
      bool try_receive(void * buffer, size_type buffer_size, size_type & recvd_size, 
                        unsigned int & priority);

      Receives a message from the message queue. The message is stored in buffer "buffer", which has size "buffer_size". The received message has size "recvd_size" and priority "priority". If the message queue is empty the receiver is not blocked and returns false, otherwise returns true. Throws interprocess_error on error.

    6. -
      bool timed_receive(void * buffer, size_type buffer_size, 
      +
      bool timed_receive(void * buffer, size_type buffer_size, 
                          size_type & recvd_size, unsigned int & priority, 
                          const boost::posix_time::ptime & abs_time);

      Receives a message from the message queue. The message is stored in buffer "buffer", which has size "buffer_size". The received message has size "recvd_size" and priority "priority". If the message queue is empty the receiver retries until time "abs_time" is reached. Returns true if the message has been successfully sent. Returns false if timeout is reached. Throws interprocess_error on error.

    7. -
      size_type get_max_msg() const;
      +
      size_type get_max_msg() const;

      Returns the maximum number of messages allowed by the queue. The message queue must be opened or created previously. Otherwise, returns 0. Never throws

    8. -
      size_type get_max_msg_size() const;
      +
      size_type get_max_msg_size() const;

      Returns the maximum size of message allowed by the queue. The message queue must be opened or created previously. Otherwise, returns 0. Never throws

    9. -
      size_type get_num_msg() const;
      +
      size_type get_num_msg() const;

      Returns the number of messages currently stored. Never throws

    -message_queue_t public static functions

    +message_queue_t public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Removes the message queue from the system. Returns false on error. Never throws

    diff --git a/doc/html/boost/interprocess/mutex_family.html b/doc/html/boost/interprocess/mutex_family.html index 87cd983476..3776efaaa8 100644 --- a/doc/html/boost/interprocess/mutex_family.html +++ b/doc/html/boost/interprocess/mutex_family.html @@ -36,7 +36,7 @@ struct mutex_family { // types typedef boost::interprocess::interprocess_mutex mutex_type; - typedef boost::interprocess::interprocess_recursive_mutex recursive_mutex_type; + typedef boost::interprocess::interprocess_recursive_mutex recursive_mutex_type; };

    Description

    diff --git a/doc/html/boost/interprocess/named_condition.html b/doc/html/boost/interprocess/named_condition.html index 2025e016da..5c6acfa13c 100644 --- a/doc/html/boost/interprocess/named_condition.html +++ b/doc/html/boost/interprocess/named_condition.html @@ -36,24 +36,24 @@ class named_condition { public: // construct/copy/destruct - named_condition(create_only_t, const char *, + named_condition(create_only_t, const char *, const permissions & = permissions()); - named_condition(open_or_create_t, const char *, + named_condition(open_or_create_t, const char *, const permissions & = permissions()); - named_condition(open_only_t, const char *); - ~named_condition(); + named_condition(open_only_t, const char *); + ~named_condition(); - // public member functions - *void notify_one(); - void notify_all(); - template<typename L> void wait(L &); - template<typename L, typename Pr> void wait(L &, Pr); - template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &); + // public member functions + *void notify_one(); + void notify_all(); + template<typename L> void wait(L &); + template<typename L, typename Pr> void wait(L &, Pr); + template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &); template<typename L, typename Pr> - bool timed_wait(L &, const boost::posix_time::ptime &, Pr); + bool timed_wait(L &, const boost::posix_time::ptime &, Pr); - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -65,53 +65,53 @@ construct/copy/destruct
    1. -
      named_condition(create_only_t create_only, const char * name, 
      +
      named_condition(create_only_t create_only, const char * name, 
                       const permissions & perm = permissions());

      Creates a global condition with a name. If the condition can't be created throws interprocess_exception

    2. -
      named_condition(open_or_create_t open_or_create, const char * name, 
      +
      named_condition(open_or_create_t open_or_create, const char * name, 
                       const permissions & perm = permissions());

      Opens or creates a global condition with a name. If the condition is created, this call is equivalent to named_condition(create_only_t, ... ) If the condition is already created, this call is equivalent named_condition(open_only_t, ... ) Does not throw

    3. -
      named_condition(open_only_t open_only, const char * name);
      +
      named_condition(open_only_t open_only, const char * name);

      Opens a global condition with a name if that condition is previously created. If it is not previously created this function throws interprocess_exception.

    4. -
      ~named_condition();
      +
      ~named_condition();

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -named_condition public member functions

    +named_condition public member functions
    1. -
      *void notify_one();
      +
      *void notify_one();

      If there is a thread waiting on *this, change that thread's state to ready. Otherwise there is no effect.

    2. -
      void notify_all();
      +
      void notify_all();

      Change the state of all threads waiting on *this to ready. If there are no waiting threads, notify_all() has no effect.

    3. -
      template<typename L> void wait(L & lock);
      +
      template<typename L> void wait(L & lock);

      Releases the lock on the named_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), and then reacquires the lock.

    4. -
      template<typename L, typename Pr> void wait(L & lock, Pr pred);
      +
      template<typename L, typename Pr> void wait(L & lock, Pr pred);

      The same as: while (!pred()) wait(lock)

    5. template<typename L> 
      -  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time);
      + bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time);

      Releases the lock on the named_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), or until time abs_time is reached, and then reacquires the lock. Returns: false if time abs_time is reached, otherwise true.

    6. template<typename L, typename Pr> 
      -  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time, 
      +  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time, 
                         Pr pred);

      The same as: while (!pred()) { if (!timed_wait(lock, abs_time)) return pred(); } return true;

    7. @@ -119,9 +119,9 @@

    -named_condition public static functions

    +named_condition public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Erases a named condition from the system. Returns false on error. Never throws.

    diff --git a/doc/html/boost/interprocess/named_condition_any.html b/doc/html/boost/interprocess/named_condition_any.html index 131ca02df7..bdae41490d 100644 --- a/doc/html/boost/interprocess/named_condition_any.html +++ b/doc/html/boost/interprocess/named_condition_any.html @@ -36,24 +36,24 @@ class named_condition_any { public: // construct/copy/destruct - named_condition_any(create_only_t, const char *, + named_condition_any(create_only_t, const char *, const permissions & = permissions()); - named_condition_any(open_or_create_t, const char *, + named_condition_any(open_or_create_t, const char *, const permissions & = permissions()); - named_condition_any(open_only_t, const char *); - ~named_condition_any(); + named_condition_any(open_only_t, const char *); + ~named_condition_any(); - // public member functions - *void notify_one(); - void notify_all(); - template<typename L> void wait(L &); - template<typename L, typename Pr> void wait(L &, Pr); - template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &); + // public member functions + *void notify_one(); + void notify_all(); + template<typename L> void wait(L &); + template<typename L, typename Pr> void wait(L &, Pr); + template<typename L> bool timed_wait(L &, const boost::posix_time::ptime &); template<typename L, typename Pr> - bool timed_wait(L &, const boost::posix_time::ptime &, Pr); + bool timed_wait(L &, const boost::posix_time::ptime &, Pr); - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -65,53 +65,53 @@ construct/copy/destruct
    1. -
      named_condition_any(create_only_t, const char * name, 
      +
      named_condition_any(create_only_t, const char * name, 
                           const permissions & perm = permissions());

      Creates a global condition with a name. If the condition can't be created throws interprocess_exception

    2. -
      named_condition_any(open_or_create_t, const char * name, 
      +
      named_condition_any(open_or_create_t, const char * name, 
                           const permissions & perm = permissions());

      Opens or creates a global condition with a name. If the condition is created, this call is equivalent to named_condition_any(create_only_t, ... ) If the condition is already created, this call is equivalent named_condition_any(open_only_t, ... ) Does not throw

    3. -
      named_condition_any(open_only_t, const char * name);
      +
      named_condition_any(open_only_t, const char * name);

      Opens a global condition with a name if that condition is previously created. If it is not previously created this function throws interprocess_exception.

    4. -
      ~named_condition_any();
      +
      ~named_condition_any();

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -named_condition_any public member functions

    +named_condition_any public member functions
    1. -
      *void notify_one();
      +
      *void notify_one();

      If there is a thread waiting on *this, change that thread's state to ready. Otherwise there is no effect.

    2. -
      void notify_all();
      +
      void notify_all();

      Change the state of all threads waiting on *this to ready. If there are no waiting threads, notify_all() has no effect.

    3. -
      template<typename L> void wait(L & lock);
      +
      template<typename L> void wait(L & lock);

      Releases the lock on the named_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), and then reacquires the lock.

    4. -
      template<typename L, typename Pr> void wait(L & lock, Pr pred);
      +
      template<typename L, typename Pr> void wait(L & lock, Pr pred);

      The same as: while (!pred()) wait(lock)

    5. template<typename L> 
      -  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time);
      + bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time);

      Releases the lock on the named_mutex object associated with lock, blocks the current thread of execution until readied by a call to this->notify_one() or this->notify_all(), or until time abs_time is reached, and then reacquires the lock. Returns: false if time abs_time is reached, otherwise true.

    6. template<typename L, typename Pr> 
      -  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time, 
      +  bool timed_wait(L & lock, const boost::posix_time::ptime & abs_time, 
                         Pr pred);

      The same as: while (!pred()) { if (!timed_wait(lock, abs_time)) return pred(); } return true;

    7. @@ -119,9 +119,9 @@

    -named_condition_any public static functions

    +named_condition_any public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Erases a named condition from the system. Returns false on error. Never throws.

    diff --git a/doc/html/boost/interprocess/named_mutex.html b/doc/html/boost/interprocess/named_mutex.html index e973e6e362..83371ffde7 100644 --- a/doc/html/boost/interprocess/named_mutex.html +++ b/doc/html/boost/interprocess/named_mutex.html @@ -36,21 +36,21 @@ class named_mutex { public: // construct/copy/destruct - named_mutex(create_only_t, const char *, + named_mutex(create_only_t, const char *, const permissions & = permissions()); - named_mutex(open_or_create_t, const char *, + named_mutex(open_or_create_t, const char *, const permissions & = permissions()); - named_mutex(open_only_t, const char *); - ~named_mutex(); + named_mutex(open_only_t, const char *); + ~named_mutex(); - // public member functions - void unlock(); - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); + // public member functions + void unlock(); + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -62,52 +62,52 @@ construct/copy/destruct
    1. -
      named_mutex(create_only_t create_only, const char * name, 
      +
      named_mutex(create_only_t create_only, const char * name, 
                   const permissions & perm = permissions());

      Creates a global mutex with a name. Throws interprocess_exception on error.

    2. -
      named_mutex(open_or_create_t open_or_create, const char * name, 
      +
      named_mutex(open_or_create_t open_or_create, const char * name, 
                   const permissions & perm = permissions());

      Opens or creates a global mutex with a name. If the mutex is created, this call is equivalent to named_mutex(create_only_t, ... ) If the mutex is already created, this call is equivalent named_mutex(open_only_t, ... ) Does not throw

    3. -
      named_mutex(open_only_t open_only, const char * name);
      +
      named_mutex(open_only_t open_only, const char * name);

      Opens a global mutex with a name if that mutex is previously created. If it is not previously created this function throws interprocess_exception.

    4. -
      ~named_mutex();
      +
      ~named_mutex();

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -named_mutex public member functions

    +named_mutex public member functions
    1. -
      void unlock();
      +
      void unlock();

      Unlocks a previously locked mutex.

    2. -
      void lock();
      +
      void lock();

      Locks the mutex, sleeps when the mutex is already locked. Throws interprocess_exception if a severe error is found

    3. -
      bool try_lock();
      +
      bool try_lock();

      Tries to lock the mutex, returns false when the mutex is already locked, returns true when success. Throws interprocess_exception if a severe error is found

    4. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock(const boost::posix_time::ptime & abs_time);

      Tries to lock the the mutex until time abs_time, Returns false when timeout expires, returns true when locks. Throws interprocess_exception if a severe error is found

    -named_mutex public static functions

    +named_mutex public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Erases a named mutex from the system. Returns false on error. Never throws.

    diff --git a/doc/html/boost/interprocess/named_recursive_mutex.html b/doc/html/boost/interprocess/named_recursive_mutex.html index a5262355b3..6fef29363e 100644 --- a/doc/html/boost/interprocess/named_recursive_mutex.html +++ b/doc/html/boost/interprocess/named_recursive_mutex.html @@ -36,21 +36,21 @@ class named_recursive_mutex { public: // construct/copy/destruct - named_recursive_mutex(create_only_t, const char *, + named_recursive_mutex(create_only_t, const char *, const permissions & = permissions()); - named_recursive_mutex(open_or_create_t, const char *, + named_recursive_mutex(open_or_create_t, const char *, const permissions & = permissions()); - named_recursive_mutex(open_only_t, const char *); - ~named_recursive_mutex(); + named_recursive_mutex(open_only_t, const char *); + ~named_recursive_mutex(); - // public member functions - void unlock(); - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); + // public member functions + void unlock(); + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -62,52 +62,52 @@ construct/copy/destruct
    1. -
      named_recursive_mutex(create_only_t create_only, const char * name, 
      +
      named_recursive_mutex(create_only_t create_only, const char * name, 
                             const permissions & perm = permissions());

      Creates a global recursive_mutex with a name. If the recursive_mutex can't be created throws interprocess_exception

    2. -
      named_recursive_mutex(open_or_create_t open_or_create, const char * name, 
      +
      named_recursive_mutex(open_or_create_t open_or_create, const char * name, 
                             const permissions & perm = permissions());

      Opens or creates a global recursive_mutex with a name. If the recursive_mutex is created, this call is equivalent to named_recursive_mutex(create_only_t, ... ) If the recursive_mutex is already created, this call is equivalent named_recursive_mutex(open_only_t, ... ) Does not throw

    3. -
      named_recursive_mutex(open_only_t open_only, const char * name);
      +
      named_recursive_mutex(open_only_t open_only, const char * name);

      Opens a global recursive_mutex with a name if that recursive_mutex is previously created. If it is not previously created this function throws interprocess_exception.

    4. -
      ~named_recursive_mutex();
      +
      ~named_recursive_mutex();

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -named_recursive_mutex public member functions

    +named_recursive_mutex public member functions
    1. -
      void unlock();
      +
      void unlock();

      Unlocks a previously locked named_recursive_mutex.

    2. -
      void lock();
      +
      void lock();

      Locks named_recursive_mutex, sleeps when named_recursive_mutex is already locked. Throws interprocess_exception if a severe error is found.

    3. -
      bool try_lock();
      +
      bool try_lock();

      Tries to lock the named_recursive_mutex, returns false when named_recursive_mutex is already locked, returns true when success. Throws interprocess_exception if a severe error is found.

    4. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock(const boost::posix_time::ptime & abs_time);

      Tries to lock the named_recursive_mutex until time abs_time, Returns false when timeout expires, returns true when locks. Throws interprocess_exception if a severe error is found

    -named_recursive_mutex public static functions

    +named_recursive_mutex public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Erases a named recursive mutex from the system

    diff --git a/doc/html/boost/interprocess/named_semaphore.html b/doc/html/boost/interprocess/named_semaphore.html index 8abfc5e6c3..f98c039256 100644 --- a/doc/html/boost/interprocess/named_semaphore.html +++ b/doc/html/boost/interprocess/named_semaphore.html @@ -36,21 +36,21 @@ class named_semaphore { public: // construct/copy/destruct - named_semaphore(create_only_t, const char *, unsigned int, + named_semaphore(create_only_t, const char *, unsigned int, const permissions & = permissions()); - named_semaphore(open_or_create_t, const char *, unsigned int, + named_semaphore(open_or_create_t, const char *, unsigned int, const permissions & = permissions()); - named_semaphore(open_only_t, const char *); - ~named_semaphore(); + named_semaphore(open_only_t, const char *); + ~named_semaphore(); - // public member functions - void post(); - void wait(); - bool try_wait(); - bool timed_wait(const boost::posix_time::ptime &); + // public member functions + void post(); + void wait(); + bool try_wait(); + bool timed_wait(const boost::posix_time::ptime &); - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -62,53 +62,53 @@ construct/copy/destruct
    1. -
      named_semaphore(create_only_t, const char * name, unsigned int initialCount, 
      +
      named_semaphore(create_only_t, const char * name, unsigned int initialCount, 
                       const permissions & perm = permissions());

      Creates a global semaphore with a name, and an initial count. If the semaphore can't be created throws interprocess_exception

    2. -
      named_semaphore(open_or_create_t, const char * name, 
      +
      named_semaphore(open_or_create_t, const char * name, 
                       unsigned int initialCount, 
                       const permissions & perm = permissions());

      Opens or creates a global semaphore with a name, and an initial count. If the semaphore is created, this call is equivalent to named_semaphore(create_only_t, ...) If the semaphore is already created, this call is equivalent to named_semaphore(open_only_t, ... ) and initialCount is ignored.

    3. -
      named_semaphore(open_only_t, const char * name);
      +
      named_semaphore(open_only_t, const char * name);

      Opens a global semaphore with a name if that semaphore is previously. created. If it is not previously created this function throws interprocess_exception.

    4. -
      ~named_semaphore();
      +
      ~named_semaphore();

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -named_semaphore public member functions

    +named_semaphore public member functions
    1. -
      void post();
      +
      void post();

      Increments the semaphore count. If there are processes/threads blocked waiting for the semaphore, then one of these processes will return successfully from its wait function. If there is an error an interprocess_exception exception is thrown.

    2. -
      void wait();
      +
      void wait();

      Decrements the semaphore. If the semaphore value is not greater than zero, then the calling process/thread blocks until it can decrement the counter. If there is an error an interprocess_exception exception is thrown.

    3. -
      bool try_wait();
      +
      bool try_wait();

      Decrements the semaphore if the semaphore's value is greater than zero and returns true. If the value is not greater than zero returns false. If there is an error an interprocess_exception exception is thrown.

    4. -
      bool timed_wait(const boost::posix_time::ptime & abs_time);
      +
      bool timed_wait(const boost::posix_time::ptime & abs_time);

      Decrements the semaphore if the semaphore's value is greater than zero and returns true. Otherwise, waits for the semaphore to the posted or the timeout expires. If the timeout expires, the function returns false. If the semaphore is posted the function returns true. If there is an error throws sem_exception

    -named_semaphore public static functions

    +named_semaphore public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Erases a named semaphore from the system. Returns false on error. Never throws.

    diff --git a/doc/html/boost/interprocess/named_sharable_mutex.html b/doc/html/boost/interprocess/named_sharable_mutex.html index 3659830503..e07effe776 100644 --- a/doc/html/boost/interprocess/named_sharable_mutex.html +++ b/doc/html/boost/interprocess/named_sharable_mutex.html @@ -36,25 +36,25 @@ class named_sharable_mutex { public: // construct/copy/destruct - named_sharable_mutex(create_only_t, const char *, + named_sharable_mutex(create_only_t, const char *, const permissions & = permissions()); - named_sharable_mutex(open_or_create_t, const char *, + named_sharable_mutex(open_or_create_t, const char *, const permissions & = permissions()); - named_sharable_mutex(open_only_t, const char *); - ~named_sharable_mutex(); + named_sharable_mutex(open_only_t, const char *); + ~named_sharable_mutex(); - // public member functions - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); - void unlock(); - void lock_sharable(); - bool try_lock_sharable(); - bool timed_lock_sharable(const boost::posix_time::ptime &); - void unlock_sharable(); + // public member functions + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); + void unlock(); + void lock_sharable(); + bool try_lock_sharable(); + bool timed_lock_sharable(const boost::posix_time::ptime &); + void unlock_sharable(); - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -66,68 +66,68 @@ construct/copy/destruct
    1. -
      named_sharable_mutex(create_only_t create_only, const char * name, 
      +
      named_sharable_mutex(create_only_t create_only, const char * name, 
                            const permissions & perm = permissions());

      Creates a global sharable mutex with a name. If the sharable mutex can't be created throws interprocess_exception

    2. -
      named_sharable_mutex(open_or_create_t open_or_create, const char * name, 
      +
      named_sharable_mutex(open_or_create_t open_or_create, const char * name, 
                            const permissions & perm = permissions());

      Opens or creates a global sharable mutex with a name. If the sharable mutex is created, this call is equivalent to named_sharable_mutex(create_only_t, ...) If the sharable mutex is already created, this call is equivalent to named_sharable_mutex(open_only_t, ... ).

    3. -
      named_sharable_mutex(open_only_t open_only, const char * name);
      +
      named_sharable_mutex(open_only_t open_only, const char * name);

      Opens a global sharable mutex with a name if that sharable mutex is previously. created. If it is not previously created this function throws interprocess_exception.

    4. -
      ~named_sharable_mutex();
      +
      ~named_sharable_mutex();

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -named_sharable_mutex public member functions

    +named_sharable_mutex public member functions
    1. -
      void lock();
      +
      void lock();

      Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive or sharable ownership of the mutex, it waits until it can obtain the ownership. Throws: interprocess_exception on error.

    2. -
      bool try_lock();
      +
      bool try_lock();

      Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting. If no other thread has exclusive or sharable ownership of the mutex this succeeds. Returns: If it can acquire exclusive ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

    3. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock(const boost::posix_time::ptime & abs_time);

      Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive, or sharable ownership of the mutex or abs_time is reached. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

    4. -
      void unlock();
      +
      void unlock();

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The calling thread releases the exclusive ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

    5. -
      void lock_sharable();
      +
      void lock_sharable();

      Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

    6. -
      bool try_lock_sharable();
      +
      bool try_lock_sharable();

      Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting. If no other thread has exclusive ownership of the mutex this succeeds. Returns: If it can acquire sharable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

    7. -
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);

      Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached. Returns: If acquires sharable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

    8. -
      void unlock_sharable();
      +
      void unlock_sharable();

      Precondition: The thread must have sharable ownership of the mutex. Effects: The calling thread releases the sharable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

    -named_sharable_mutex public static functions

    +named_sharable_mutex public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Erases a named sharable mutex from the system. Returns false on error. Never throws.

    diff --git a/doc/html/boost/interprocess/named_upgradable_mutex.html b/doc/html/boost/interprocess/named_upgradable_mutex.html index 2f85e07b32..72dd04cbe6 100644 --- a/doc/html/boost/interprocess/named_upgradable_mutex.html +++ b/doc/html/boost/interprocess/named_upgradable_mutex.html @@ -36,37 +36,37 @@ class named_upgradable_mutex { public: // construct/copy/destruct - named_upgradable_mutex(create_only_t, const char *, + named_upgradable_mutex(create_only_t, const char *, const permissions & = permissions()); - named_upgradable_mutex(open_or_create_t, const char *, + named_upgradable_mutex(open_or_create_t, const char *, const permissions & = permissions()); - named_upgradable_mutex(open_only_t, const char *); - ~named_upgradable_mutex(); + named_upgradable_mutex(open_only_t, const char *); + ~named_upgradable_mutex(); - // public member functions - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); - void unlock(); - void lock_sharable(); - bool try_lock_sharable(); - bool timed_lock_sharable(const boost::posix_time::ptime &); - void unlock_sharable(); - void lock_upgradable(); - bool try_lock_upgradable(); - bool timed_lock_upgradable(const boost::posix_time::ptime &); - void unlock_upgradable(); - void unlock_and_lock_upgradable(); - void unlock_and_lock_sharable(); - void unlock_upgradable_and_lock_sharable(); - void unlock_upgradable_and_lock(); - bool try_unlock_upgradable_and_lock(); - bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime &); - bool try_unlock_sharable_and_lock(); - bool try_unlock_sharable_and_lock_upgradable(); + // public member functions + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); + void unlock(); + void lock_sharable(); + bool try_lock_sharable(); + bool timed_lock_sharable(const boost::posix_time::ptime &); + void unlock_sharable(); + void lock_upgradable(); + bool try_lock_upgradable(); + bool timed_lock_upgradable(const boost::posix_time::ptime &); + void unlock_upgradable(); + void unlock_and_lock_upgradable(); + void unlock_and_lock_sharable(); + void unlock_upgradable_and_lock_sharable(); + void unlock_upgradable_and_lock(); + bool try_unlock_upgradable_and_lock(); + bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime &); + bool try_unlock_sharable_and_lock(); + bool try_unlock_sharable_and_lock_upgradable(); - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -78,116 +78,116 @@ construct/copy/destruct
    1. -
      named_upgradable_mutex(create_only_t create_only, const char * name, 
      +
      named_upgradable_mutex(create_only_t create_only, const char * name, 
                              const permissions & perm = permissions());

      Creates a global upgradable mutex with a name. If the upgradable mutex can't be created throws interprocess_exception

    2. -
      named_upgradable_mutex(open_or_create_t open_or_create, const char * name, 
      +
      named_upgradable_mutex(open_or_create_t open_or_create, const char * name, 
                              const permissions & perm = permissions());

      Opens or creates a global upgradable mutex with a name. If the upgradable mutex is created, this call is equivalent to named_upgradable_mutex(create_only_t, ...) If the upgradable mutex is already created, this call is equivalent to named_upgradable_mutex(open_only_t, ... ).

    3. -
      named_upgradable_mutex(open_only_t open_only, const char * name);
      +
      named_upgradable_mutex(open_only_t open_only, const char * name);

      Opens a global upgradable mutex with a name if that upgradable mutex is previously. created. If it is not previously created this function throws interprocess_exception.

    4. -
      ~named_upgradable_mutex();
      +
      ~named_upgradable_mutex();

      Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -named_upgradable_mutex public member functions

    +named_upgradable_mutex public member functions
    1. -
      void lock();
      +
      void lock();

      Effects: The calling thread tries to obtain exclusive ownership of the mutex, and if another thread has exclusive, sharable or upgradable ownership of the mutex, it waits until it can obtain the ownership. Throws: interprocess_exception on error.

    2. -
      bool try_lock();
      +
      bool try_lock();

      Effects: The calling thread tries to acquire exclusive ownership of the mutex without waiting. If no other thread has exclusive, sharable or upgradable ownership of the mutex this succeeds. Returns: If it can acquire exclusive ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

    3. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock(const boost::posix_time::ptime & abs_time);

      Effects: The calling thread tries to acquire exclusive ownership of the mutex waiting if necessary until no other thread has exclusive, sharable or upgradable ownership of the mutex or abs_time is reached. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

    4. -
      void unlock();
      +
      void unlock();

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The calling thread releases the exclusive ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

    5. -
      void lock_sharable();
      +
      void lock_sharable();

      Effects: The calling thread tries to obtain sharable ownership of the mutex, and if another thread has exclusive ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

    6. -
      bool try_lock_sharable();
      +
      bool try_lock_sharable();

      Effects: The calling thread tries to acquire sharable ownership of the mutex without waiting. If no other thread has exclusive ownership of the mutex this succeeds. Returns: If it can acquire sharable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

    7. -
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock_sharable(const boost::posix_time::ptime & abs_time);

      Effects: The calling thread tries to acquire sharable ownership of the mutex waiting if necessary until no other thread has exclusive ownership of the mutex or abs_time is reached. Returns: If acquires sharable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

    8. -
      void unlock_sharable();
      +
      void unlock_sharable();

      Precondition: The thread must have sharable ownership of the mutex. Effects: The calling thread releases the sharable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

    9. -
      void lock_upgradable();
      +
      void lock_upgradable();

      Effects: The calling thread tries to obtain upgradable ownership of the mutex, and if another thread has exclusive or upgradable ownership of the mutex, waits until it can obtain the ownership. Throws: interprocess_exception on error.

    10. -
      bool try_lock_upgradable();
      +
      bool try_lock_upgradable();

      Effects: The calling thread tries to acquire upgradable ownership of the mutex without waiting. If no other thread has exclusive or upgradable ownership of the mutex this succeeds. Returns: If it can acquire upgradable ownership immediately returns true. If it has to wait, returns false. Throws: interprocess_exception on error.

    11. -
      bool timed_lock_upgradable(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock_upgradable(const boost::posix_time::ptime & abs_time);

      Effects: The calling thread tries to acquire upgradable ownership of the mutex waiting if necessary until no other thread has exclusive or upgradable ownership of the mutex or abs_time is reached. Returns: If acquires upgradable ownership, returns true. Otherwise returns false. Throws: interprocess_exception on error.

    12. -
      void unlock_upgradable();
      +
      void unlock_upgradable();

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The calling thread releases the upgradable ownership of the mutex. Throws: An exception derived from interprocess_exception on error.

    13. -
      void unlock_and_lock_upgradable();
      +
      void unlock_and_lock_upgradable();

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The thread atomically releases exclusive ownership and acquires upgradable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

    14. -
      void unlock_and_lock_sharable();
      +
      void unlock_and_lock_sharable();

      Precondition: The thread must have exclusive ownership of the mutex. Effects: The thread atomically releases exclusive ownership and acquires sharable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

    15. -
      void unlock_upgradable_and_lock_sharable();
      +
      void unlock_upgradable_and_lock_sharable();

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and acquires sharable ownership. This operation is non-blocking. Throws: An exception derived from interprocess_exception on error.

    16. -
      void unlock_upgradable_and_lock();
      +
      void unlock_upgradable_and_lock();

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and acquires exclusive ownership. This operation will block until all threads with sharable ownership release it. Throws: An exception derived from interprocess_exception on error.

    17. -
      bool try_unlock_upgradable_and_lock();
      +
      bool try_unlock_upgradable_and_lock();

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and tries to acquire exclusive ownership. This operation will fail if there are threads with sharable ownership, but it will maintain upgradable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

    18. -
      bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime & abs_time);

      Precondition: The thread must have upgradable ownership of the mutex. Effects: The thread atomically releases upgradable ownership and tries to acquire exclusive ownership, waiting if necessary until abs_time. This operation will fail if there are threads with sharable ownership or timeout reaches, but it will maintain upgradable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

    19. -
      bool try_unlock_sharable_and_lock();
      +
      bool try_unlock_sharable_and_lock();

      Precondition: The thread must have sharable ownership of the mutex. Effects: The thread atomically releases sharable ownership and tries to acquire exclusive ownership. This operation will fail if there are threads with sharable or upgradable ownership, but it will maintain sharable ownership. Returns: If acquires exclusive ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

    20. -
      bool try_unlock_sharable_and_lock_upgradable();
      +
      bool try_unlock_sharable_and_lock_upgradable();

      Precondition: The thread must have sharable ownership of the mutex. Effects: The thread atomically releases sharable ownership and tries to acquire upgradable ownership. This operation will fail if there are threads with sharable or upgradable ownership, but it will maintain sharable ownership. Returns: If acquires upgradable ownership, returns true. Otherwise returns false. Throws: An exception derived from interprocess_exception on error.

    -named_upgradable_mutex public static functions

    +named_upgradable_mutex public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Erases a named upgradable mutex from the system. Returns false on error. Never throws.

    diff --git a/doc/html/boost/interprocess/node_allocator.html b/doc/html/boost/interprocess/node_allocator.html index c640d492b8..34b75da1c3 100644 --- a/doc/html/boost/interprocess/node_allocator.html +++ b/doc/html/boost/interprocess/node_allocator.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -54,39 +54,39 @@ }; // construct/copy/destruct - node_allocator(segment_manager *); - node_allocator(const node_allocator &); + node_allocator(segment_manager *); + node_allocator(const node_allocator &); template<typename T2> - node_allocator(const node_allocator< T2, SegmentManager, NodesPerBlock > &); + node_allocator(const node_allocator< T2, SegmentManager, NodesPerBlock > &); template<typename T2, typename SegmentManager2, std::size_t N2> node_allocator & - operator=(const node_allocator< T2, SegmentManager2, N2 > &); - ~node_allocator(); + operator=(const node_allocator< T2, SegmentManager2, N2 > &); + ~node_allocator(); - // public member functions - void * get_node_pool() const; - segment_manager * get_segment_manager() const; - size_type max_size() const; - pointer allocate(size_type, cvoid_pointer = 0); - void deallocate(const pointer &, size_type); - void deallocate_free_blocks(); - pointer address(reference) const; - const_pointer address(const_reference) const; - void construct(const pointer &, const_reference); - void destroy(const pointer &); - size_type size(const pointer &) const; - pointer allocation_command(boost::interprocess::allocation_type, size_type, + // public member functions + void * get_node_pool() const; + segment_manager * get_segment_manager() const; + size_type max_size() const; + pointer allocate(size_type, cvoid_pointer = 0); + void deallocate(const pointer &, size_type); + void deallocate_free_blocks(); + pointer address(reference) const; + const_pointer address(const_reference) const; + void construct(const pointer &, const_reference); + void destroy(const pointer &); + size_type size(const pointer &) const; + pointer allocation_command(boost::interprocess::allocation_type, size_type, size_type &, pointer &); - void allocate_many(size_type, size_type, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &); - pointer allocate_one(); - void allocate_individual(size_type, multiallocation_chain &); - void deallocate_one(const pointer &); - void deallocate_individual(multiallocation_chain &); + void allocate_many(size_type, size_type, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &); + pointer allocate_one(); + void allocate_individual(size_type, multiallocation_chain &); + void deallocate_one(const pointer &); + void deallocate_individual(multiallocation_chain &); - // friend functions - friend void swap(self_t &, self_t &); + // friend functions + friend void swap(self_t &, self_t &); };

    Description

    @@ -98,120 +98,120 @@ construct/copy/destruct
    1. -
      node_allocator(segment_manager * segment_mngr);
      +
      node_allocator(segment_manager * segment_mngr);

      Not assignable from other node_allocator Constructor from a segment manager. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    2. -
      node_allocator(const node_allocator & other);
      +
      node_allocator(const node_allocator & other);

      Copy constructor from other node_allocator. Increments the reference count of the associated node pool. Never throws

    3. template<typename T2> 
      -  node_allocator(const node_allocator< T2, SegmentManager, NodesPerBlock > & other);
      + node_allocator(const node_allocator< T2, SegmentManager, NodesPerBlock > & other);

      Copy constructor from related node_allocator. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    4. template<typename T2, typename SegmentManager2, std::size_t N2> 
         node_allocator & 
      -  operator=(const node_allocator< T2, SegmentManager2, N2 > &);
      + operator=(const node_allocator< T2, SegmentManager2, N2 > &);

      Not assignable from related node_allocator

    5. -
      ~node_allocator();
      +
      ~node_allocator();

      Destructor, removes node_pool_t from memory if its reference count reaches to zero. Never throws

    -node_allocator public member functions

    +node_allocator public member functions
    1. -
      void * get_node_pool() const;
      +
      void * get_node_pool() const;

      Returns a pointer to the node pool. Never throws

    2. -
      segment_manager * get_segment_manager() const;
      +
      segment_manager * get_segment_manager() const;

      Returns the segment manager. Never throws

    3. -
      size_type max_size() const;
      +
      size_type max_size() const;

      Returns the number of elements that could be allocated. Never throws

    4. -
      pointer allocate(size_type count, cvoid_pointer hint = 0);
      +
      pointer allocate(size_type count, cvoid_pointer hint = 0);

      Allocate memory for an array of count elements. Throws boost::interprocess::bad_alloc if there is no enough memory

    5. -
      void deallocate(const pointer & ptr, size_type count);
      +
      void deallocate(const pointer & ptr, size_type count);

      Deallocate allocated memory. Never throws

    6. -
      void deallocate_free_blocks();
      +
      void deallocate_free_blocks();

      Deallocates all free blocks of the pool

    7. -
      pointer address(reference value) const;
      +
      pointer address(reference value) const;

      Returns address of mutable object. Never throws

    8. -
      const_pointer address(const_reference value) const;
      +
      const_pointer address(const_reference value) const;

      Returns address of non mutable object. Never throws

    9. -
      void construct(const pointer & ptr, const_reference v);
      +
      void construct(const pointer & ptr, const_reference v);

      Copy construct an object. Throws if T's copy constructor throws

    10. -
      void destroy(const pointer & ptr);
      +
      void destroy(const pointer & ptr);

      Destroys object. Throws if object's destructor throws

    11. -
      size_type size(const pointer & p) const;
      +
      size_type size(const pointer & p) const;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.

    12. -
    13. pointer allocation_command(boost::interprocess::allocation_type command, 
      +
    14. pointer allocation_command(boost::interprocess::allocation_type command, 
                                  size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);
    15. -
      void allocate_many(size_type elem_size, size_type num_elements, 
      +
      void allocate_many(size_type elem_size, size_type num_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    16. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated

    17. -
      void deallocate_many(multiallocation_chain & chain);
      +
      void deallocate_many(multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    18. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc if there is no enough memory

    19. -
      void allocate_individual(size_type num_elements, 
      +
      void allocate_individual(size_type num_elements, 
                                multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    20. -
      void deallocate_one(const pointer & p);
      +
      void deallocate_one(const pointer & p);

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

    21. -
      void deallocate_individual(multiallocation_chain & chain);
      +
      void deallocate_individual(multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    -node_allocator friend functions

    +node_allocator friend functions
    1. -
      friend void swap(self_t & alloc1, self_t & alloc2);
      +
      friend void swap(self_t & alloc1, self_t & alloc2);

      Swaps allocators. Does not throw. If each allocator is placed in a different memory segment, the result is undefined.

    @@ -227,7 +227,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/node_allocator/rebind.html b/doc/html/boost/interprocess/node_allocator/rebind.html index 4490109d19..af82924f44 100644 --- a/doc/html/boost/interprocess/node_allocator/rebind.html +++ b/doc/html/boost/interprocess/node_allocator/rebind.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +53,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/null_index.html b/doc/html/boost/interprocess/null_index.html index 43717c9203..a6bbe667de 100644 --- a/doc/html/boost/interprocess/null_index.html +++ b/doc/html/boost/interprocess/null_index.html @@ -40,13 +40,13 @@ typedef const int * const_iterator; // construct/copy/destruct - null_index(segment_manager_base *); + null_index(segment_manager_base *); - // public member functions - const_iterator begin() const; - iterator begin(); - const_iterator end() const; - iterator end(); + // public member functions + const_iterator begin() const; + iterator begin(); + const_iterator end() const; + iterator end(); };

    Description

    @@ -57,26 +57,26 @@ public construct/copy/destruct
    1. -
      null_index(segment_manager_base *);
      Empty constructor.
    +
    null_index(segment_manager_base *);
    Empty constructor.

    -null_index public member functions

    +null_index public member functions
    1. -
      const_iterator begin() const;
      +
      const_iterator begin() const;

      begin() is equal to end()

    2. -
      iterator begin();
      +
      iterator begin();

      begin() is equal to end()

    3. -
      const_iterator end() const;
      +
      const_iterator end() const;

      begin() is equal to end()

    4. -
      iterator end();
      +
      iterator end();

      begin() is equal to end()

    diff --git a/doc/html/boost/interprocess/null_mutex.html b/doc/html/boost/interprocess/null_mutex.html index f7e28aa6d2..7de7c59c28 100644 --- a/doc/html/boost/interprocess/null_mutex.html +++ b/doc/html/boost/interprocess/null_mutex.html @@ -36,30 +36,30 @@ class null_mutex { public: // construct/copy/destruct - null_mutex(); - ~null_mutex(); + null_mutex(); + ~null_mutex(); - // public member functions - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); - void unlock(); - void lock_sharable(); - bool try_lock_sharable(); - bool timed_lock_sharable(const boost::posix_time::ptime &); - void unlock_sharable(); - void lock_upgradable(); - bool try_lock_upgradable(); - bool timed_lock_upgradable(const boost::posix_time::ptime &); - void unlock_upgradable(); - void unlock_and_lock_upgradable(); - void unlock_and_lock_sharable(); - void unlock_upgradable_and_lock_sharable(); - void unlock_upgradable_and_lock(); - bool try_unlock_upgradable_and_lock(); - bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime &); - bool try_unlock_sharable_and_lock(); - bool try_unlock_sharable_and_lock_upgradable(); + // public member functions + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); + void unlock(); + void lock_sharable(); + bool try_lock_sharable(); + bool timed_lock_sharable(const boost::posix_time::ptime &); + void unlock_sharable(); + void lock_upgradable(); + bool try_lock_upgradable(); + bool timed_lock_upgradable(const boost::posix_time::ptime &); + void unlock_upgradable(); + void unlock_and_lock_upgradable(); + void unlock_and_lock_sharable(); + void unlock_upgradable_and_lock_sharable(); + void unlock_upgradable_and_lock(); + bool try_unlock_upgradable_and_lock(); + bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime &); + bool try_unlock_sharable_and_lock(); + bool try_unlock_sharable_and_lock_upgradable(); };

    Description

    @@ -71,95 +71,95 @@ construct/copy/destruct
    1. -
      null_mutex();
      +
      null_mutex();

      Constructor. Empty.

    2. -
      ~null_mutex();
      +
      ~null_mutex();

      Destructor. Empty.

    -null_mutex public member functions

    +null_mutex public member functions
    1. -
      void lock();
      Simulates a mutex lock() operation. Empty function.
    2. +
      void lock();
      Simulates a mutex lock() operation. Empty function.
    3. -
      bool try_lock();
      +
      bool try_lock();

      Simulates a mutex try_lock() operation. Equivalent to "return true;"

    4. -
      bool timed_lock(const boost::posix_time::ptime &);
      +
      bool timed_lock(const boost::posix_time::ptime &);

      Simulates a mutex timed_lock() operation. Equivalent to "return true;"

    5. -
      void unlock();
      +
      void unlock();

      Simulates a mutex unlock() operation. Empty function.

    6. -
      void lock_sharable();
      +
      void lock_sharable();

      Simulates a mutex lock_sharable() operation. Empty function.

    7. -
      bool try_lock_sharable();
      +
      bool try_lock_sharable();

      Simulates a mutex try_lock_sharable() operation. Equivalent to "return true;"

    8. -
      bool timed_lock_sharable(const boost::posix_time::ptime &);
      +
      bool timed_lock_sharable(const boost::posix_time::ptime &);

      Simulates a mutex timed_lock_sharable() operation. Equivalent to "return true;"

    9. -
      void unlock_sharable();
      +
      void unlock_sharable();

      Simulates a mutex unlock_sharable() operation. Empty function.

    10. -
      void lock_upgradable();
      +
      void lock_upgradable();

      Simulates a mutex lock_upgradable() operation. Empty function.

    11. -
      bool try_lock_upgradable();
      +
      bool try_lock_upgradable();

      Simulates a mutex try_lock_upgradable() operation. Equivalent to "return true;"

    12. -
      bool timed_lock_upgradable(const boost::posix_time::ptime &);
      +
      bool timed_lock_upgradable(const boost::posix_time::ptime &);

      Simulates a mutex timed_lock_upgradable() operation. Equivalent to "return true;"

    13. -
      void unlock_upgradable();
      +
      void unlock_upgradable();

      Simulates a mutex unlock_upgradable() operation. Empty function.

    14. -
      void unlock_and_lock_upgradable();
      +
      void unlock_and_lock_upgradable();

      Simulates unlock_and_lock_upgradable(). Empty function.

    15. -
      void unlock_and_lock_sharable();
      +
      void unlock_and_lock_sharable();

      Simulates unlock_and_lock_sharable(). Empty function.

    16. -
      void unlock_upgradable_and_lock_sharable();
      +
      void unlock_upgradable_and_lock_sharable();

      Simulates unlock_upgradable_and_lock_sharable(). Empty function.

    17. -
      void unlock_upgradable_and_lock();
      +
      void unlock_upgradable_and_lock();

      Simulates unlock_upgradable_and_lock(). Empty function.

    18. -
      bool try_unlock_upgradable_and_lock();
      +
      bool try_unlock_upgradable_and_lock();

      Simulates try_unlock_upgradable_and_lock(). Equivalent to "return true;"

    19. -
      bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime &);
      +
      bool timed_unlock_upgradable_and_lock(const boost::posix_time::ptime &);

      Simulates timed_unlock_upgradable_and_lock(). Equivalent to "return true;"

    20. -
      bool try_unlock_sharable_and_lock();
      +
      bool try_unlock_sharable_and_lock();

      Simulates try_unlock_sharable_and_lock(). Equivalent to "return true;"

    21. -
      bool try_unlock_sharable_and_lock_upgradable();
      +
      bool try_unlock_sharable_and_lock_upgradable();

      Simulates try_unlock_sharable_and_lock_upgradable(). Equivalent to "return true;"

    diff --git a/doc/html/boost/interprocess/offset_ptr.html b/doc/html/boost/interprocess/offset_ptr.html index 9766380f25..eff61dafa3 100644 --- a/doc/html/boost/interprocess/offset_ptr.html +++ b/doc/html/boost/interprocess/offset_ptr.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -47,60 +47,60 @@ typedef offset_ptr< U, DifferenceType, OffsetType, OffsetAlignment > rebind; // construct/copy/destruct - offset_ptr() noexcept; - offset_ptr(pointer) noexcept; - template<typename T> offset_ptr(T *, unspecified = 0) noexcept; - offset_ptr(const offset_ptr &) noexcept; + offset_ptr() noexcept; + offset_ptr(pointer) noexcept; + template<typename T> offset_ptr(T *, unspecified = 0) noexcept; + offset_ptr(const offset_ptr &) noexcept; template<typename T2> - offset_ptr(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &) noexcept; + offset_ptr(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &) noexcept; template<typename T2> - explicit offset_ptr(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &) noexcept; + explicit offset_ptr(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &) noexcept; template<typename T2, typename P2, typename O2, std::size_t A2> - offset_ptr(const offset_ptr< T2, P2, O2, A2 > &, unspecified) noexcept; + offset_ptr(const offset_ptr< T2, P2, O2, A2 > &, unspecified) noexcept; template<typename T2, typename P2, typename O2, std::size_t A2> - offset_ptr(const offset_ptr< T2, P2, O2, A2 > &, unspecified) noexcept; + offset_ptr(const offset_ptr< T2, P2, O2, A2 > &, unspecified) noexcept; template<typename T2, typename P2, typename O2, std::size_t A2> - offset_ptr(const offset_ptr< T2, P2, O2, A2 > &, unspecified) noexcept; + offset_ptr(const offset_ptr< T2, P2, O2, A2 > &, unspecified) noexcept; template<typename T2, typename P2, typename O2, std::size_t A2> - offset_ptr(const offset_ptr< T2, P2, O2, A2 > &, unspecified) noexcept; - offset_ptr & operator=(pointer) noexcept; - offset_ptr & operator=(const offset_ptr &) noexcept; + offset_ptr(const offset_ptr< T2, P2, O2, A2 > &, unspecified) noexcept; + offset_ptr & operator=(pointer) noexcept; + offset_ptr & operator=(const offset_ptr &) noexcept; template<typename T2> offset_ptr & - operator=(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &) noexcept; + operator=(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &) noexcept; - // public member functions - pointer get() const noexcept; - offset_type get_offset() const noexcept; - pointer operator->() const noexcept; - reference operator*() const noexcept; - reference operator[](difference_type) const noexcept; - offset_ptr & operator+=(difference_type) noexcept; - offset_ptr & operator-=(difference_type) noexcept; - offset_ptr & operator++(void) noexcept; - offset_ptr operator++(int) noexcept; - offset_ptr & operator--(void) noexcept; - offset_ptr operator--(int) noexcept; - explicit operator bool() const noexcept; - bool operator!() const noexcept; + // public member functions + pointer get() const noexcept; + offset_type get_offset() const noexcept; + pointer operator->() const noexcept; + reference operator*() const noexcept; + reference operator[](difference_type) const noexcept; + offset_ptr & operator+=(difference_type) noexcept; + offset_ptr & operator-=(difference_type) noexcept; + offset_ptr & operator++(void) noexcept; + offset_ptr operator++(int) noexcept; + offset_ptr & operator--(void) noexcept; + offset_ptr operator--(int) noexcept; + explicit operator bool() const noexcept; + bool operator!() const noexcept; - // public static functions - static offset_ptr pointer_to(reference) noexcept; + // public static functions + static offset_ptr pointer_to(reference) noexcept; - // friend functions - friend offset_ptr operator+(difference_type, offset_ptr) noexcept; - friend offset_ptr operator+(offset_ptr, difference_type) noexcept; - friend offset_ptr operator-(offset_ptr, difference_type) noexcept; - friend offset_ptr operator-(difference_type, offset_ptr) noexcept; + // friend functions + friend offset_ptr operator+(difference_type, offset_ptr) noexcept; + friend offset_ptr operator+(offset_ptr, difference_type) noexcept; + friend offset_ptr operator-(offset_ptr, difference_type) noexcept; + friend offset_ptr operator-(difference_type, offset_ptr) noexcept; friend difference_type - operator-(const offset_ptr &, const offset_ptr &) noexcept; + operator-(const offset_ptr &, const offset_ptr &) noexcept; - // private member functions + // private member functions template<typename T2> - void assign(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &, + void assign(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &, unspecified) noexcept; template<typename T2> - void assign(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &, + void assign(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > &, unspecified) noexcept; };
    @@ -153,166 +153,166 @@ b>Note:
    1. -
      offset_ptr() noexcept;
      +
      offset_ptr() noexcept;

      Default constructor (null pointer). Never throws.

    2. -
      offset_ptr(pointer ptr) noexcept;
      +
      offset_ptr(pointer ptr) noexcept;

      Constructor from raw pointer (allows "0" pointer conversion). Never throws.

    3. -
      template<typename T> offset_ptr(T * ptr, unspecified = 0) noexcept;
      +
      template<typename T> offset_ptr(T * ptr, unspecified = 0) noexcept;

      Constructor from other pointer. Never throws.

    4. -
      offset_ptr(const offset_ptr & ptr) noexcept;
      +
      offset_ptr(const offset_ptr & ptr) noexcept;

      Constructor from other offset_ptr Never throws.

    5. template<typename T2> 
      -  offset_ptr(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr) noexcept;
      + offset_ptr(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr) noexcept;

      Constructor from other offset_ptr. Only takes part in overload resolution if T2* is convertible to PointedType*. Never throws.

    6. template<typename T2> 
      -  explicit offset_ptr(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr) noexcept;
      + explicit offset_ptr(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr) noexcept;

      Constructor from other offset_ptr. Only takes part in overload resolution if PointedType* is constructible from T2* other than via a conversion (e.g. cast to a derived class). Never throws.

    7. template<typename T2, typename P2, typename O2, std::size_t A2> 
      -  offset_ptr(const offset_ptr< T2, P2, O2, A2 > & r, unspecified) noexcept;
      + offset_ptr(const offset_ptr< T2, P2, O2, A2 > & r, unspecified) noexcept;

      Emulates static_cast operator. Never throws.

    8. template<typename T2, typename P2, typename O2, std::size_t A2> 
      -  offset_ptr(const offset_ptr< T2, P2, O2, A2 > & r, unspecified) noexcept;
      + offset_ptr(const offset_ptr< T2, P2, O2, A2 > & r, unspecified) noexcept;

      Emulates const_cast operator. Never throws.

    9. template<typename T2, typename P2, typename O2, std::size_t A2> 
      -  offset_ptr(const offset_ptr< T2, P2, O2, A2 > & r, unspecified) noexcept;
      + offset_ptr(const offset_ptr< T2, P2, O2, A2 > & r, unspecified) noexcept;

      Emulates dynamic_cast operator. Never throws.

    10. template<typename T2, typename P2, typename O2, std::size_t A2> 
      -  offset_ptr(const offset_ptr< T2, P2, O2, A2 > & r, unspecified) noexcept;
      + offset_ptr(const offset_ptr< T2, P2, O2, A2 > & r, unspecified) noexcept;

      Emulates reinterpret_cast operator. Never throws.

    11. -
      offset_ptr & operator=(pointer from) noexcept;
      +
      offset_ptr & operator=(pointer from) noexcept;

      Assignment from pointer (saves extra conversion). Never throws.

    12. -
      offset_ptr & operator=(const offset_ptr & ptr) noexcept;
      +
      offset_ptr & operator=(const offset_ptr & ptr) noexcept;

      Assignment from other offset_ptr. Never throws.

    13. template<typename T2> 
         offset_ptr & 
      -  operator=(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr) noexcept;
      + operator=(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr) noexcept;

      Assignment from related offset_ptr. If pointers of pointee types are assignable, offset_ptrs will be assignable. Never throws.

    -offset_ptr public member functions

    +offset_ptr public member functions
    1. -
      pointer get() const noexcept;
      +
      pointer get() const noexcept;

      Obtains raw pointer from offset. Never throws.

    2. -
    3. offset_type get_offset() const noexcept;
    4. +
    5. offset_type get_offset() const noexcept;
    6. -
      pointer operator->() const noexcept;
      +
      pointer operator->() const noexcept;

      Pointer-like -> operator. It can return 0 pointer. Never throws.

    7. -
      reference operator*() const noexcept;
      +
      reference operator*() const noexcept;

      Dereferencing operator, if it is a null offset_ptr behavior is undefined. Never throws.

    8. -
      reference operator[](difference_type idx) const noexcept;
      +
      reference operator[](difference_type idx) const noexcept;

      Indexing operator. Never throws.

    9. -
      offset_ptr & operator+=(difference_type offset) noexcept;
      +
      offset_ptr & operator+=(difference_type offset) noexcept;

      offset_ptr += difference_type. Never throws.

    10. -
      offset_ptr & operator-=(difference_type offset) noexcept;
      +
      offset_ptr & operator-=(difference_type offset) noexcept;

      offset_ptr -= difference_type. Never throws.

    11. -
      offset_ptr & operator++(void) noexcept;
      +
      offset_ptr & operator++(void) noexcept;

      ++offset_ptr. Never throws.

    12. -
      offset_ptr operator++(int) noexcept;
      +
      offset_ptr operator++(int) noexcept;

      offset_ptr++. Never throws.

    13. -
      offset_ptr & operator--(void) noexcept;
      +
      offset_ptr & operator--(void) noexcept;

      offset_ptr. Never throws.

    14. -
      offset_ptr operator--(int) noexcept;
      +
      offset_ptr operator--(int) noexcept;

      offset_ptr–. Never throws.

    15. -
      explicit operator bool() const noexcept;
      +
      explicit operator bool() const noexcept;

      safe bool conversion operator. Never throws.

    16. -
      bool operator!() const noexcept;
      +
      bool operator!() const noexcept;

      Not operator. Not needed in theory, but improves portability. Never throws

    -offset_ptr public static functions

    +offset_ptr public static functions
    1. -
      static offset_ptr pointer_to(reference r) noexcept;
      +
      static offset_ptr pointer_to(reference r) noexcept;

      Compatibility with pointer_traits

    -offset_ptr friend functions

    +offset_ptr friend functions
    1. -
      friend offset_ptr operator+(difference_type diff, offset_ptr right) noexcept;
      +
      friend offset_ptr operator+(difference_type diff, offset_ptr right) noexcept;

      difference_type + offset_ptr operation

    2. -
      friend offset_ptr operator+(offset_ptr left, difference_type diff) noexcept;
      +
      friend offset_ptr operator+(offset_ptr left, difference_type diff) noexcept;

      offset_ptr + difference_type operation

    3. -
      friend offset_ptr operator-(offset_ptr left, difference_type diff) noexcept;
      +
      friend offset_ptr operator-(offset_ptr left, difference_type diff) noexcept;

      offset_ptr - diff operation

    4. -
      friend offset_ptr operator-(difference_type diff, offset_ptr right) noexcept;
      +
      friend offset_ptr operator-(difference_type diff, offset_ptr right) noexcept;

      offset_ptr - diff operation

    5. friend difference_type 
      -operator-(const offset_ptr & pt, const offset_ptr & pt2) noexcept;
      +operator-(const offset_ptr & pt, const offset_ptr & pt2) noexcept;

      offset_ptr - offset_ptr operation

    -offset_ptr private member functions

    +offset_ptr private member functions
    1. template<typename T2> 
      -  void assign(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr, 
      +  void assign(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr, 
                     unspecified) noexcept;
    2. template<typename T2> 
      -  void assign(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr, 
      +  void assign(const offset_ptr< T2, DifferenceType, OffsetType, OffsetAlignment > & ptr, 
                     unspecified) noexcept;
    @@ -328,7 +328,7 @@ b>Note: -PrevUpHomeNext +PrevUpHomeNext diff --git a/doc/html/boost/interprocess/operator___idp38496176.html b/doc/html/boost/interprocess/operator___idp38496176.html new file mode 100644 index 0000000000..df946fd67f --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38496176.html @@ -0,0 +1,58 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/adaptive_pool.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    +         unsigned char OP> 
    +  bool operator==(const adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    +                  const adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    +
    +

    Description

    +

    Equality test for same type of adaptive_pool

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38504448.html b/doc/html/boost/interprocess/operator___idp38504448.html new file mode 100644 index 0000000000..03f7bee610 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38504448.html @@ -0,0 +1,58 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/adaptive_pool.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    +         unsigned char OP> 
    +  bool operator!=(const adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    +                  const adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    +
    +

    Description

    +

    Inequality test for same type of adaptive_pool

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38584608.html b/doc/html/boost/interprocess/operator___idp38584608.html new file mode 100644 index 0000000000..701f7ee875 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38584608.html @@ -0,0 +1,57 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/allocator.hpp>
    +
    +
    +template<typename T, typename SegmentManager> 
    +  bool operator==(const allocator< T, SegmentManager > & alloc1, 
    +                  const allocator< T, SegmentManager > & alloc2);
    +
    +

    Description

    +

    Equality test for same type of allocator

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38589584.html b/doc/html/boost/interprocess/operator___idp38589584.html new file mode 100644 index 0000000000..12418cd2d4 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38589584.html @@ -0,0 +1,57 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/allocator.hpp>
    +
    +
    +template<typename T, typename SegmentManager> 
    +  bool operator!=(const allocator< T, SegmentManager > & alloc1, 
    +                  const allocator< T, SegmentManager > & alloc2);
    +
    +

    Description

    +

    Inequality test for same type of allocator

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38691552.html b/doc/html/boost/interprocess/operator___idp38691552.html new file mode 100644 index 0000000000..0904433195 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38691552.html @@ -0,0 +1,58 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/cached_adaptive_pool.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    +         std::size_t OP> 
    +  bool operator==(const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    +                  const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    +
    +

    Description

    +

    Equality test for same type of cached_adaptive_pool

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38699840.html b/doc/html/boost/interprocess/operator___idp38699840.html new file mode 100644 index 0000000000..1b80f2e46e --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38699840.html @@ -0,0 +1,58 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/cached_adaptive_pool.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    +         std::size_t OP> 
    +  bool operator!=(const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    +                  const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    +
    +

    Description

    +

    Inequality test for same type of cached_adaptive_pool

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38798784.html b/doc/html/boost/interprocess/operator___idp38798784.html new file mode 100644 index 0000000000..ec0173c58a --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38798784.html @@ -0,0 +1,57 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/cached_node_allocator.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NPC> 
    +  bool operator==(const cached_node_allocator< T, S, NPC > & alloc1, 
    +                  const cached_node_allocator< T, S, NPC > & alloc2);
    +
    +

    Description

    +

    Equality test for same type of cached_node_allocator

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38805344.html b/doc/html/boost/interprocess/operator___idp38805344.html new file mode 100644 index 0000000000..98165b8de6 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38805344.html @@ -0,0 +1,57 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/cached_node_allocator.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NPC> 
    +  bool operator!=(const cached_node_allocator< T, S, NPC > & alloc1, 
    +                  const cached_node_allocator< T, S, NPC > & alloc2);
    +
    +

    Description

    +

    Inequality test for same type of cached_node_allocator

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38898704.html b/doc/html/boost/interprocess/operator___idp38898704.html new file mode 100644 index 0000000000..e02e75fedc --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38898704.html @@ -0,0 +1,57 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/node_allocator.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NPC> 
    +  bool operator==(const node_allocator< T, S, NPC > & alloc1, 
    +                  const node_allocator< T, S, NPC > & alloc2);
    +
    +

    Description

    +

    Equality test for same type of node_allocator

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp38905248.html b/doc/html/boost/interprocess/operator___idp38905248.html new file mode 100644 index 0000000000..baf3aa9e18 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp38905248.html @@ -0,0 +1,57 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/node_allocator.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NPC> 
    +  bool operator!=(const node_allocator< T, S, NPC > & alloc1, 
    +                  const node_allocator< T, S, NPC > & alloc2);
    +
    +

    Description

    +

    Inequality test for same type of node_allocator

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp39004656.html b/doc/html/boost/interprocess/operator___idp39004656.html new file mode 100644 index 0000000000..95d91c9780 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp39004656.html @@ -0,0 +1,58 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/private_adaptive_pool.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    +         unsigned char OP> 
    +  bool operator==(const private_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    +                  const private_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    +
    +

    Description

    +

    Equality test for same type of private_adaptive_pool

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp39012944.html b/doc/html/boost/interprocess/operator___idp39012944.html new file mode 100644 index 0000000000..7ab29fd99c --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp39012944.html @@ -0,0 +1,58 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/private_adaptive_pool.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    +         unsigned char OP> 
    +  bool operator!=(const private_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    +                  const private_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    +
    +

    Description

    +

    Inequality test for same type of private_adaptive_pool

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp39109776.html b/doc/html/boost/interprocess/operator___idp39109776.html new file mode 100644 index 0000000000..0030ccc3fe --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp39109776.html @@ -0,0 +1,58 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/private_node_allocator.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    +         unsigned char OP> 
    +  bool operator==(const private_node_allocator< T, S, NodesPerBlock, F, OP > & alloc1, 
    +                  const private_node_allocator< T, S, NodesPerBlock, F, OP > & alloc2);
    +
    +

    Description

    +

    Equality test for same type of private_node_allocator

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp39118064.html b/doc/html/boost/interprocess/operator___idp39118064.html new file mode 100644 index 0000000000..dc999263ee --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp39118064.html @@ -0,0 +1,58 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/allocators/private_node_allocator.hpp>
    +
    +
    +template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    +         unsigned char OP> 
    +  bool operator!=(const private_node_allocator< T, S, NodesPerBlock, F, OP > & alloc1, 
    +                  const private_node_allocator< T, S, NodesPerBlock, F, OP > & alloc2);
    +
    +

    Description

    +

    Inequality test for same type of private_node_allocator

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp40278064.html b/doc/html/boost/interprocess/operator___idp40278064.html new file mode 100644 index 0000000000..a8c421639b --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp40278064.html @@ -0,0 +1,57 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename U, typename VP> 
    +  bool operator==(intrusive_ptr< T, VP > const & a, 
    +                  intrusive_ptr< U, VP > const & b);
    +
    +

    Description

    +

    Returns a.get() == b.get(). Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp40283280.html b/doc/html/boost/interprocess/operator___idp40283280.html new file mode 100644 index 0000000000..bbb4239738 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp40283280.html @@ -0,0 +1,57 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename U, typename VP> 
    +  bool operator!=(intrusive_ptr< T, VP > const & a, 
    +                  intrusive_ptr< U, VP > const & b);
    +
    +

    Description

    +

    Returns a.get() != b.get(). Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp40288496.html b/doc/html/boost/interprocess/operator___idp40288496.html new file mode 100644 index 0000000000..a947f153ba --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp40288496.html @@ -0,0 +1,57 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename VP> 
    +  bool operator==(intrusive_ptr< T, VP > const & a, 
    +                  const typename intrusive_ptr< T, VP >::pointer & b);
    +
    +

    Description

    +

    Returns a.get() == b. Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp40293296.html b/doc/html/boost/interprocess/operator___idp40293296.html new file mode 100644 index 0000000000..aa5fda1576 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp40293296.html @@ -0,0 +1,57 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename VP> 
    +  bool operator!=(intrusive_ptr< T, VP > const & a, 
    +                  const typename intrusive_ptr< T, VP >::pointer & b);
    +
    +

    Description

    +

    Returns a.get() != b. Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp40298096.html b/doc/html/boost/interprocess/operator___idp40298096.html new file mode 100644 index 0000000000..8ce2513440 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp40298096.html @@ -0,0 +1,57 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator==

    +

    boost::interprocess::operator==

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename VP> 
    +  bool operator==(const typename intrusive_ptr< T, VP >::pointer & a, 
    +                  intrusive_ptr< T, VP > const & b);
    +
    +

    Description

    +

    Returns a == b.get(). Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp40302896.html b/doc/html/boost/interprocess/operator___idp40302896.html new file mode 100644 index 0000000000..30b4f643c7 --- /dev/null +++ b/doc/html/boost/interprocess/operator___idp40302896.html @@ -0,0 +1,57 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator!=

    +

    boost::interprocess::operator!=

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename VP> 
    +  bool operator!=(const typename intrusive_ptr< T, VP >::pointer & a, 
    +                  intrusive_ptr< T, VP > const & b);
    +
    +

    Description

    +

    Returns a != b.get(). Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator___idp54401248.html b/doc/html/boost/interprocess/operator___idp54401248.html deleted file mode 100644 index f1629810ce..0000000000 --- a/doc/html/boost/interprocess/operator___idp54401248.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/adaptive_pool.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    -         unsigned char OP> 
    -  bool operator==(const adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    -                  const adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    -
    -

    Description

    -

    Equality test for same type of adaptive_pool

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54409520.html b/doc/html/boost/interprocess/operator___idp54409520.html deleted file mode 100644 index 1e0f0b88f3..0000000000 --- a/doc/html/boost/interprocess/operator___idp54409520.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/adaptive_pool.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    -         unsigned char OP> 
    -  bool operator!=(const adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    -                  const adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    -
    -

    Description

    -

    Inequality test for same type of adaptive_pool

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54489968.html b/doc/html/boost/interprocess/operator___idp54489968.html deleted file mode 100644 index 6002fa00ae..0000000000 --- a/doc/html/boost/interprocess/operator___idp54489968.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/allocator.hpp>
    -
    -
    -template<typename T, typename SegmentManager> 
    -  bool operator==(const allocator< T, SegmentManager > & alloc1, 
    -                  const allocator< T, SegmentManager > & alloc2);
    -
    -

    Description

    -

    Equality test for same type of allocator

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54494944.html b/doc/html/boost/interprocess/operator___idp54494944.html deleted file mode 100644 index 72e38e0b2c..0000000000 --- a/doc/html/boost/interprocess/operator___idp54494944.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/allocator.hpp>
    -
    -
    -template<typename T, typename SegmentManager> 
    -  bool operator!=(const allocator< T, SegmentManager > & alloc1, 
    -                  const allocator< T, SegmentManager > & alloc2);
    -
    -

    Description

    -

    Inequality test for same type of allocator

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54596912.html b/doc/html/boost/interprocess/operator___idp54596912.html deleted file mode 100644 index 1651e6624e..0000000000 --- a/doc/html/boost/interprocess/operator___idp54596912.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/cached_adaptive_pool.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    -         std::size_t OP> 
    -  bool operator==(const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    -                  const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    -
    -

    Description

    -

    Equality test for same type of cached_adaptive_pool

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54605200.html b/doc/html/boost/interprocess/operator___idp54605200.html deleted file mode 100644 index c620f6bc75..0000000000 --- a/doc/html/boost/interprocess/operator___idp54605200.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/cached_adaptive_pool.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    -         std::size_t OP> 
    -  bool operator!=(const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    -                  const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    -
    -

    Description

    -

    Inequality test for same type of cached_adaptive_pool

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54704144.html b/doc/html/boost/interprocess/operator___idp54704144.html deleted file mode 100644 index 7477e065cb..0000000000 --- a/doc/html/boost/interprocess/operator___idp54704144.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/cached_node_allocator.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NPC> 
    -  bool operator==(const cached_node_allocator< T, S, NPC > & alloc1, 
    -                  const cached_node_allocator< T, S, NPC > & alloc2);
    -
    -

    Description

    -

    Equality test for same type of cached_node_allocator

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54710704.html b/doc/html/boost/interprocess/operator___idp54710704.html deleted file mode 100644 index 845bdb9ed2..0000000000 --- a/doc/html/boost/interprocess/operator___idp54710704.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/cached_node_allocator.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NPC> 
    -  bool operator!=(const cached_node_allocator< T, S, NPC > & alloc1, 
    -                  const cached_node_allocator< T, S, NPC > & alloc2);
    -
    -

    Description

    -

    Inequality test for same type of cached_node_allocator

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54804064.html b/doc/html/boost/interprocess/operator___idp54804064.html deleted file mode 100644 index 5ded591928..0000000000 --- a/doc/html/boost/interprocess/operator___idp54804064.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/node_allocator.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NPC> 
    -  bool operator==(const node_allocator< T, S, NPC > & alloc1, 
    -                  const node_allocator< T, S, NPC > & alloc2);
    -
    -

    Description

    -

    Equality test for same type of node_allocator

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54810608.html b/doc/html/boost/interprocess/operator___idp54810608.html deleted file mode 100644 index 641a5b6235..0000000000 --- a/doc/html/boost/interprocess/operator___idp54810608.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/node_allocator.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NPC> 
    -  bool operator!=(const node_allocator< T, S, NPC > & alloc1, 
    -                  const node_allocator< T, S, NPC > & alloc2);
    -
    -

    Description

    -

    Inequality test for same type of node_allocator

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54910016.html b/doc/html/boost/interprocess/operator___idp54910016.html deleted file mode 100644 index ceb22c73a0..0000000000 --- a/doc/html/boost/interprocess/operator___idp54910016.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/private_adaptive_pool.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    -         unsigned char OP> 
    -  bool operator==(const private_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    -                  const private_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    -
    -

    Description

    -

    Equality test for same type of private_adaptive_pool

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp54918304.html b/doc/html/boost/interprocess/operator___idp54918304.html deleted file mode 100644 index fb509876f1..0000000000 --- a/doc/html/boost/interprocess/operator___idp54918304.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/private_adaptive_pool.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    -         unsigned char OP> 
    -  bool operator!=(const private_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc1, 
    -                  const private_adaptive_pool< T, S, NodesPerBlock, F, OP > & alloc2);
    -
    -

    Description

    -

    Inequality test for same type of private_adaptive_pool

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp55015136.html b/doc/html/boost/interprocess/operator___idp55015136.html deleted file mode 100644 index 9fab0afeea..0000000000 --- a/doc/html/boost/interprocess/operator___idp55015136.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/private_node_allocator.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    -         unsigned char OP> 
    -  bool operator==(const private_node_allocator< T, S, NodesPerBlock, F, OP > & alloc1, 
    -                  const private_node_allocator< T, S, NodesPerBlock, F, OP > & alloc2);
    -
    -

    Description

    -

    Equality test for same type of private_node_allocator

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp55023424.html b/doc/html/boost/interprocess/operator___idp55023424.html deleted file mode 100644 index 2eb5448be8..0000000000 --- a/doc/html/boost/interprocess/operator___idp55023424.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/allocators/private_node_allocator.hpp>
    -
    -
    -template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
    -         unsigned char OP> 
    -  bool operator!=(const private_node_allocator< T, S, NodesPerBlock, F, OP > & alloc1, 
    -                  const private_node_allocator< T, S, NodesPerBlock, F, OP > & alloc2);
    -
    -

    Description

    -

    Inequality test for same type of private_node_allocator

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp56174768.html b/doc/html/boost/interprocess/operator___idp56174768.html deleted file mode 100644 index 7ff0425b46..0000000000 --- a/doc/html/boost/interprocess/operator___idp56174768.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename U, typename VP> 
    -  bool operator==(intrusive_ptr< T, VP > const & a, 
    -                  intrusive_ptr< U, VP > const & b);
    -
    -

    Description

    -

    Returns a.get() == b.get(). Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp56179984.html b/doc/html/boost/interprocess/operator___idp56179984.html deleted file mode 100644 index e030568a55..0000000000 --- a/doc/html/boost/interprocess/operator___idp56179984.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename U, typename VP> 
    -  bool operator!=(intrusive_ptr< T, VP > const & a, 
    -                  intrusive_ptr< U, VP > const & b);
    -
    -

    Description

    -

    Returns a.get() != b.get(). Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp56185200.html b/doc/html/boost/interprocess/operator___idp56185200.html deleted file mode 100644 index b6f4f41435..0000000000 --- a/doc/html/boost/interprocess/operator___idp56185200.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename VP> 
    -  bool operator==(intrusive_ptr< T, VP > const & a, 
    -                  const typename intrusive_ptr< T, VP >::pointer & b);
    -
    -

    Description

    -

    Returns a.get() == b. Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp56190000.html b/doc/html/boost/interprocess/operator___idp56190000.html deleted file mode 100644 index b6dbd000b6..0000000000 --- a/doc/html/boost/interprocess/operator___idp56190000.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename VP> 
    -  bool operator!=(intrusive_ptr< T, VP > const & a, 
    -                  const typename intrusive_ptr< T, VP >::pointer & b);
    -
    -

    Description

    -

    Returns a.get() != b. Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp56194800.html b/doc/html/boost/interprocess/operator___idp56194800.html deleted file mode 100644 index 08383b3afe..0000000000 --- a/doc/html/boost/interprocess/operator___idp56194800.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator==

    -

    boost::interprocess::operator==

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename VP> 
    -  bool operator==(const typename intrusive_ptr< T, VP >::pointer & a, 
    -                  intrusive_ptr< T, VP > const & b);
    -
    -

    Description

    -

    Returns a == b.get(). Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator___idp56199600.html b/doc/html/boost/interprocess/operator___idp56199600.html deleted file mode 100644 index 2f44a50d02..0000000000 --- a/doc/html/boost/interprocess/operator___idp56199600.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator!=

    -

    boost::interprocess::operator!=

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename VP> 
    -  bool operator!=(const typename intrusive_ptr< T, VP >::pointer & a, 
    -                  intrusive_ptr< T, VP > const & b);
    -
    -

    Description

    -

    Returns a != b.get(). Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator_idp39971568.html b/doc/html/boost/interprocess/operator_idp39971568.html new file mode 100644 index 0000000000..427c15eebe --- /dev/null +++ b/doc/html/boost/interprocess/operator_idp39971568.html @@ -0,0 +1,59 @@ + + + + +Function template operator<< + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator<<

    +

    boost::interprocess::operator<<

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/offset_ptr.hpp>
    +
    +
    +template<typename E, typename T, typename W, typename X, typename Y, 
    +         std::size_t Z> 
    +  std::basic_ostream< E, T > & 
    +  operator<<(std::basic_ostream< E, T > & os, 
    +             offset_ptr< W, X, Y, Z > const & p);
    +
    +

    Description

    +

    operator<< for offset ptr

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator_idp39978480.html b/doc/html/boost/interprocess/operator_idp39978480.html new file mode 100644 index 0000000000..4eb8fad0de --- /dev/null +++ b/doc/html/boost/interprocess/operator_idp39978480.html @@ -0,0 +1,58 @@ + + + + +Function template operator>> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator>>

    +

    boost::interprocess::operator>>

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/offset_ptr.hpp>
    +
    +
    +template<typename E, typename T, typename W, typename X, typename Y, 
    +         std::size_t Z> 
    +  std::basic_istream< E, T > & 
    +  operator>>(std::basic_istream< E, T > & is, offset_ptr< W, X, Y, Z > & p);
    +
    +

    Description

    +

    operator>> for offset ptr

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator_idp40307696.html b/doc/html/boost/interprocess/operator_idp40307696.html new file mode 100644 index 0000000000..6dd1f7cab7 --- /dev/null +++ b/doc/html/boost/interprocess/operator_idp40307696.html @@ -0,0 +1,57 @@ + + + + +Function template operator< + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator<

    +

    boost::interprocess::operator<

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename VP> 
    +  bool operator<(intrusive_ptr< T, VP > const & a, 
    +                 intrusive_ptr< T, VP > const & b);
    +
    +

    Description

    +

    Returns a.get() < b.get(). Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/operator_idp55877088.html b/doc/html/boost/interprocess/operator_idp55877088.html deleted file mode 100644 index f473e4d90b..0000000000 --- a/doc/html/boost/interprocess/operator_idp55877088.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - -Function template operator<< - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator<<

    -

    boost::interprocess::operator<<

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/offset_ptr.hpp>
    -
    -
    -template<typename E, typename T, typename W, typename X, typename Y, 
    -         std::size_t Z> 
    -  std::basic_ostream< E, T > & 
    -  operator<<(std::basic_ostream< E, T > & os, 
    -             offset_ptr< W, X, Y, Z > const & p);
    -
    -

    Description

    -

    operator<< for offset ptr

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator_idp55884000.html b/doc/html/boost/interprocess/operator_idp55884000.html deleted file mode 100644 index 7cf4b8d880..0000000000 --- a/doc/html/boost/interprocess/operator_idp55884000.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template operator>> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator>>

    -

    boost::interprocess::operator>>

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/offset_ptr.hpp>
    -
    -
    -template<typename E, typename T, typename W, typename X, typename Y, 
    -         std::size_t Z> 
    -  std::basic_istream< E, T > & 
    -  operator>>(std::basic_istream< E, T > & is, offset_ptr< W, X, Y, Z > & p);
    -
    -

    Description

    -

    operator>> for offset ptr

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/operator_idp56204400.html b/doc/html/boost/interprocess/operator_idp56204400.html deleted file mode 100644 index 8624345409..0000000000 --- a/doc/html/boost/interprocess/operator_idp56204400.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template operator< - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator<

    -

    boost::interprocess::operator<

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename VP> 
    -  bool operator<(intrusive_ptr< T, VP > const & a, 
    -                 intrusive_ptr< T, VP > const & b);
    -
    -

    Description

    -

    Returns a.get() < b.get(). Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/permissions.html b/doc/html/boost/interprocess/permissions.html index c9d735cbe5..ab5bde4e9b 100644 --- a/doc/html/boost/interprocess/permissions.html +++ b/doc/html/boost/interprocess/permissions.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -36,14 +36,14 @@ class permissions { public: // construct/copy/destruct - permissions(os_permissions_type); - permissions(); + permissions(os_permissions_type); + permissions(); - // public member functions - void set_default(); - void set_unrestricted(); - void set_permissions(os_permissions_type); - os_permissions_type get_permissions() const; + // public member functions + void set_default(); + void set_unrestricted(); + void set_permissions(os_permissions_type); + os_permissions_type get_permissions() const; };

    Description

    @@ -55,33 +55,33 @@ construct/copy/destruct
    1. -
      permissions(os_permissions_type type);
      +
      permissions(os_permissions_type type);

      Constructs a permissions object from a user provided os-dependent permissions.

    2. -
      permissions();
      +
      permissions();

      Constructs a default permissions object: A null security attributes pointer for windows or 0644 for UNIX.

    -permissions public member functions

    +permissions public member functions
    1. -
      void set_default();
      +
      void set_default();

      Sets permissions to default values: A null security attributes pointer for windows or 0644 for UNIX.

    2. -
      void set_unrestricted();
      +
      void set_unrestricted();

      Sets permissions to unrestricted access: A null DACL for windows or 0666 for UNIX.

    3. -
      void set_permissions(os_permissions_type perm);
      +
      void set_permissions(os_permissions_type perm);

      Sets permissions from a user provided os-dependent permissions.

    4. -
      os_permissions_type get_permissions() const;
      +
      os_permissions_type get_permissions() const;

      Returns stored os-dependent permissions

    @@ -98,7 +98,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/private_adaptive_pool.html b/doc/html/boost/interprocess/private_adaptive_pool.html index 838d6539c3..ffb97b4222 100644 --- a/doc/html/boost/interprocess/private_adaptive_pool.html +++ b/doc/html/boost/interprocess/private_adaptive_pool.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -55,41 +55,41 @@ }; // construct/copy/destruct - private_adaptive_pool(segment_manager *); - private_adaptive_pool(const private_adaptive_pool &); + private_adaptive_pool(segment_manager *); + private_adaptive_pool(const private_adaptive_pool &); template<typename T2> - private_adaptive_pool(const private_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &); + private_adaptive_pool(const private_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &); template<typename T2, typename SegmentManager2, std::size_t N2, std::size_t F2, unsigned char OP2> private_adaptive_pool & - operator=(const private_adaptive_pool< T2, SegmentManager2, N2, F2 > &); - private_adaptive_pool & operator=(const private_adaptive_pool &); - ~private_adaptive_pool(); + operator=(const private_adaptive_pool< T2, SegmentManager2, N2, F2 > &); + private_adaptive_pool & operator=(const private_adaptive_pool &); + ~private_adaptive_pool(); - // public member functions - node_pool_t * get_node_pool() const; - segment_manager * get_segment_manager() const; - size_type max_size() const; - pointer allocate(size_type, cvoid_pointer = 0); - void deallocate(const pointer &, size_type); - void deallocate_free_blocks(); - pointer address(reference) const; - const_pointer address(const_reference) const; - void construct(const pointer &, const_reference); - void destroy(const pointer &); - size_type size(const pointer &) const; - pointer allocation_command(boost::interprocess::allocation_type, size_type, + // public member functions + node_pool_t * get_node_pool() const; + segment_manager * get_segment_manager() const; + size_type max_size() const; + pointer allocate(size_type, cvoid_pointer = 0); + void deallocate(const pointer &, size_type); + void deallocate_free_blocks(); + pointer address(reference) const; + const_pointer address(const_reference) const; + void construct(const pointer &, const_reference); + void destroy(const pointer &); + size_type size(const pointer &) const; + pointer allocation_command(boost::interprocess::allocation_type, size_type, size_type &, pointer &); - void allocate_many(size_type, size_type, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &); - pointer allocate_one(); - void allocate_individual(size_type, multiallocation_chain &); - void deallocate_one(const pointer &); - void deallocate_individual(multiallocation_chain &); + void allocate_many(size_type, size_type, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &); + pointer allocate_one(); + void allocate_individual(size_type, multiallocation_chain &); + void deallocate_one(const pointer &); + void deallocate_individual(multiallocation_chain &); - // friend functions - friend void swap(self_t &, self_t &); + // friend functions + friend void swap(self_t &, self_t &); };

    Description

    @@ -103,125 +103,125 @@ construct/copy/destruct
    1. -
      private_adaptive_pool(segment_manager * segment_mngr);
      +
      private_adaptive_pool(segment_manager * segment_mngr);

      Constructor from a segment manager. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    2. -
      private_adaptive_pool(const private_adaptive_pool & other);
      +
      private_adaptive_pool(const private_adaptive_pool & other);

      Copy constructor from other private_adaptive_pool. Increments the reference count of the associated node pool. Never throws

    3. template<typename T2> 
      -  private_adaptive_pool(const private_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > & other);
      + private_adaptive_pool(const private_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > & other);

      Copy constructor from related private_adaptive_pool. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    4. template<typename T2, typename SegmentManager2, std::size_t N2, 
                std::size_t F2, unsigned char OP2> 
         private_adaptive_pool & 
      -  operator=(const private_adaptive_pool< T2, SegmentManager2, N2, F2 > &);
      + operator=(const private_adaptive_pool< T2, SegmentManager2, N2, F2 > &);

      Not assignable from related private_adaptive_pool

    5. -
      private_adaptive_pool & operator=(const private_adaptive_pool &);
      +
      private_adaptive_pool & operator=(const private_adaptive_pool &);

      Not assignable from other private_adaptive_pool

    6. -
      ~private_adaptive_pool();
      +
      ~private_adaptive_pool();

      Destructor, removes node_pool_t from memory if its reference count reaches to zero. Never throws

    -private_adaptive_pool public member functions

    +private_adaptive_pool public member functions
    1. -
      node_pool_t * get_node_pool() const;
      +
      node_pool_t * get_node_pool() const;

      Returns a pointer to the node pool. Never throws

    2. -
      segment_manager * get_segment_manager() const;
      +
      segment_manager * get_segment_manager() const;

      Returns the segment manager. Never throws

    3. -
      size_type max_size() const;
      +
      size_type max_size() const;

      Returns the number of elements that could be allocated. Never throws

    4. -
      pointer allocate(size_type count, cvoid_pointer hint = 0);
      +
      pointer allocate(size_type count, cvoid_pointer hint = 0);

      Allocate memory for an array of count elements. Throws boost::interprocess::bad_alloc if there is no enough memory

    5. -
      void deallocate(const pointer & ptr, size_type count);
      +
      void deallocate(const pointer & ptr, size_type count);

      Deallocate allocated memory. Never throws

    6. -
      void deallocate_free_blocks();
      +
      void deallocate_free_blocks();

      Deallocates all free blocks of the pool

    7. -
      pointer address(reference value) const;
      +
      pointer address(reference value) const;

      Returns address of mutable object. Never throws

    8. -
      const_pointer address(const_reference value) const;
      +
      const_pointer address(const_reference value) const;

      Returns address of non mutable object. Never throws

    9. -
      void construct(const pointer & ptr, const_reference v);
      +
      void construct(const pointer & ptr, const_reference v);

      Copy construct an object. Throws if T's copy constructor throws

    10. -
      void destroy(const pointer & ptr);
      +
      void destroy(const pointer & ptr);

      Destroys object. Throws if object's destructor throws

    11. -
      size_type size(const pointer & p) const;
      +
      size_type size(const pointer & p) const;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.

    12. -
    13. pointer allocation_command(boost::interprocess::allocation_type command, 
      +
    14. pointer allocation_command(boost::interprocess::allocation_type command, 
                                  size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);
    15. -
      void allocate_many(size_type elem_size, size_type num_elements, 
      +
      void allocate_many(size_type elem_size, size_type num_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    16. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated

    17. -
      void deallocate_many(multiallocation_chain & chain);
      +
      void deallocate_many(multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    18. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc if there is no enough memory

    19. -
      void allocate_individual(size_type num_elements, 
      +
      void allocate_individual(size_type num_elements, 
                                multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    20. -
      void deallocate_one(const pointer & p);
      +
      void deallocate_one(const pointer & p);

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

    21. -
      void deallocate_individual(multiallocation_chain & chain);
      +
      void deallocate_individual(multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    -private_adaptive_pool friend functions

    +private_adaptive_pool friend functions
    1. -
      friend void swap(self_t & alloc1, self_t & alloc2);
      +
      friend void swap(self_t & alloc1, self_t & alloc2);

      Swaps allocators. Does not throw. If each allocator is placed in a different memory segment, the result is undefined.

    @@ -237,7 +237,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/private_adaptive_pool/rebind.html b/doc/html/boost/interprocess/private_adaptive_pool/rebind.html index 0b9ee8bbd2..4f73713c72 100644 --- a/doc/html/boost/interprocess/private_adaptive_pool/rebind.html +++ b/doc/html/boost/interprocess/private_adaptive_pool/rebind.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +53,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/private_node_allocator.html b/doc/html/boost/interprocess/private_node_allocator.html index 37f22b8f2d..bf9ff446ec 100644 --- a/doc/html/boost/interprocess/private_node_allocator.html +++ b/doc/html/boost/interprocess/private_node_allocator.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -54,40 +54,40 @@ }; // construct/copy/destruct - private_node_allocator(segment_manager *); - private_node_allocator(const private_node_allocator &); + private_node_allocator(segment_manager *); + private_node_allocator(const private_node_allocator &); template<typename T2> - private_node_allocator(const private_node_allocator< T2, SegmentManager, NodesPerBlock > &); + private_node_allocator(const private_node_allocator< T2, SegmentManager, NodesPerBlock > &); template<typename T2, typename SegmentManager2, std::size_t N2> private_node_allocator & - operator=(const private_node_allocator< T2, SegmentManager2, N2 > &); - private_node_allocator & operator=(const private_node_allocator &); - ~private_node_allocator(); + operator=(const private_node_allocator< T2, SegmentManager2, N2 > &); + private_node_allocator & operator=(const private_node_allocator &); + ~private_node_allocator(); - // public member functions - node_pool_t * get_node_pool() const; - segment_manager * get_segment_manager() const; - size_type max_size() const; - pointer allocate(size_type, cvoid_pointer = 0); - void deallocate(const pointer &, size_type); - void deallocate_free_blocks(); - pointer address(reference) const; - const_pointer address(const_reference) const; - void construct(const pointer &, const_reference); - void destroy(const pointer &); - size_type size(const pointer &) const; - pointer allocation_command(boost::interprocess::allocation_type, size_type, + // public member functions + node_pool_t * get_node_pool() const; + segment_manager * get_segment_manager() const; + size_type max_size() const; + pointer allocate(size_type, cvoid_pointer = 0); + void deallocate(const pointer &, size_type); + void deallocate_free_blocks(); + pointer address(reference) const; + const_pointer address(const_reference) const; + void construct(const pointer &, const_reference); + void destroy(const pointer &); + size_type size(const pointer &) const; + pointer allocation_command(boost::interprocess::allocation_type, size_type, size_type &, pointer &); - void allocate_many(size_type, size_type, multiallocation_chain &); - void allocate_many(const size_type *, size_type, multiallocation_chain &); - void deallocate_many(multiallocation_chain &); - pointer allocate_one(); - void allocate_individual(size_type, multiallocation_chain &); - void deallocate_one(const pointer &); - void deallocate_individual(multiallocation_chain &); + void allocate_many(size_type, size_type, multiallocation_chain &); + void allocate_many(const size_type *, size_type, multiallocation_chain &); + void deallocate_many(multiallocation_chain &); + pointer allocate_one(); + void allocate_individual(size_type, multiallocation_chain &); + void deallocate_one(const pointer &); + void deallocate_individual(multiallocation_chain &); - // friend functions - friend void swap(self_t &, self_t &); + // friend functions + friend void swap(self_t &, self_t &); };

    Description

    @@ -99,124 +99,124 @@ construct/copy/destruct
    1. -
      private_node_allocator(segment_manager * segment_mngr);
      +
      private_node_allocator(segment_manager * segment_mngr);

      Constructor from a segment manager. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    2. -
      private_node_allocator(const private_node_allocator & other);
      +
      private_node_allocator(const private_node_allocator & other);

      Copy constructor from other private_node_allocator. Increments the reference count of the associated node pool. Never throws

    3. template<typename T2> 
      -  private_node_allocator(const private_node_allocator< T2, SegmentManager, NodesPerBlock > & other);
      + private_node_allocator(const private_node_allocator< T2, SegmentManager, NodesPerBlock > & other);

      Copy constructor from related private_node_allocator. If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

    4. template<typename T2, typename SegmentManager2, std::size_t N2> 
         private_node_allocator & 
      -  operator=(const private_node_allocator< T2, SegmentManager2, N2 > &);
      + operator=(const private_node_allocator< T2, SegmentManager2, N2 > &);

      Not assignable from related private_node_allocator

    5. -
      private_node_allocator & operator=(const private_node_allocator &);
      +
      private_node_allocator & operator=(const private_node_allocator &);

      Not assignable from other private_node_allocator

    6. -
      ~private_node_allocator();
      +
      ~private_node_allocator();

      Destructor, removes node_pool_t from memory if its reference count reaches to zero. Never throws

    -private_node_allocator public member functions

    +private_node_allocator public member functions
    1. -
      node_pool_t * get_node_pool() const;
      +
      node_pool_t * get_node_pool() const;

      Returns a pointer to the node pool. Never throws

    2. -
      segment_manager * get_segment_manager() const;
      +
      segment_manager * get_segment_manager() const;

      Returns the segment manager. Never throws

    3. -
      size_type max_size() const;
      +
      size_type max_size() const;

      Returns the number of elements that could be allocated. Never throws

    4. -
      pointer allocate(size_type count, cvoid_pointer hint = 0);
      +
      pointer allocate(size_type count, cvoid_pointer hint = 0);

      Allocate memory for an array of count elements. Throws boost::interprocess::bad_alloc if there is no enough memory

    5. -
      void deallocate(const pointer & ptr, size_type count);
      +
      void deallocate(const pointer & ptr, size_type count);

      Deallocate allocated memory. Never throws

    6. -
      void deallocate_free_blocks();
      +
      void deallocate_free_blocks();

      Deallocates all free blocks of the pool

    7. -
      pointer address(reference value) const;
      +
      pointer address(reference value) const;

      Returns address of mutable object. Never throws

    8. -
      const_pointer address(const_reference value) const;
      +
      const_pointer address(const_reference value) const;

      Returns address of non mutable object. Never throws

    9. -
      void construct(const pointer & ptr, const_reference v);
      +
      void construct(const pointer & ptr, const_reference v);

      Copy construct an object. Throws if T's copy constructor throws

    10. -
      void destroy(const pointer & ptr);
      +
      void destroy(const pointer & ptr);

      Destroys object. Throws if object's destructor throws

    11. -
      size_type size(const pointer & p) const;
      +
      size_type size(const pointer & p) const;

      Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.

    12. -
    13. pointer allocation_command(boost::interprocess::allocation_type command, 
      +
    14. pointer allocation_command(boost::interprocess::allocation_type command, 
                                  size_type limit_size, 
                                  size_type & prefer_in_recvd_out_size, 
                                  pointer & reuse);
    15. -
      void allocate_many(size_type elem_size, size_type num_elements, 
      +
      void allocate_many(size_type elem_size, size_type num_elements, 
                          multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    16. -
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
      +
      void allocate_many(const size_type * elem_sizes, size_type n_elements, 
                          multiallocation_chain & chain);

      Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated

    17. -
      void deallocate_many(multiallocation_chain & chain);
      +
      void deallocate_many(multiallocation_chain & chain);

      Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

    18. -
      pointer allocate_one();
      +
      pointer allocate_one();

      Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc if there is no enough memory

    19. -
      void allocate_individual(size_type num_elements, 
      +
      void allocate_individual(size_type num_elements, 
                                multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    20. -
      void deallocate_one(const pointer & p);
      +
      void deallocate_one(const pointer & p);

      Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

    21. -
      void deallocate_individual(multiallocation_chain & chain);
      +
      void deallocate_individual(multiallocation_chain & chain);

      Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

    -private_node_allocator friend functions

    +private_node_allocator friend functions
    1. -
      friend void swap(self_t & alloc1, self_t & alloc2);
      +
      friend void swap(self_t & alloc1, self_t & alloc2);

      Swaps allocators. Does not throw. If each allocator is placed in a different memory segment, the result is undefined.

    @@ -232,7 +232,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/private_node_allocator/rebind.html b/doc/html/boost/interprocess/private_node_allocator/rebind.html index f16bb1faf2..452794b47e 100644 --- a/doc/html/boost/interprocess/private_node_allocator/rebind.html +++ b/doc/html/boost/interprocess/private_node_allocator/rebind.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -53,7 +53,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/rbtree_best_fit.html b/doc/html/boost/interprocess/rbtree_best_fit.html index 61d9ee40b0..3be84c92a1 100644 --- a/doc/html/boost/interprocess/rbtree_best_fit.html +++ b/doc/html/boost/interprocess/rbtree_best_fit.html @@ -40,33 +40,33 @@ typedef VoidPointer void_pointer; // Pointer type to be used with the rest of the Interprocess framework. typedef unspecified multiallocation_chain; typedef boost::intrusive::pointer_traits< char_ptr >::difference_type difference_type; - typedef unspecified size_type; + typedef boost::container::dtl::make_unsigned< difference_type >::type size_type; // construct/copy/destruct - rbtree_best_fit(size_type, size_type); - ~rbtree_best_fit(); + rbtree_best_fit(size_type, size_type); + ~rbtree_best_fit(); - // public member functions - void * allocate(size_type); - void deallocate(void *); - size_type get_size() const; - size_type get_free_memory() const; - void zero_free_memory(); - void grow(size_type); - void shrink_to_fit(); - bool all_memory_deallocated(); - bool check_sanity(); + // public member functions + void * allocate(size_type); + void deallocate(void *); + size_type get_size() const; + size_type get_free_memory() const; + void zero_free_memory(); + void grow(size_type); + void shrink_to_fit(); + bool all_memory_deallocated(); + bool check_sanity(); template<typename T> - T * allocation_command(boost::interprocess::allocation_type, size_type, + T * allocation_command(boost::interprocess::allocation_type, size_type, size_type &, T *&); - void * raw_allocation_command(boost::interprocess::allocation_type, + void * raw_allocation_command(boost::interprocess::allocation_type, size_type, size_type &, void *&, size_type = 1); - size_type size(const void *) const; - void * allocate_aligned(size_type, size_type); + size_type size(const void *) const; + void * allocate_aligned(size_type, size_type); - // public static functions - static size_type get_min_size(size_type); + // public static functions + static size_type get_min_size(size_type); // public data members static const size_type PayloadPerAllocation; @@ -81,62 +81,62 @@ construct/copy/destruct
    1. -
      rbtree_best_fit(size_type size, size_type extra_hdr_bytes);
      +
      rbtree_best_fit(size_type size, size_type extra_hdr_bytes);

      Constructor. "size" is the total size of the managed memory segment, "extra_hdr_bytes" indicates the extra bytes beginning in the sizeof(rbtree_best_fit) offset that the allocator should not use at all.

    2. -
      ~rbtree_best_fit();
      Destructor.
    3. +
      ~rbtree_best_fit();
      Destructor.

    -rbtree_best_fit public member functions

    +rbtree_best_fit public member functions
    1. -
      void * allocate(size_type nbytes);
      Allocates bytes, returns 0 if there is not more memory.
    2. +
      void * allocate(size_type nbytes);
      Allocates bytes, returns 0 if there is not more memory.
    3. -
      void deallocate(void * addr);
      Deallocates previously allocated bytes.
    4. +
      void deallocate(void * addr);
      Deallocates previously allocated bytes.
    5. -
      size_type get_size() const;
      Returns the size of the memory segment.
    6. +
      size_type get_size() const;
      Returns the size of the memory segment.
    7. -
      size_type get_free_memory() const;
      Returns the number of free bytes of the segment.
    8. +
      size_type get_free_memory() const;
      Returns the number of free bytes of the segment.
    9. -
      void zero_free_memory();
      +
      void zero_free_memory();

      Initializes to zero all the memory that's not in use. This function is normally used for security reasons.

    10. -
      void grow(size_type extra_size);
      +
      void grow(size_type extra_size);

      Increases managed memory in extra_size bytes more

    11. -
      void shrink_to_fit();
      Decreases managed memory as much as possible.
    12. +
      void shrink_to_fit();
      Decreases managed memory as much as possible.
    13. -
      bool all_memory_deallocated();
      Returns true if all allocated memory has been deallocated.
    14. +
      bool all_memory_deallocated();
      Returns true if all allocated memory has been deallocated.
    15. -
      bool check_sanity();
      +
      bool check_sanity();

      Makes an internal sanity check and returns true if success

    16. template<typename T> 
      -  T * allocation_command(boost::interprocess::allocation_type command, 
      +  T * allocation_command(boost::interprocess::allocation_type command, 
                                size_type limit_size, 
                                size_type & prefer_in_recvd_out_size, T *& reuse);
    17. -
    18. void * raw_allocation_command(boost::interprocess::allocation_type command, 
      +
    19. void * raw_allocation_command(boost::interprocess::allocation_type command, 
                                     size_type limit_object, 
                                     size_type & prefer_in_recvd_out_size, 
                                     void *& reuse_ptr, size_type sizeof_object = 1);
    20. -
      size_type size(const void * ptr) const;
      Returns the size of the buffer previously allocated pointed by ptr.
    21. +
      size_type size(const void * ptr) const;
      Returns the size of the buffer previously allocated pointed by ptr.
    22. -
      void * allocate_aligned(size_type nbytes, size_type alignment);
      +
      void * allocate_aligned(size_type nbytes, size_type alignment);

      Allocates aligned bytes, returns 0 if there is not more memory. Alignment must be power of 2

    -rbtree_best_fit public static functions

    +rbtree_best_fit public static functions
    1. -
      static size_type get_min_size(size_type extra_hdr_bytes);
      Obtains the minimum size needed by the algorithm.
    +
    static size_type get_min_size(size_type extra_hdr_bytes);
    Obtains the minimum size needed by the algorithm.
    diff --git a/doc/html/boost/interprocess/scoped_lock.html b/doc/html/boost/interprocess/scoped_lock.html index 64c4d243ef..7183706e9f 100644 --- a/doc/html/boost/interprocess/scoped_lock.html +++ b/doc/html/boost/interprocess/scoped_lock.html @@ -39,35 +39,35 @@ typedef Mutex mutex_type; // construct/copy/destruct - scoped_lock(); - explicit scoped_lock(mutex_type &); - scoped_lock(mutex_type &, defer_lock_type); - scoped_lock(mutex_type &, accept_ownership_type); - scoped_lock(mutex_type &, try_to_lock_type); - scoped_lock(mutex_type &, const boost::posix_time::ptime &); - scoped_lock(scoped_lock &&); + scoped_lock(); + explicit scoped_lock(mutex_type &); + scoped_lock(mutex_type &, defer_lock_type); + scoped_lock(mutex_type &, accept_ownership_type); + scoped_lock(mutex_type &, try_to_lock_type); + scoped_lock(mutex_type &, const boost::posix_time::ptime &); + scoped_lock(scoped_lock &&); template<typename T> - explicit scoped_lock(upgradable_lock< T > &&, unspecified = 0); + explicit scoped_lock(upgradable_lock< T > &&, unspecified = 0); template<typename T> - scoped_lock(upgradable_lock< T > &&, try_to_lock_type, unspecified = 0); + scoped_lock(upgradable_lock< T > &&, try_to_lock_type, unspecified = 0); template<typename T> - scoped_lock(upgradable_lock< T > &&, boost::posix_time::ptime &, + scoped_lock(upgradable_lock< T > &&, boost::posix_time::ptime &, unspecified = 0); template<typename T> - scoped_lock(sharable_lock< T > &&, try_to_lock_type, unspecified = 0); - scoped_lock & operator=(scoped_lock &&); - ~scoped_lock(); + scoped_lock(sharable_lock< T > &&, try_to_lock_type, unspecified = 0); + scoped_lock & operator=(scoped_lock &&); + ~scoped_lock(); - // public member functions - void lock(); - *bool try_lock(); - *bool timed_lock(const boost::posix_time::ptime &); - *void unlock(); - bool owns() const; - operator unspecified_bool_type() const; - mutex_type * mutex() const; - mutex_type * release(); - void swap(scoped_lock< mutex_type > &); + // public member functions + void lock(); + *bool try_lock(); + *bool timed_lock(const boost::posix_time::ptime &); + *void unlock(); + bool owns() const; + operator unspecified_bool_type() const; + mutex_type * mutex() const; + mutex_type * release(); + void swap(scoped_lock< mutex_type > &); };

    Description

    @@ -79,102 +79,102 @@ construct/copy/destruct
    1. -
      scoped_lock();
      +
      scoped_lock();

      Effects: Default constructs a scoped_lock. Postconditions: owns() == false and mutex() == 0.

    2. -
      explicit scoped_lock(mutex_type & m);
      +
      explicit scoped_lock(mutex_type & m);

      Effects: m.lock(). Postconditions: owns() == true and mutex() == &m. Notes: The constructor will take ownership of the mutex. If another thread already owns the mutex, this thread will block until the mutex is released. Whether or not this constructor handles recursive locking depends upon the mutex.

    3. -
      scoped_lock(mutex_type & m, defer_lock_type);
      +
      scoped_lock(mutex_type & m, defer_lock_type);

      Postconditions: owns() == false, and mutex() == &m. Notes: The constructor will not take ownership of the mutex. There is no effect required on the referenced mutex.

    4. -
      scoped_lock(mutex_type & m, accept_ownership_type);
      +
      scoped_lock(mutex_type & m, accept_ownership_type);

      Postconditions: owns() == true, and mutex() == &m. Notes: The constructor will suppose that the mutex is already locked. There is no effect required on the referenced mutex.

    5. -
      scoped_lock(mutex_type & m, try_to_lock_type);
      +
      scoped_lock(mutex_type & m, try_to_lock_type);

      Effects: m.try_lock(). Postconditions: mutex() == &m. owns() == the return value of the m.try_lock() executed within the constructor. Notes: The constructor will take ownership of the mutex if it can do so without waiting. Whether or not this constructor handles recursive locking depends upon the mutex. If the mutex_type does not support try_lock, this constructor will fail at compile time if instantiated, but otherwise have no effect.

    6. -
      scoped_lock(mutex_type & m, const boost::posix_time::ptime & abs_time);
      +
      scoped_lock(mutex_type & m, const boost::posix_time::ptime & abs_time);

      Effects: m.timed_lock(abs_time). Postconditions: mutex() == &m. owns() == the return value of the m.timed_lock(abs_time) executed within the constructor. Notes: The constructor will take ownership of the mutex if it can do it until abs_time is reached. Whether or not this constructor handles recursive locking depends upon the mutex. If the mutex_type does not support try_lock, this constructor will fail at compile time if instantiated, but otherwise have no effect.

    7. -
      scoped_lock(scoped_lock && scop);
      +
      scoped_lock(scoped_lock && scop);

      Postconditions: mutex() == the value scop.mutex() had before the constructor executes. s1.mutex() == 0. owns() == the value of scop.owns() before the constructor executes. scop.owns(). Notes: If the scop scoped_lock owns the mutex, ownership is moved to thisscoped_lock with no blocking. If the scop scoped_lock does not own the mutex, then neither will this scoped_lock. Only a moved scoped_lock's will match this signature. An non-moved scoped_lock can be moved with the expression: "boost::move(lock);". This constructor does not alter the state of the mutex, only potentially who owns it.

    8. template<typename T> 
      -  explicit scoped_lock(upgradable_lock< T > && upgr, unspecified = 0);
      + explicit scoped_lock(upgradable_lock< T > && upgr, unspecified = 0);

      Effects: If upgr.owns() then calls unlock_upgradable_and_lock() on the referenced mutex. upgr.release() is called. Postconditions: mutex() == the value upgr.mutex() had before the construction. upgr.mutex() == 0. owns() == upgr.owns() before the construction. upgr.owns() == false after the construction. Notes: If upgr is locked, this constructor will lock this scoped_lock while unlocking upgr. If upgr is unlocked, then this scoped_lock will be unlocked as well. Only a moved upgradable_lock's will match this signature. An non-moved upgradable_lock can be moved with the expression: "boost::move(lock);" This constructor may block if other threads hold a sharable_lock on this mutex (sharable_lock's can share ownership with an upgradable_lock).

    9. template<typename T> 
      -  scoped_lock(upgradable_lock< T > && upgr, try_to_lock_type, unspecified = 0);
      + scoped_lock(upgradable_lock< T > && upgr, try_to_lock_type, unspecified = 0);

      Effects: If upgr.owns() then calls try_unlock_upgradable_and_lock() on the referenced mutex: a)if try_unlock_upgradable_and_lock() returns true then mutex() obtains the value from upgr.release() and owns() is set to true. b)if try_unlock_upgradable_and_lock() returns false then upgr is unaffected and this scoped_lock construction as the same effects as a default construction. c)Else upgr.owns() is false. mutex() obtains the value from upgr.release() and owns() is set to false Notes: This construction will not block. It will try to obtain mutex ownership from upgr immediately, while changing the lock type from a "read lock" to a "write lock". If the "read lock" isn't held in the first place, the mutex merely changes type to an unlocked "write lock". If the "read lock" is held, then mutex transfer occurs only if it can do so in a non-blocking manner.

    10. template<typename T> 
      -  scoped_lock(upgradable_lock< T > && upgr, 
      +  scoped_lock(upgradable_lock< T > && upgr, 
                     boost::posix_time::ptime & abs_time, unspecified = 0);

      Effects: If upgr.owns() then calls timed_unlock_upgradable_and_lock(abs_time) on the referenced mutex: a)if timed_unlock_upgradable_and_lock(abs_time) returns true then mutex() obtains the value from upgr.release() and owns() is set to true. b)if timed_unlock_upgradable_and_lock(abs_time) returns false then upgr is unaffected and this scoped_lock construction as the same effects as a default construction. c)Else upgr.owns() is false. mutex() obtains the value from upgr.release() and owns() is set to false Notes: This construction will not block. It will try to obtain mutex ownership from upgr immediately, while changing the lock type from a "read lock" to a "write lock". If the "read lock" isn't held in the first place, the mutex merely changes type to an unlocked "write lock". If the "read lock" is held, then mutex transfer occurs only if it can do so in a non-blocking manner.

    11. template<typename T> 
      -  scoped_lock(sharable_lock< T > && shar, try_to_lock_type, unspecified = 0);
      + scoped_lock(sharable_lock< T > && shar, try_to_lock_type, unspecified = 0);

      Effects: If shar.owns() then calls try_unlock_sharable_and_lock() on the referenced mutex. a)if try_unlock_sharable_and_lock() returns true then mutex() obtains the value from shar.release() and owns() is set to true. b)if try_unlock_sharable_and_lock() returns false then shar is unaffected and this scoped_lock construction has the same effects as a default construction. c)Else shar.owns() is false. mutex() obtains the value from shar.release() and owns() is set to false Notes: This construction will not block. It will try to obtain mutex ownership from shar immediately, while changing the lock type from a "read lock" to a "write lock". If the "read lock" isn't held in the first place, the mutex merely changes type to an unlocked "write lock". If the "read lock" is held, then mutex transfer occurs only if it can do so in a non-blocking manner.

    12. -
      scoped_lock & operator=(scoped_lock && scop);
      +
      scoped_lock & operator=(scoped_lock && scop);

      Effects: If owns() before the call, then unlock() is called on mutex(). *this gets the state of scop and scop gets set to a default constructed state. Notes: With a recursive mutex it is possible that both this and scop own the same mutex before the assignment. In this case, this will own the mutex after the assignment (and scop will not), but the mutex's lock count will be decremented by one.

    13. -
      ~scoped_lock();
      +
      ~scoped_lock();

      Effects: if (owns()) mp_mutex->unlock(). Notes: The destructor behavior ensures that the mutex lock is not leaked.

    -scoped_lock public member functions

    +scoped_lock public member functions
    1. -
      void lock();
      +
      void lock();

      Effects: If mutex() == 0 or if already locked, throws a lock_exception() exception. Calls lock() on the referenced mutex. Postconditions: owns() == true. Notes: The scoped_lock changes from a state of not owning the mutex, to owning the mutex, blocking if necessary.

    2. -
      *bool try_lock();
      +
      *bool try_lock();

      Effects: If mutex() == 0 or if already locked, throws a lock_exception() exception. Calls try_lock() on the referenced mutex. Postconditions: owns() == the value returned from mutex()->try_lock(). Notes: The scoped_lock changes from a state of not owning the mutex, to owning the mutex, but only if blocking was not required. If the mutex_type does not support try_lock(), this function will fail at compile time if instantiated, but otherwise have no effect.

    3. -
      *bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      *bool timed_lock(const boost::posix_time::ptime & abs_time);

      Effects: If mutex() == 0 or if already locked, throws a lock_exception() exception. Calls timed_lock(abs_time) on the referenced mutex. Postconditions: owns() == the value returned from mutex()-> timed_lock(abs_time). Notes: The scoped_lock changes from a state of not owning the mutex, to owning the mutex, but only if it can obtain ownership by the specified time. If the mutex_type does not support timed_lock (), this function will fail at compile time if instantiated, but otherwise have no effect.

    4. -
      *void unlock();
      +
      *void unlock();

      Effects: If mutex() == 0 or if not locked, throws a lock_exception() exception. Calls unlock() on the referenced mutex. Postconditions: owns() == false. Notes: The scoped_lock changes from a state of owning the mutex, to not owning the mutex.

    5. -
      bool owns() const;
      +
      bool owns() const;

      Effects: Returns true if this scoped_lock has acquired the referenced mutex.

    6. -
      operator unspecified_bool_type() const;
      +
      operator unspecified_bool_type() const;

      Conversion to bool. Returns owns().

    7. -
      mutex_type * mutex() const;
      +
      mutex_type * mutex() const;

      Effects: Returns a pointer to the referenced mutex, or 0 if there is no mutex to reference.

    8. -
      mutex_type * release();
      +
      mutex_type * release();

      Effects: Returns a pointer to the referenced mutex, or 0 if there is no mutex to reference. Postconditions: mutex() == 0 and owns() == false.

    9. -
      void swap(scoped_lock< mutex_type > & other);
      +
      void swap(scoped_lock< mutex_type > & other);

      Effects: Swaps state with moved lock. Throws: Nothing.

    diff --git a/doc/html/boost/interprocess/scoped_ptr.html b/doc/html/boost/interprocess/scoped_ptr.html index d67772284a..4475f2d14f 100644 --- a/doc/html/boost/interprocess/scoped_ptr.html +++ b/doc/html/boost/interprocess/scoped_ptr.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -42,21 +42,21 @@ typedef pointer this_type::* unspecified_bool_type; // construct/copy/destruct - explicit scoped_ptr(const pointer & = 0, const Deleter & = Deleter()); - ~scoped_ptr(); + explicit scoped_ptr(const pointer & = 0, const Deleter & = Deleter()); + ~scoped_ptr(); - // public member functions - void reset(const pointer & = 0); - void reset(const pointer &, const Deleter &); - pointer release(); - reference operator*() const; - pointer & operator->(); - const pointer & operator->() const; - pointer & get(); - const pointer & get() const; - operator unspecified_bool_type() const; - bool operator!() const; - void swap(scoped_ptr &); + // public member functions + void reset(const pointer & = 0); + void reset(const pointer &, const Deleter &); + pointer release(); + reference operator*() const; + pointer & operator->(); + const pointer & operator->() const; + pointer & get(); + const pointer & get() const; + operator unspecified_bool_type() const; + bool operator!() const; + void swap(scoped_ptr &); };

    Description

    @@ -68,61 +68,61 @@ construct/copy/destruct
    1. -
      explicit scoped_ptr(const pointer & p = 0, const Deleter & d = Deleter());
      +
      explicit scoped_ptr(const pointer & p = 0, const Deleter & d = Deleter());

      Constructs a scoped_ptr, storing a copy of p(which can be 0) and d. Does not throw.

    2. -
      ~scoped_ptr();
      +
      ~scoped_ptr();

      If the stored pointer is not 0, destroys the object pointed to by the stored pointer. calling the operator() of the stored deleter. Never throws

    -scoped_ptr public member functions

    +scoped_ptr public member functions
    1. -
      void reset(const pointer & p = 0);
      +
      void reset(const pointer & p = 0);

      Deletes the object pointed to by the stored pointer and then stores a copy of p. Never throws

    2. -
      void reset(const pointer & p, const Deleter & d);
      +
      void reset(const pointer & p, const Deleter & d);

      Deletes the object pointed to by the stored pointer and then stores a copy of p and a copy of d.

    3. -
      pointer release();
      +
      pointer release();

      Assigns internal pointer as 0 and returns previous pointer. This will avoid deletion on destructor

    4. -
      reference operator*() const;
      +
      reference operator*() const;

      Returns a reference to the object pointed to by the stored pointer. Never throws.

    5. -
      pointer & operator->();
      +
      pointer & operator->();

      Returns the internal stored pointer. Never throws.

    6. -
      const pointer & operator->() const;
      +
      const pointer & operator->() const;

      Returns the internal stored pointer. Never throws.

    7. -
      pointer & get();
      +
      pointer & get();

      Returns the stored pointer. Never throws.

    8. -
      const pointer & get() const;
      +
      const pointer & get() const;

      Returns the stored pointer. Never throws.

    9. -
      operator unspecified_bool_type() const;
      +
      operator unspecified_bool_type() const;

      Conversion to bool Never throws

    10. -
      bool operator!() const;
      +
      bool operator!() const;

      Returns true if the stored pointer is 0. Never throws.

    11. -
      void swap(scoped_ptr & b);
      +
      void swap(scoped_ptr & b);

      Exchanges the internal pointer and deleter with other scoped_ptr Never throws.

    @@ -139,7 +139,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/segment_manager.html b/doc/html/boost/interprocess/segment_manager.html index b243dd9f61..9bf08b852a 100644 --- a/doc/html/boost/interprocess/segment_manager.html +++ b/doc/html/boost/interprocess/segment_manager.html @@ -62,52 +62,52 @@ }; // construct/copy/destruct - explicit segment_manager(size_type); + explicit segment_manager(size_type); - // public member functions - template<typename T> std::pair< T *, size_type > find(char_ptr_holder_t); + // public member functions + template<typename T> std::pair< T *, size_type > find(char_ptr_holder_t); template<typename T> - std::pair< T *, size_type > find_no_lock(char_ptr_holder_t); - template<typename T> construct_proxy< T >::type construct(char_ptr_holder_t); + std::pair< T *, size_type > find_no_lock(char_ptr_holder_t); + template<typename T> construct_proxy< T >::type construct(char_ptr_holder_t); template<typename T> - construct_proxy< T >::type find_or_construct(char_ptr_holder_t); + construct_proxy< T >::type find_or_construct(char_ptr_holder_t); template<typename T> construct_proxy< T >::type - construct(char_ptr_holder_t, const std::nothrow_t &); + construct(char_ptr_holder_t, const std::nothrow_t &); template<typename T> construct_proxy< T >::type - find_or_construct(char_ptr_holder_t, const std::nothrow_t &); + find_or_construct(char_ptr_holder_t, const std::nothrow_t &); template<typename T> - construct_iter_proxy< T >::type construct_it(char_ptr_holder_t); + construct_iter_proxy< T >::type construct_it(char_ptr_holder_t); template<typename T> - construct_iter_proxy< T >::type find_or_construct_it(char_ptr_holder_t); + construct_iter_proxy< T >::type find_or_construct_it(char_ptr_holder_t); template<typename T> construct_iter_proxy< T >::type - construct_it(char_ptr_holder_t, const std::nothrow_t &); + construct_it(char_ptr_holder_t, const std::nothrow_t &); template<typename T> construct_iter_proxy< T >::type - find_or_construct_it(char_ptr_holder_t, const std::nothrow_t &); - template<typename Func> void atomic_func(Func &); - template<typename Func> bool try_atomic_func(Func &); - template<typename T> bool destroy(char_ptr_holder_t); - template<typename T> void destroy_ptr(const T *); - void reserve_named_objects(size_type); - void reserve_unique_objects(size_type); - void shrink_to_fit_indexes(); - size_type get_num_named_objects(); - size_type get_num_unique_objects(); - const_named_iterator named_begin() const; - const_named_iterator named_end() const; - const_unique_iterator unique_begin() const; - const_unique_iterator unique_end() const; - template<typename T> allocator< T >::type get_allocator(); - template<typename T> deleter< T >::type get_deleter(); + find_or_construct_it(char_ptr_holder_t, const std::nothrow_t &); + template<typename Func> void atomic_func(Func &); + template<typename Func> bool try_atomic_func(Func &); + template<typename T> bool destroy(char_ptr_holder_t); + template<typename T> void destroy_ptr(const T *); + void reserve_named_objects(size_type); + void reserve_unique_objects(size_type); + void shrink_to_fit_indexes(); + size_type get_num_named_objects(); + size_type get_num_unique_objects(); + const_named_iterator named_begin() const; + const_named_iterator named_end() const; + const_unique_iterator unique_begin() const; + const_unique_iterator unique_end() const; + template<typename T> allocator< T >::type get_allocator(); + template<typename T> deleter< T >::type get_deleter(); - // public static functions - template<typename T> static const CharType * get_instance_name(const T *); - template<typename T> static size_type get_instance_length(const T *); - template<typename T> static instance_type get_instance_type(const T *); - static size_type get_min_size(); + // public static functions + template<typename T> static const CharType * get_instance_name(const T *); + template<typename T> static size_type get_instance_length(const T *); + template<typename T> static instance_type get_instance_type(const T *); + static size_type get_min_size(); // public data members static const size_type PayloadPerAllocation; @@ -124,145 +124,145 @@ public construct/copy/destruct
    1. -
      explicit segment_manager(size_type segment_size);
      +
      explicit segment_manager(size_type segment_size);

      Constructor of the segment manager "size" is the size of the memory segment where the segment manager is being constructed. Can throw

    -segment_manager public member functions

    +segment_manager public member functions
    1. -
      template<typename T> std::pair< T *, size_type > find(char_ptr_holder_t name);
      +
      template<typename T> std::pair< T *, size_type > find(char_ptr_holder_t name);

      Tries to find a previous named/unique allocation. Returns the address and the object count. On failure the first member of the returned pair is 0.

    2. template<typename T> 
      -  std::pair< T *, size_type > find_no_lock(char_ptr_holder_t name);
      + std::pair< T *, size_type > find_no_lock(char_ptr_holder_t name);

      Tries to find a previous named/unique allocation. Returns the address and the object count. On failure the first member of the returned pair is 0. This search is not mutex-protected! Use it only inside atomic_func() calls, where the internal mutex is guaranteed to be locked.

    3. template<typename T> 
      -  construct_proxy< T >::type construct(char_ptr_holder_t name);
      + construct_proxy< T >::type construct(char_ptr_holder_t name);

      Returns throwing "construct" proxy object

    4. template<typename T> 
      -  construct_proxy< T >::type find_or_construct(char_ptr_holder_t name);
      + construct_proxy< T >::type find_or_construct(char_ptr_holder_t name);

      Returns throwing "search or construct" proxy object

    5. template<typename T> 
         construct_proxy< T >::type 
      -  construct(char_ptr_holder_t name, const std::nothrow_t &);
      + construct(char_ptr_holder_t name, const std::nothrow_t &);

      Returns no throwing "construct" proxy object

    6. template<typename T> 
         construct_proxy< T >::type 
      -  find_or_construct(char_ptr_holder_t name, const std::nothrow_t &);
      + find_or_construct(char_ptr_holder_t name, const std::nothrow_t &);

      Returns no throwing "search or construct" proxy object

    7. template<typename T> 
      -  construct_iter_proxy< T >::type construct_it(char_ptr_holder_t name);
      Returns throwing "construct from iterators" proxy object.
    8. + construct_iter_proxy< T >::type construct_it(char_ptr_holder_t name);Returns throwing "construct from iterators" proxy object.
    9. template<typename T> 
      -  construct_iter_proxy< T >::type find_or_construct_it(char_ptr_holder_t name);
      + construct_iter_proxy< T >::type find_or_construct_it(char_ptr_holder_t name);

      Returns throwing "search or construct from iterators" proxy object

    10. template<typename T> 
         construct_iter_proxy< T >::type 
      -  construct_it(char_ptr_holder_t name, const std::nothrow_t &);
      + construct_it(char_ptr_holder_t name, const std::nothrow_t &);

      Returns no throwing "construct from iterators" proxy object

    11. template<typename T> 
         construct_iter_proxy< T >::type 
      -  find_or_construct_it(char_ptr_holder_t name, const std::nothrow_t &);
      + find_or_construct_it(char_ptr_holder_t name, const std::nothrow_t &);

      Returns no throwing "search or construct from iterators" proxy object

    12. -
      template<typename Func> void atomic_func(Func & f);
      +
      template<typename Func> void atomic_func(Func & f);

      Calls object function blocking recursive interprocess_mutex and guarantees that no new named_alloc or destroy will be executed by any process while executing the object function call

    13. -
      template<typename Func> bool try_atomic_func(Func & f);
      +
      template<typename Func> bool try_atomic_func(Func & f);

      Tries to calls a functor guaranteeing that no new construction, search or destruction will be executed by any process while executing the object function call. If the atomic function can't be immediatelly executed because the internal mutex is already locked, returns false. If the functor throws, this function throws.

    14. -
      template<typename T> bool destroy(char_ptr_holder_t name);
      +
      template<typename T> bool destroy(char_ptr_holder_t name);

      Destroys a previously created named/unique instance. Returns false if the object was not present.

    15. -
      template<typename T> void destroy_ptr(const T * p);
      +
      template<typename T> void destroy_ptr(const T * p);

      Destroys an anonymous, unique or named object using its address

    16. -
      void reserve_named_objects(size_type num);
      +
      void reserve_named_objects(size_type num);

      Preallocates needed index resources to optimize the creation of "num" named objects in the managed memory segment. Can throw boost::interprocess::bad_alloc if there is no enough memory.

    17. -
      void reserve_unique_objects(size_type num);
      +
      void reserve_unique_objects(size_type num);

      Preallocates needed index resources to optimize the creation of "num" unique objects in the managed memory segment. Can throw boost::interprocess::bad_alloc if there is no enough memory.

    18. -
      void shrink_to_fit_indexes();
      +
      void shrink_to_fit_indexes();

      Calls shrink_to_fit in both named and unique object indexes to try to free unused memory from those indexes.

    19. -
      size_type get_num_named_objects();
      +
      size_type get_num_named_objects();

      Returns the number of named objects stored in the segment.

    20. -
      size_type get_num_unique_objects();
      +
      size_type get_num_unique_objects();

      Returns the number of unique objects stored in the segment.

    21. -
      const_named_iterator named_begin() const;
      +
      const_named_iterator named_begin() const;

      Returns a constant iterator to the beginning of the information about the named allocations performed in this segment manager

    22. -
      const_named_iterator named_end() const;
      +
      const_named_iterator named_end() const;

      Returns a constant iterator to the end of the information about the named allocations performed in this segment manager

    23. -
      const_unique_iterator unique_begin() const;
      +
      const_unique_iterator unique_begin() const;

      Returns a constant iterator to the beginning of the information about the unique allocations performed in this segment manager

    24. -
      const_unique_iterator unique_end() const;
      +
      const_unique_iterator unique_end() const;

      Returns a constant iterator to the end of the information about the unique allocations performed in this segment manager

    25. -
      template<typename T> allocator< T >::type get_allocator();
      +
      template<typename T> allocator< T >::type get_allocator();

      Returns an instance of the default allocator for type T initialized that allocates memory from this segment manager.

    26. -
      template<typename T> deleter< T >::type get_deleter();
      +
      template<typename T> deleter< T >::type get_deleter();

      Returns an instance of the default deleter for type T that will delete an object constructed in this segment manager.

    -segment_manager public static functions

    +segment_manager public static functions
    1. -
      template<typename T> static const CharType * get_instance_name(const T * ptr);
      +
      template<typename T> static const CharType * get_instance_name(const T * ptr);

      Returns the name of an object created with construct/find_or_construct functions. Does not throw

    2. -
      template<typename T> static size_type get_instance_length(const T * ptr);
      +
      template<typename T> static size_type get_instance_length(const T * ptr);

      Returns the length of an object created with construct/find_or_construct functions. Does not throw.

    3. -
      template<typename T> static instance_type get_instance_type(const T * ptr);
      +
      template<typename T> static instance_type get_instance_type(const T * ptr);

      Returns is the the name of an object created with construct/find_or_construct functions. Does not throw

    4. -
      static size_type get_min_size();
      +
      static size_type get_min_size();

      Obtains the minimum size needed by the segment manager

    diff --git a/doc/html/boost/interprocess/segment_manager_base.html b/doc/html/boost/interprocess/segment_manager_base.html index 3472f6f382..6f644d0104 100644 --- a/doc/html/boost/interprocess/segment_manager_base.html +++ b/doc/html/boost/interprocess/segment_manager_base.html @@ -42,25 +42,25 @@ typedef MemoryAlgorithm memory_algorithm; // construct/copy/destruct - segment_manager_base(size_type, size_type); + segment_manager_base(size_type, size_type); - // public member functions - size_type get_size() const; - size_type get_free_memory() const; - void * allocate(size_type, const std::nothrow_t &); - void * allocate(size_type); - void * allocate_aligned(size_type, size_type, const std::nothrow_t &); - void * allocate_aligned(size_type, size_type); - void deallocate(void *); - void grow(size_type); - void shrink_to_fit(); - bool all_memory_deallocated(); - bool check_sanity(); - void zero_free_memory(); - size_type size(const void *) const; + // public member functions + size_type get_size() const; + size_type get_free_memory() const; + void * allocate(size_type, const std::nothrow_t &); + void * allocate(size_type); + void * allocate_aligned(size_type, size_type, const std::nothrow_t &); + void * allocate_aligned(size_type, size_type); + void deallocate(void *); + void grow(size_type); + void shrink_to_fit(); + bool all_memory_deallocated(); + bool check_sanity(); + void zero_free_memory(); + size_type size(const void *) const; - // public static functions - static size_type get_min_size(size_type); + // public static functions + static size_type get_min_size(size_type); // public data members static const size_type PayloadPerAllocation; @@ -75,7 +75,7 @@ public construct/copy/destruct
    1. -
      segment_manager_base(size_type sz, size_type reserved_bytes);
      +
      segment_manager_base(size_type sz, size_type reserved_bytes);

      Constructor of the segment_manager_base

      "size" is the size of the memory segment where the basic segment manager is being constructed.

      "reserved_bytes" is the number of bytes after the end of the memory algorithm object itself that the memory algorithm will exclude from dynamic allocation

      @@ -84,66 +84,66 @@

    -segment_manager_base public member functions

    +segment_manager_base public member functions
    1. -
      size_type get_size() const;
      +
      size_type get_size() const;

      Returns the size of the memory segment

    2. -
      size_type get_free_memory() const;
      +
      size_type get_free_memory() const;

      Returns the number of free bytes of the memory segment

    3. -
      void * allocate(size_type nbytes, const std::nothrow_t &);
      +
      void * allocate(size_type nbytes, const std::nothrow_t &);

      Allocates nbytes bytes. This function is only used in single-segment management. Never throws

    4. -
      void * allocate(size_type nbytes);
      +
      void * allocate(size_type nbytes);

      Allocates nbytes bytes. Throws boost::interprocess::bad_alloc on failure

    5. -
      void * allocate_aligned(size_type nbytes, size_type alignment, 
      +
      void * allocate_aligned(size_type nbytes, size_type alignment, 
                               const std::nothrow_t &);

      Allocates nbytes bytes. This function is only used in single-segment management. Never throws

    6. -
      void * allocate_aligned(size_type nbytes, size_type alignment);
      +
      void * allocate_aligned(size_type nbytes, size_type alignment);

      Allocates nbytes bytes. This function is only used in single-segment management. Throws bad_alloc when fails

    7. -
      void deallocate(void * addr);
      +
      void deallocate(void * addr);

      Deallocates the bytes allocated with allocate/allocate_many() pointed by addr

    8. -
      void grow(size_type extra_size);
      +
      void grow(size_type extra_size);

      Increases managed memory in extra_size bytes more. This only works with single-segment management.

    9. -
      void shrink_to_fit();
      +
      void shrink_to_fit();

      Decreases managed memory to the minimum. This only works with single-segment management.

    10. -
      bool all_memory_deallocated();
      +
      bool all_memory_deallocated();

      Returns the result of "all_memory_deallocated()" function of the used memory algorithm

    11. -
      bool check_sanity();
      +
      bool check_sanity();

      Returns the result of "check_sanity()" function of the used memory algorithm

    12. -
      void zero_free_memory();
      +
      void zero_free_memory();

      Writes to zero free memory (memory not yet allocated) of the memory algorithm

    13. -
      size_type size(const void * ptr) const;
      Returns the size of the buffer previously allocated pointed by ptr.
    14. +
      size_type size(const void * ptr) const;
      Returns the size of the buffer previously allocated pointed by ptr.

    -segment_manager_base public static functions

    +segment_manager_base public static functions
    1. -
      static size_type get_min_size(size_type size);
      +
      static size_type get_min_size(size_type size);

      Obtains the minimum size needed by the segment manager

    diff --git a/doc/html/boost/interprocess/sharable_lock.html b/doc/html/boost/interprocess/sharable_lock.html index af43160c9c..ce22d534a9 100644 --- a/doc/html/boost/interprocess/sharable_lock.html +++ b/doc/html/boost/interprocess/sharable_lock.html @@ -39,28 +39,28 @@ typedef SharableMutex mutex_type; // construct/copy/destruct - sharable_lock(); - explicit sharable_lock(mutex_type &); - sharable_lock(mutex_type &, defer_lock_type); - sharable_lock(mutex_type &, accept_ownership_type); - sharable_lock(mutex_type &, try_to_lock_type); - sharable_lock(mutex_type &, const boost::posix_time::ptime &); - sharable_lock(sharable_lock< mutex_type > &&); - template<typename T> sharable_lock(upgradable_lock< T > &&, unspecified = 0); - template<typename T> sharable_lock(scoped_lock< T > &&, unspecified = 0); - sharable_lock & operator=(sharable_lock< mutex_type > &&); - ~sharable_lock(); + sharable_lock(); + explicit sharable_lock(mutex_type &); + sharable_lock(mutex_type &, defer_lock_type); + sharable_lock(mutex_type &, accept_ownership_type); + sharable_lock(mutex_type &, try_to_lock_type); + sharable_lock(mutex_type &, const boost::posix_time::ptime &); + sharable_lock(sharable_lock< mutex_type > &&); + template<typename T> sharable_lock(upgradable_lock< T > &&, unspecified = 0); + template<typename T> sharable_lock(scoped_lock< T > &&, unspecified = 0); + sharable_lock & operator=(sharable_lock< mutex_type > &&); + ~sharable_lock(); - // public member functions - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); - void unlock(); - bool owns() const; - operator unspecified_bool_type() const; - mutex_type * mutex() const; - mutex_type * release(); - void swap(sharable_lock< mutex_type > &); + // public member functions + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); + void unlock(); + bool owns() const; + operator unspecified_bool_type() const; + mutex_type * mutex() const; + mutex_type * release(); + void swap(sharable_lock< mutex_type > &); };

    Description

    @@ -72,90 +72,90 @@ construct/copy/destruct
    1. -
      sharable_lock();
      +
      sharable_lock();

      Effects: Default constructs a sharable_lock. Postconditions: owns() == false and mutex() == 0.

    2. -
      explicit sharable_lock(mutex_type & m);
      +
      explicit sharable_lock(mutex_type & m);

      Effects: m.lock_sharable(). Postconditions: owns() == true and mutex() == &m. Notes: The constructor will take sharable-ownership of the mutex. If another thread already owns the mutex with exclusive ownership (scoped_lock), this thread will block until the mutex is released. If another thread owns the mutex with sharable or upgradable ownership, then no blocking will occur. Whether or not this constructor handles recursive locking depends upon the mutex.

    3. -
      sharable_lock(mutex_type & m, defer_lock_type);
      +
      sharable_lock(mutex_type & m, defer_lock_type);

      Postconditions: owns() == false, and mutex() == &m. Notes: The constructor will not take ownership of the mutex. There is no effect required on the referenced mutex.

    4. -
      sharable_lock(mutex_type & m, accept_ownership_type);
      +
      sharable_lock(mutex_type & m, accept_ownership_type);

      Postconditions: owns() == true, and mutex() == &m. Notes: The constructor will suppose that the mutex is already sharable locked. There is no effect required on the referenced mutex.

    5. -
      sharable_lock(mutex_type & m, try_to_lock_type);
      +
      sharable_lock(mutex_type & m, try_to_lock_type);

      Effects: m.try_lock_sharable() Postconditions: mutex() == &m. owns() == the return value of the m.try_lock_sharable() executed within the constructor. Notes: The constructor will take sharable-ownership of the mutex if it can do so without waiting. Whether or not this constructor handles recursive locking depends upon the mutex. If the mutex_type does not support try_lock_sharable, this constructor will fail at compile time if instantiated, but otherwise have no effect.

    6. -
      sharable_lock(mutex_type & m, const boost::posix_time::ptime & abs_time);
      +
      sharable_lock(mutex_type & m, const boost::posix_time::ptime & abs_time);

      Effects: m.timed_lock_sharable(abs_time) Postconditions: mutex() == &m. owns() == the return value of the m.timed_lock_sharable() executed within the constructor. Notes: The constructor will take sharable-ownership of the mutex if it can do so within the time specified. Whether or not this constructor handles recursive locking depends upon the mutex. If the mutex_type does not support timed_lock_sharable, this constructor will fail at compile time if instantiated, but otherwise have no effect.

    7. -
      sharable_lock(sharable_lock< mutex_type > && upgr);
      +
      sharable_lock(sharable_lock< mutex_type > && upgr);

      Postconditions: mutex() == upgr.mutex(). owns() == the value of upgr.owns() before the construction. upgr.owns() == false after the construction. Notes: If the upgr sharable_lock owns the mutex, ownership is moved to this sharable_lock with no blocking. If the upgr sharable_lock does not own the mutex, then neither will this sharable_lock. Only a moved sharable_lock's will match this signature. An non-moved sharable_lock can be moved with the expression: "boost::move(lock);". This constructor does not alter the state of the mutex, only potentially who owns it.

    8. template<typename T> 
      -  sharable_lock(upgradable_lock< T > && upgr, unspecified = 0);
      + sharable_lock(upgradable_lock< T > && upgr, unspecified = 0);

      Effects: If upgr.owns() then calls unlock_upgradable_and_lock_sharable() on the referenced mutex. Postconditions: mutex() == the value upgr.mutex() had before the construction. upgr.mutex() == 0 owns() == the value of upgr.owns() before construction. upgr.owns() == false after the construction. Notes: If upgr is locked, this constructor will lock this sharable_lock while unlocking upgr. Only a moved sharable_lock's will match this signature. An non-moved upgradable_lock can be moved with the expression: "boost::move(lock);".

    9. -
      template<typename T> sharable_lock(scoped_lock< T > && scop, unspecified = 0);
      +
      template<typename T> sharable_lock(scoped_lock< T > && scop, unspecified = 0);

      Effects: If scop.owns() then calls unlock_and_lock_sharable() on the referenced mutex. Postconditions: mutex() == the value scop.mutex() had before the construction. scop.mutex() == 0 owns() == scop.owns() before the constructor. After the construction, scop.owns() == false. Notes: If scop is locked, this constructor will transfer the exclusive ownership to a sharable-ownership of this sharable_lock. Only a moved scoped_lock's will match this signature. An non-moved scoped_lock can be moved with the expression: "boost::move(lock);".

    10. -
      sharable_lock & operator=(sharable_lock< mutex_type > && upgr);
      +
      sharable_lock & operator=(sharable_lock< mutex_type > && upgr);

      Effects: If owns() before the call, then unlock_sharable() is called on mutex(). *this gets the state of upgr and upgr gets set to a default constructed state. Notes: With a recursive mutex it is possible that both this and upgr own the mutex before the assignment. In this case, this will own the mutex after the assignment (and upgr will not), but the mutex's lock count will be decremented by one.

    11. -
      ~sharable_lock();
      +
      ~sharable_lock();

      Effects: if (owns()) mp_mutex->unlock_sharable(). Notes: The destructor behavior ensures that the mutex lock is not leaked.

    -sharable_lock public member functions

    +sharable_lock public member functions
    1. -
      void lock();
      +
      void lock();

      Effects: If mutex() == 0 or already locked, throws a lock_exception() exception. Calls lock_sharable() on the referenced mutex. Postconditions: owns() == true. Notes: The sharable_lock changes from a state of not owning the mutex, to owning the mutex, blocking if necessary.

    2. -
      bool try_lock();
      +
      bool try_lock();

      Effects: If mutex() == 0 or already locked, throws a lock_exception() exception. Calls try_lock_sharable() on the referenced mutex. Postconditions: owns() == the value returned from mutex()->try_lock_sharable(). Notes: The sharable_lock changes from a state of not owning the mutex, to owning the mutex, but only if blocking was not required. If the mutex_type does not support try_lock_sharable(), this function will fail at compile time if instantiated, but otherwise have no effect.

    3. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock(const boost::posix_time::ptime & abs_time);

      Effects: If mutex() == 0 or already locked, throws a lock_exception() exception. Calls timed_lock_sharable(abs_time) on the referenced mutex. Postconditions: owns() == the value returned from mutex()->timed_lock_sharable(elps_time). Notes: The sharable_lock changes from a state of not owning the mutex, to owning the mutex, but only if it can obtain ownership within the specified time interval. If the mutex_type does not support timed_lock_sharable(), this function will fail at compile time if instantiated, but otherwise have no effect.

    4. -
      void unlock();
      +
      void unlock();

      Effects: If mutex() == 0 or not locked, throws a lock_exception() exception. Calls unlock_sharable() on the referenced mutex. Postconditions: owns() == false. Notes: The sharable_lock changes from a state of owning the mutex, to not owning the mutex.

    5. -
      bool owns() const;
      +
      bool owns() const;

      Effects: Returns true if this scoped_lock has acquired the referenced mutex.

    6. -
      operator unspecified_bool_type() const;
      +
      operator unspecified_bool_type() const;

      Conversion to bool. Returns owns().

    7. -
      mutex_type * mutex() const;
      +
      mutex_type * mutex() const;

      Effects: Returns a pointer to the referenced mutex, or 0 if there is no mutex to reference.

    8. -
      mutex_type * release();
      +
      mutex_type * release();

      Effects: Returns a pointer to the referenced mutex, or 0 if there is no mutex to reference. Postconditions: mutex() == 0 and owns() == false.

    9. -
      void swap(sharable_lock< mutex_type > & other);
      +
      void swap(sharable_lock< mutex_type > & other);

      Effects: Swaps state with moved lock. Throws: Nothing.

    diff --git a/doc/html/boost/interprocess/shared_memory_object.html b/doc/html/boost/interprocess/shared_memory_object.html index 19a224faea..5d218c1d11 100644 --- a/doc/html/boost/interprocess/shared_memory_object.html +++ b/doc/html/boost/interprocess/shared_memory_object.html @@ -36,26 +36,26 @@ class shared_memory_object { public: // construct/copy/destruct - shared_memory_object(); - shared_memory_object(create_only_t, const char *, mode_t, + shared_memory_object(); + shared_memory_object(create_only_t, const char *, mode_t, const permissions & = permissions()); - shared_memory_object(open_or_create_t, const char *, mode_t, + shared_memory_object(open_or_create_t, const char *, mode_t, const permissions & = permissions()); - shared_memory_object(open_only_t, const char *, mode_t); - shared_memory_object(shared_memory_object &&); - shared_memory_object & operator=(shared_memory_object &&); - ~shared_memory_object(); + shared_memory_object(open_only_t, const char *, mode_t); + shared_memory_object(shared_memory_object &&); + shared_memory_object & operator=(shared_memory_object &&); + ~shared_memory_object(); - // public member functions - void swap(shared_memory_object &); - void truncate(offset_t); - const char * get_name() const; - bool get_size(offset_t &) const; - mode_t get_mode() const; - mapping_handle_t get_mapping_handle() const; + // public member functions + void swap(shared_memory_object &); + void truncate(offset_t); + const char * get_name() const; + bool get_size(offset_t &) const; + mode_t get_mode() const; + mapping_handle_t get_mapping_handle() const; - // public static functions - static bool remove(const char *); + // public static functions + static bool remove(const char *); };

    Description

    @@ -67,60 +67,60 @@ construct/copy/destruct
    1. -
      shared_memory_object();
      Default constructor. Represents an empty shared_memory_object.
    2. +
      shared_memory_object();
      Default constructor. Represents an empty shared_memory_object.
    3. -
      shared_memory_object(create_only_t, const char * name, mode_t mode, 
      +
      shared_memory_object(create_only_t, const char * name, mode_t mode, 
                            const permissions & perm = permissions());

      Creates a shared memory object with name "name" and mode "mode", with the access mode "mode" If the file previously exists, throws an error.

    4. -
      shared_memory_object(open_or_create_t, const char * name, mode_t mode, 
      +
      shared_memory_object(open_or_create_t, const char * name, mode_t mode, 
                            const permissions & perm = permissions());

      Tries to create a shared memory object with name "name" and mode "mode", with the access mode "mode". If the file previously exists, it tries to open it with mode "mode". Otherwise throws an error.

    5. -
      shared_memory_object(open_only_t, const char * name, mode_t mode);
      +
      shared_memory_object(open_only_t, const char * name, mode_t mode);

      Tries to open a shared memory object with name "name", with the access mode "mode". If the file does not previously exist, it throws an error.

    6. -
      shared_memory_object(shared_memory_object && moved);
      +
      shared_memory_object(shared_memory_object && moved);

      Moves the ownership of "moved"'s shared memory object to *this. After the call, "moved" does not represent any shared memory object. Does not throw

    7. -
      shared_memory_object & operator=(shared_memory_object && moved);
      +
      shared_memory_object & operator=(shared_memory_object && moved);

      Moves the ownership of "moved"'s shared memory to *this. After the call, "moved" does not represent any shared memory. Does not throw

    8. -
      ~shared_memory_object();
      +
      ~shared_memory_object();

      Destroys *this and indicates that the calling process is finished using the resource. All mapped regions are still valid after destruction. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().

    -shared_memory_object public member functions

    +shared_memory_object public member functions
    1. -
      void swap(shared_memory_object & moved);
      Swaps the shared_memory_objects. Does not throw.
    2. +
      void swap(shared_memory_object & moved);
      Swaps the shared_memory_objects. Does not throw.
    3. -
      void truncate(offset_t length);
      Sets the size of the shared memory mapping.
    4. +
      void truncate(offset_t length);
      Sets the size of the shared memory mapping.
    5. -
      const char * get_name() const;
      Returns the name of the shared memory object.
    6. +
      const char * get_name() const;
      Returns the name of the shared memory object.
    7. -
      bool get_size(offset_t & size) const;
      +
      bool get_size(offset_t & size) const;

      Returns true if the size of the shared memory object can be obtained and writes the size in the passed reference

    8. -
      mode_t get_mode() const;
      Returns access mode.
    9. +
      mode_t get_mode() const;
      Returns access mode.
    10. -
      mapping_handle_t get_mapping_handle() const;
      Returns mapping handle. Never throws.
    11. +
      mapping_handle_t get_mapping_handle() const;
      Returns mapping handle. Never throws.

    -shared_memory_object public static functions

    +shared_memory_object public static functions
    1. -
      static bool remove(const char * name);
      +
      static bool remove(const char * name);

      Erases a shared memory object from the system. Returns false on error. Never throws

    diff --git a/doc/html/boost/interprocess/shared_ptr.html b/doc/html/boost/interprocess/shared_ptr.html index f46061419b..6420013961 100644 --- a/doc/html/boost/interprocess/shared_ptr.html +++ b/doc/html/boost/interprocess/shared_ptr.html @@ -45,37 +45,37 @@ typedef boost::intrusive::pointer_traits< typename VoidAllocator::pointer >::template rebind_pointer< const VoidAllocator >::type const_allocator_pointer; // construct/copy/destruct - shared_ptr(); - explicit shared_ptr(const pointer &, + shared_ptr(); + explicit shared_ptr(const pointer &, const VoidAllocator & = VoidAllocator(), const Deleter & = Deleter()); - shared_ptr(const shared_ptr &); - shared_ptr(const shared_ptr &, const pointer &); + shared_ptr(const shared_ptr &); + shared_ptr(const shared_ptr &, const pointer &); template<typename Y> - shared_ptr(shared_ptr< Y, VoidAllocator, Deleter > const &); + shared_ptr(shared_ptr< Y, VoidAllocator, Deleter > const &); template<typename Y> - explicit shared_ptr(weak_ptr< Y, VoidAllocator, Deleter > const &); - explicit shared_ptr(shared_ptr &&); + explicit shared_ptr(weak_ptr< Y, VoidAllocator, Deleter > const &); + explicit shared_ptr(shared_ptr &&); template<typename Y> - shared_ptr & operator=(shared_ptr< Y, VoidAllocator, Deleter > const &); - shared_ptr & operator=(BOOST_COPY_ASSIGN_REF(shared_ptr)); - shared_ptr & operator=(shared_ptr &&); + shared_ptr & operator=(shared_ptr< Y, VoidAllocator, Deleter > const &); + shared_ptr & operator=(BOOST_COPY_ASSIGN_REF(shared_ptr)); + shared_ptr & operator=(shared_ptr &&); - // public member functions - void reset(); + // public member functions + void reset(); template<typename Pointer> - void reset(const Pointer &, const VoidAllocator & = VoidAllocator(), + void reset(const Pointer &, const VoidAllocator & = VoidAllocator(), const Deleter & = Deleter()); template<typename Y> - void reset(shared_ptr< Y, VoidAllocator, Deleter > const &, + void reset(shared_ptr< Y, VoidAllocator, Deleter > const &, const pointer &); - reference operator*() const; - pointer operator->() const; - pointer get() const; - bool operator!() const; - bool unique() const; - long use_count() const; - void swap(shared_ptr< T, VoidAllocator, Deleter > &); + reference operator*() const; + pointer operator->() const; + pointer get() const; + bool operator!() const; + bool unique() const; + long use_count() const; + void swap(shared_ptr< T, VoidAllocator, Deleter > &); };

    Description

    @@ -90,95 +90,95 @@ construct/copy/destruct
    1. -
      shared_ptr();
      +
      shared_ptr();

      Constructs an empty shared_ptr. Use_count() == 0 && get()== 0.

    2. -
      explicit shared_ptr(const pointer & p, 
      +
      explicit shared_ptr(const pointer & p, 
                           const VoidAllocator & a = VoidAllocator(), 
                           const Deleter & d = Deleter());

      Constructs a shared_ptr that owns the pointer p. Auxiliary data will be allocated with a copy of a and the object will be deleted with a copy of d. Requirements: Deleter and A's copy constructor must not throw.

    3. -
      shared_ptr(const shared_ptr & r);
      +
      shared_ptr(const shared_ptr & r);

      Copy constructs a shared_ptr. If r is empty, constructs an empty shared_ptr. Otherwise, constructs a shared_ptr that shares ownership with r. Never throws.

    4. -
      shared_ptr(const shared_ptr & other, const pointer & p);
      +
      shared_ptr(const shared_ptr & other, const pointer & p);

      Constructs a shared_ptr that shares ownership with other and stores p. Postconditions: get() == p && use_count() == r.use_count(). Throws: nothing.

    5. template<typename Y> 
      -  shared_ptr(shared_ptr< Y, VoidAllocator, Deleter > const & r);
      + shared_ptr(shared_ptr< Y, VoidAllocator, Deleter > const & r);

      If r is empty, constructs an empty shared_ptr. Otherwise, constructs a shared_ptr that shares ownership with r. Never throws.

    6. template<typename Y> 
      -  explicit shared_ptr(weak_ptr< Y, VoidAllocator, Deleter > const & r);
      + explicit shared_ptr(weak_ptr< Y, VoidAllocator, Deleter > const & r);

      Constructs a shared_ptr that shares ownership with r and stores a copy of the pointer stored in r.

    7. -
      explicit shared_ptr(shared_ptr && other);
      +
      explicit shared_ptr(shared_ptr && other);

      Move-Constructs a shared_ptr that takes ownership of other resource and other is put in default-constructed state. Throws: nothing.

    8. template<typename Y> 
      -  shared_ptr & operator=(shared_ptr< Y, VoidAllocator, Deleter > const & r);
      + shared_ptr & operator=(shared_ptr< Y, VoidAllocator, Deleter > const & r);

      Equivalent to shared_ptr(r).swap(*this). Never throws

    9. -
      shared_ptr & operator=(BOOST_COPY_ASSIGN_REF(shared_ptr) r);
      +
      shared_ptr & operator=(BOOST_COPY_ASSIGN_REF(shared_ptr) r);

      Equivalent to shared_ptr(r).swap(*this). Never throws

    10. -
      shared_ptr & operator=(shared_ptr && other);
      +
      shared_ptr & operator=(shared_ptr && other);

      Move-assignment. Equivalent to shared_ptr(other).swap(*this). Never throws

    -shared_ptr public member functions

    +shared_ptr public member functions
    1. -
      void reset();
      +
      void reset();

      This is equivalent to: this_type().swap(*this);

    2. template<typename Pointer> 
      -  void reset(const Pointer & p, const VoidAllocator & a = VoidAllocator(), 
      +  void reset(const Pointer & p, const VoidAllocator & a = VoidAllocator(), 
                    const Deleter & d = Deleter());

      This is equivalent to: this_type(p, a, d).swap(*this);

    3. template<typename Y> 
      -  void reset(shared_ptr< Y, VoidAllocator, Deleter > const & r, 
      +  void reset(shared_ptr< Y, VoidAllocator, Deleter > const & r, 
                    const pointer & p);
    4. -
      reference operator*() const;
      +
      reference operator*() const;

      Returns a reference to the pointed type

    5. -
      pointer operator->() const;
      +
      pointer operator->() const;

      Returns the pointer pointing to the owned object

    6. -
      pointer get() const;
      +
      pointer get() const;

      Returns the pointer pointing to the owned object

    7. -
      bool operator!() const;
      +
      bool operator!() const;

      Not operator. Returns true if this->get() != 0, false otherwise

    8. -
      bool unique() const;
      +
      bool unique() const;

      Returns use_count() == 1. unique() might be faster than use_count()

    9. -
      long use_count() const;
      +
      long use_count() const;

      Returns the number of shared_ptr objects, *this included, that share ownership with *this, or an unspecified nonnegative value when *this is empty. use_count() is not necessarily efficient. Use only for debugging and testing purposes, not for production code.

    10. -
      void swap(shared_ptr< T, VoidAllocator, Deleter > & other);
      +
      void swap(shared_ptr< T, VoidAllocator, Deleter > & other);

      Exchanges the contents of the two smart pointers.

    diff --git a/doc/html/boost/interprocess/simple_seq_fit.html b/doc/html/boost/interprocess/simple_seq_fit.html index 408b774d00..88849fd54c 100644 --- a/doc/html/boost/interprocess/simple_seq_fit.html +++ b/doc/html/boost/interprocess/simple_seq_fit.html @@ -39,7 +39,7 @@ typedef base_t::size_type size_type; // construct/copy/destruct - simple_seq_fit(size_type, size_type); + simple_seq_fit(size_type, size_type); };

    Description

    @@ -50,7 +50,7 @@ public construct/copy/destruct
    1. -
      simple_seq_fit(size_type segment_size, size_type extra_hdr_bytes);
      +
      simple_seq_fit(size_type segment_size, size_type extra_hdr_bytes);

      Constructor. "size" is the total size of the managed memory segment, "extra_hdr_bytes" indicates the extra bytes beginning in the sizeof(simple_seq_fit) offset that the allocator should not use at all.

    diff --git a/doc/html/boost/interprocess/swap_idp40312352.html b/doc/html/boost/interprocess/swap_idp40312352.html new file mode 100644 index 0000000000..9dbcb39ad5 --- /dev/null +++ b/doc/html/boost/interprocess/swap_idp40312352.html @@ -0,0 +1,56 @@ + + + + +Function template swap + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template swap

    +

    boost::interprocess::swap

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename VP> 
    +  void swap(intrusive_ptr< T, VP > & lhs, intrusive_ptr< T, VP > & rhs);
    +
    +

    Description

    +

    Exchanges the contents of the two intrusive_ptrs. Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/swap_idp40362672.html b/doc/html/boost/interprocess/swap_idp40362672.html new file mode 100644 index 0000000000..27e1f45086 --- /dev/null +++ b/doc/html/boost/interprocess/swap_idp40362672.html @@ -0,0 +1,56 @@ + + + + +Function template swap + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template swap

    +

    boost::interprocess::swap

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/scoped_ptr.hpp>
    +
    +
    +template<typename T, typename D> 
    +  void swap(scoped_ptr< T, D > & a, scoped_ptr< T, D > & b);
    +
    +

    Description

    +

    Exchanges the internal pointer and deleter with other scoped_ptr Never throws.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/swap_idp56209056.html b/doc/html/boost/interprocess/swap_idp56209056.html deleted file mode 100644 index 5ad60f0b87..0000000000 --- a/doc/html/boost/interprocess/swap_idp56209056.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Function template swap - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template swap

    -

    boost::interprocess::swap

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename VP> 
    -  void swap(intrusive_ptr< T, VP > & lhs, intrusive_ptr< T, VP > & rhs);
    -
    -

    Description

    -

    Exchanges the contents of the two intrusive_ptrs. Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/swap_idp56259376.html b/doc/html/boost/interprocess/swap_idp56259376.html deleted file mode 100644 index 0462de1072..0000000000 --- a/doc/html/boost/interprocess/swap_idp56259376.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Function template swap - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template swap

    -

    boost::interprocess::swap

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/scoped_ptr.hpp>
    -
    -
    -template<typename T, typename D> 
    -  void swap(scoped_ptr< T, D > & a, scoped_ptr< T, D > & b);
    -
    -

    Description

    -

    Exchanges the internal pointer and deleter with other scoped_ptr Never throws.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/to_raw_pointer_idp40322096.html b/doc/html/boost/interprocess/to_raw_pointer_idp40322096.html new file mode 100644 index 0000000000..56b0d77c23 --- /dev/null +++ b/doc/html/boost/interprocess/to_raw_pointer_idp40322096.html @@ -0,0 +1,57 @@ + + + + +Function template to_raw_pointer + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template to_raw_pointer

    +

    boost::interprocess::to_raw_pointer

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    +
    +
    +template<typename T, typename VP> 
    +  boost::interprocess::intrusive_ptr< T, VP >::pointer 
    +  to_raw_pointer(intrusive_ptr< T, VP > p);
    +
    +

    Description

    +

    Returns p.get(). Does not throw

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/to_raw_pointer_idp40368064.html b/doc/html/boost/interprocess/to_raw_pointer_idp40368064.html new file mode 100644 index 0000000000..f949771950 --- /dev/null +++ b/doc/html/boost/interprocess/to_raw_pointer_idp40368064.html @@ -0,0 +1,56 @@ + + + + +Function template to_raw_pointer + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template to_raw_pointer

    +

    boost::interprocess::to_raw_pointer

    +
    +

    Synopsis

    +
    // In header: <boost/interprocess/smart_ptr/scoped_ptr.hpp>
    +
    +
    +template<typename T, typename D> 
    +  scoped_ptr< T, D >::pointer to_raw_pointer(scoped_ptr< T, D > const & p);
    +
    +

    Description

    +

    Returns a copy of the stored pointer Never throws

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/to_raw_pointer_idp56218800.html b/doc/html/boost/interprocess/to_raw_pointer_idp56218800.html deleted file mode 100644 index 523ae600f6..0000000000 --- a/doc/html/boost/interprocess/to_raw_pointer_idp56218800.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template to_raw_pointer - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template to_raw_pointer

    -

    boost::interprocess::to_raw_pointer

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
    -
    -
    -template<typename T, typename VP> 
    -  boost::interprocess::intrusive_ptr< T, VP >::pointer 
    -  to_raw_pointer(intrusive_ptr< T, VP > p);
    -
    -

    Description

    -

    Returns p.get(). Does not throw

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/to_raw_pointer_idp56264768.html b/doc/html/boost/interprocess/to_raw_pointer_idp56264768.html deleted file mode 100644 index ba425d755c..0000000000 --- a/doc/html/boost/interprocess/to_raw_pointer_idp56264768.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Function template to_raw_pointer - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template to_raw_pointer

    -

    boost::interprocess::to_raw_pointer

    -
    -

    Synopsis

    -
    // In header: <boost/interprocess/smart_ptr/scoped_ptr.hpp>
    -
    -
    -template<typename T, typename D> 
    -  scoped_ptr< T, D >::pointer to_raw_pointer(scoped_ptr< T, D > const & p);
    -
    -

    Description

    -

    Returns a copy of the stored pointer Never throws

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/unordered_map_index.html b/doc/html/boost/interprocess/unordered_map_index.html index a0465288cc..96c7aa2a79 100644 --- a/doc/html/boost/interprocess/unordered_map_index.html +++ b/doc/html/boost/interprocess/unordered_map_index.html @@ -38,11 +38,11 @@ { public: // construct/copy/destruct - unordered_map_index(segment_manager_base *); + unordered_map_index(segment_manager_base *); - // public member functions - void reserve(typename segment_manager_base::size_type); - void shrink_to_fit(); + // public member functions + void reserve(typename segment_manager_base::size_type); + void shrink_to_fit(); };

    Description

    @@ -53,20 +53,20 @@ public construct/copy/destruct
    1. -
      unordered_map_index(segment_manager_base * segment_mngr);
      +
      unordered_map_index(segment_manager_base * segment_mngr);

      Constructor. Takes a pointer to the segment manager. Can throw

    -unordered_map_index public member functions

    +unordered_map_index public member functions
    1. -
      void reserve(typename segment_manager_base::size_type n);
      +
      void reserve(typename segment_manager_base::size_type n);

      This reserves memory to optimize the insertion of n elements in the index

    2. -
      void shrink_to_fit();
      +
      void shrink_to_fit();

      This tries to free previously allocate unused memory.

    diff --git a/doc/html/boost/interprocess/upgradable_lock.html b/doc/html/boost/interprocess/upgradable_lock.html index 2b08b7cd9e..c0ec7b69bc 100644 --- a/doc/html/boost/interprocess/upgradable_lock.html +++ b/doc/html/boost/interprocess/upgradable_lock.html @@ -39,29 +39,29 @@ typedef UpgradableMutex mutex_type; // construct/copy/destruct - upgradable_lock(); - explicit upgradable_lock(mutex_type &); - upgradable_lock(mutex_type &, defer_lock_type); - upgradable_lock(mutex_type &, accept_ownership_type); - upgradable_lock(mutex_type &, try_to_lock_type); - upgradable_lock(mutex_type &, const boost::posix_time::ptime &); - upgradable_lock(upgradable_lock< mutex_type > &&); - template<typename T> upgradable_lock(scoped_lock< T > &&, unspecified = 0); + upgradable_lock(); + explicit upgradable_lock(mutex_type &); + upgradable_lock(mutex_type &, defer_lock_type); + upgradable_lock(mutex_type &, accept_ownership_type); + upgradable_lock(mutex_type &, try_to_lock_type); + upgradable_lock(mutex_type &, const boost::posix_time::ptime &); + upgradable_lock(upgradable_lock< mutex_type > &&); + template<typename T> upgradable_lock(scoped_lock< T > &&, unspecified = 0); template<typename T> - upgradable_lock(sharable_lock< T > &&, try_to_lock_type, unspecified = 0); - upgradable_lock & operator=(upgradable_lock &&); - ~upgradable_lock(); + upgradable_lock(sharable_lock< T > &&, try_to_lock_type, unspecified = 0); + upgradable_lock & operator=(upgradable_lock &&); + ~upgradable_lock(); - // public member functions - void lock(); - bool try_lock(); - bool timed_lock(const boost::posix_time::ptime &); - void unlock(); - bool owns() const; - operator unspecified_bool_type() const; - mutex_type * mutex() const; - mutex_type * release(); - void swap(upgradable_lock< mutex_type > &); + // public member functions + void lock(); + bool try_lock(); + bool timed_lock(const boost::posix_time::ptime &); + void unlock(); + bool owns() const; + operator unspecified_bool_type() const; + mutex_type * mutex() const; + mutex_type * release(); + void swap(upgradable_lock< mutex_type > &); };

    Description

    @@ -73,89 +73,89 @@ construct/copy/destruct
    1. -
      upgradable_lock();
      +
      upgradable_lock();

      Effects: Default constructs a upgradable_lock. Postconditions: owns() == false and mutex() == 0.

    2. -
    3. explicit upgradable_lock(mutex_type & m);
    4. +
    5. explicit upgradable_lock(mutex_type & m);
    6. -
      upgradable_lock(mutex_type & m, defer_lock_type);
      +
      upgradable_lock(mutex_type & m, defer_lock_type);

      Postconditions: owns() == false, and mutex() == &m. Notes: The constructor will not take ownership of the mutex. There is no effect required on the referenced mutex.

    7. -
      upgradable_lock(mutex_type & m, accept_ownership_type);
      +
      upgradable_lock(mutex_type & m, accept_ownership_type);

      Postconditions: owns() == true, and mutex() == &m. Notes: The constructor will suppose that the mutex is already upgradable locked. There is no effect required on the referenced mutex.

    8. -
      upgradable_lock(mutex_type & m, try_to_lock_type);
      +
      upgradable_lock(mutex_type & m, try_to_lock_type);

      Effects: m.try_lock_upgradable(). Postconditions: mutex() == &m. owns() == the return value of the m.try_lock_upgradable() executed within the constructor. Notes: The constructor will take upgradable-ownership of the mutex if it can do so without waiting. Whether or not this constructor handles recursive locking depends upon the mutex. If the mutex_type does not support try_lock_upgradable, this constructor will fail at compile time if instantiated, but otherwise have no effect.

    9. -
      upgradable_lock(mutex_type & m, const boost::posix_time::ptime & abs_time);
      +
      upgradable_lock(mutex_type & m, const boost::posix_time::ptime & abs_time);

      Effects: m.timed_lock_upgradable(abs_time) Postconditions: mutex() == &m. owns() == the return value of the m.timed_lock_upgradable() executed within the constructor. Notes: The constructor will take upgradable-ownership of the mutex if it can do so within the time specified. Whether or not this constructor handles recursive locking depends upon the mutex. If the mutex_type does not support timed_lock_upgradable, this constructor will fail at compile time if instantiated, but otherwise have no effect.

    10. -
      upgradable_lock(upgradable_lock< mutex_type > && upgr);
      +
      upgradable_lock(upgradable_lock< mutex_type > && upgr);

      Effects: No effects on the underlying mutex. Postconditions: mutex() == the value upgr.mutex() had before the construction. upgr.mutex() == 0. owns() == upgr.owns() before the construction. upgr.owns() == false. Notes: If upgr is locked, this constructor will lock this upgradable_lock while unlocking upgr. If upgr is unlocked, then this upgradable_lock will be unlocked as well. Only a moved upgradable_lock's will match this signature. An non-moved upgradable_lock can be moved with the expression: "boost::move(lock);". This constructor does not alter the state of the mutex, only potentially who owns it.

    11. template<typename T> 
      -  upgradable_lock(scoped_lock< T > && scop, unspecified = 0);
      + upgradable_lock(scoped_lock< T > && scop, unspecified = 0);

      Effects: If scop.owns(), m_.unlock_and_lock_upgradable(). Postconditions: mutex() == the value scop.mutex() had before the construction. scop.mutex() == 0. owns() == scop.owns() before the constructor. After the construction, scop.owns() == false. Notes: If scop is locked, this constructor will transfer the exclusive-ownership to an upgradable-ownership of this upgradable_lock. Only a moved sharable_lock's will match this signature. An non-moved sharable_lock can be moved with the expression: "boost::move(lock);".

    12. template<typename T> 
      -  upgradable_lock(sharable_lock< T > && shar, try_to_lock_type, 
      +  upgradable_lock(sharable_lock< T > && shar, try_to_lock_type, 
                         unspecified = 0);

      Effects: If shar.owns() then calls try_unlock_sharable_and_lock_upgradable() on the referenced mutex. a)if try_unlock_sharable_and_lock_upgradable() returns true then mutex() obtains the value from shar.release() and owns() is set to true. b)if try_unlock_sharable_and_lock_upgradable() returns false then shar is unaffected and this upgradable_lock construction has the same effects as a default construction. c)Else shar.owns() is false. mutex() obtains the value from shar.release() and owns() is set to false. Notes: This construction will not block. It will try to obtain mutex ownership from shar immediately, while changing the lock type from a "read lock" to an "upgradable lock". If the "read lock" isn't held in the first place, the mutex merely changes type to an unlocked "upgradable lock". If the "read lock" is held, then mutex transfer occurs only if it can do so in a non-blocking manner.

    13. -
      upgradable_lock & operator=(upgradable_lock && upgr);
      +
      upgradable_lock & operator=(upgradable_lock && upgr);

      Effects: If owns(), then unlock_upgradable() is called on mutex(). *this gets the state of upgr and upgr gets set to a default constructed state. Notes: With a recursive mutex it is possible that both this and upgr own the mutex before the assignment. In this case, this will own the mutex after the assignment (and upgr will not), but the mutex's upgradable lock count will be decremented by one.

    14. -
      ~upgradable_lock();
      +
      ~upgradable_lock();

      Effects: if (owns()) m_->unlock_upgradable(). Notes: The destructor behavior ensures that the mutex lock is not leaked.

    -upgradable_lock public member functions

    +upgradable_lock public member functions
    1. -
      void lock();
      +
      void lock();

      Effects: If mutex() == 0 or if already locked, throws a lock_exception() exception. Calls lock_upgradable() on the referenced mutex. Postconditions: owns() == true. Notes: The sharable_lock changes from a state of not owning the mutex, to owning the mutex, blocking if necessary.

    2. -
      bool try_lock();
      +
      bool try_lock();

      Effects: If mutex() == 0 or if already locked, throws a lock_exception() exception. Calls try_lock_upgradable() on the referenced mutex. Postconditions: owns() == the value returned from mutex()->try_lock_upgradable(). Notes: The upgradable_lock changes from a state of not owning the mutex, to owning the mutex, but only if blocking was not required. If the mutex_type does not support try_lock_upgradable(), this function will fail at compile time if instantiated, but otherwise have no effect.

    3. -
      bool timed_lock(const boost::posix_time::ptime & abs_time);
      +
      bool timed_lock(const boost::posix_time::ptime & abs_time);

      Effects: If mutex() == 0 or if already locked, throws a lock_exception() exception. Calls timed_lock_upgradable(abs_time) on the referenced mutex. Postconditions: owns() == the value returned from mutex()->timed_lock_upgradable(abs_time). Notes: The upgradable_lock changes from a state of not owning the mutex, to owning the mutex, but only if it can obtain ownership within the specified time. If the mutex_type does not support timed_lock_upgradable(abs_time), this function will fail at compile time if instantiated, but otherwise have no effect.

    4. -
      void unlock();
      +
      void unlock();

      Effects: If mutex() == 0 or if not locked, throws a lock_exception() exception. Calls unlock_upgradable() on the referenced mutex. Postconditions: owns() == false. Notes: The upgradable_lock changes from a state of owning the mutex, to not owning the mutex.

    5. -
      bool owns() const;
      +
      bool owns() const;

      Effects: Returns true if this scoped_lock has acquired the referenced mutex.

    6. -
      operator unspecified_bool_type() const;
      +
      operator unspecified_bool_type() const;

      Conversion to bool. Returns owns().

    7. -
      mutex_type * mutex() const;
      +
      mutex_type * mutex() const;

      Effects: Returns a pointer to the referenced mutex, or 0 if there is no mutex to reference.

    8. -
      mutex_type * release();
      +
      mutex_type * release();

      Effects: Returns a pointer to the referenced mutex, or 0 if there is no mutex to reference. Postconditions: mutex() == 0 and owns() == false.

    9. -
      void swap(upgradable_lock< mutex_type > & other);
      +
      void swap(upgradable_lock< mutex_type > & other);

      Effects: Swaps state with moved lock. Throws: Nothing.

    diff --git a/doc/html/boost/interprocess/weak_ptr.html b/doc/html/boost/interprocess/weak_ptr.html index edfd7df5b8..5c7c4f0954 100644 --- a/doc/html/boost/interprocess/weak_ptr.html +++ b/doc/html/boost/interprocess/weak_ptr.html @@ -40,18 +40,18 @@ typedef T value_type; // construct/copy/destruct - weak_ptr(); - template<typename Y> weak_ptr(weak_ptr< Y, A, D > const &); - template<typename Y> weak_ptr(shared_ptr< Y, A, D > const &); - template<typename Y> weak_ptr & operator=(weak_ptr< Y, A, D > const &); - template<typename Y> weak_ptr & operator=(shared_ptr< Y, A, D > const &); + weak_ptr(); + template<typename Y> weak_ptr(weak_ptr< Y, A, D > const &); + template<typename Y> weak_ptr(shared_ptr< Y, A, D > const &); + template<typename Y> weak_ptr & operator=(weak_ptr< Y, A, D > const &); + template<typename Y> weak_ptr & operator=(shared_ptr< Y, A, D > const &); - // public member functions - shared_ptr< T, A, D > lock() const; - long use_count() const; - bool expired() const; - void reset(); - void swap(this_type &); + // public member functions + shared_ptr< T, A, D > lock() const; + long use_count() const; + bool expired() const; + void reset(); + void swap(this_type &); };

    Description

    @@ -66,29 +66,29 @@ construct/copy/destruct
    1. -
      weak_ptr();
      +
      weak_ptr();

      Effects: Constructs an empty weak_ptr. Postconditions: use_count() == 0.

    2. -
      template<typename Y> weak_ptr(weak_ptr< Y, A, D > const & r);
      +
      template<typename Y> weak_ptr(weak_ptr< Y, A, D > const & r);

      Effects: If r is empty, constructs an empty weak_ptr; otherwise, constructs a weak_ptr that shares ownership with r as if by storing a copy of the pointer stored in r.

      Postconditions: use_count() == r.use_count().

      Throws: nothing.

    3. -
      template<typename Y> weak_ptr(shared_ptr< Y, A, D > const & r);
      +
      template<typename Y> weak_ptr(shared_ptr< Y, A, D > const & r);

      Effects: If r is empty, constructs an empty weak_ptr; otherwise, constructs a weak_ptr that shares ownership with r as if by storing a copy of the pointer stored in r.

      Postconditions: use_count() == r.use_count().

      Throws: nothing.

    4. -
      template<typename Y> weak_ptr & operator=(weak_ptr< Y, A, D > const & r);
      +
      template<typename Y> weak_ptr & operator=(weak_ptr< Y, A, D > const & r);

      Effects: Equivalent to weak_ptr(r).swap(*this).

      Throws: nothing.

      Notes: The implementation is free to meet the effects (and the implied guarantees) via different means, without creating a temporary.

    5. -
      template<typename Y> weak_ptr & operator=(shared_ptr< Y, A, D > const & r);
      +
      template<typename Y> weak_ptr & operator=(shared_ptr< Y, A, D > const & r);

      Effects: Equivalent to weak_ptr(r).swap(*this).

      Throws: nothing.

      Notes: The implementation is free to meet the effects (and the implied guarantees) via different means, without creating a temporary.

      @@ -97,31 +97,31 @@

    -weak_ptr public member functions

    +weak_ptr public member functions
    1. -
      shared_ptr< T, A, D > lock() const;
      +
      shared_ptr< T, A, D > lock() const;

      Returns: expired()? shared_ptr<T>(): shared_ptr<T>(*this).

      Throws: nothing.

    2. -
      long use_count() const;
      +
      long use_count() const;

      Returns: 0 if *this is empty; otherwise, the number of shared_ptr objects that share ownership with *this.

      Throws: nothing.

      Notes: use_count() is not necessarily efficient. Use only for debugging and testing purposes, not for production code.

    3. -
      bool expired() const;
      +
      bool expired() const;

      Returns: Returns: use_count() == 0.

      Throws: nothing.

      Notes: expired() may be faster than use_count().

    4. -
      void reset();
      +
      void reset();

      Effects: Equivalent to: weak_ptr().swap(*this).

    5. -
      void swap(this_type & other);
      +
      void swap(this_type & other);

      Effects: Exchanges the contents of the two smart pointers.

      Throws: nothing.

    6. diff --git a/doc/html/boost/interprocess/wfixed_managed_idp39634704.html b/doc/html/boost/interprocess/wfixed_managed_idp39634704.html new file mode 100644 index 0000000000..d48ea27996 --- /dev/null +++ b/doc/html/boost/interprocess/wfixed_managed_idp39634704.html @@ -0,0 +1,55 @@ + + + + +Type definition wfixed_managed_shared_memory + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Type definition wfixed_managed_shared_memory

      +

      wfixed_managed_shared_memory

      +
      +

      Synopsis

      +
      // In header: <boost/interprocess/managed_shared_memory.hpp>
      +
      +
      +typedef basic_managed_shared_memory< wchar_t,rbtree_best_fit< mutex_family, void * >,iset_index > wfixed_managed_shared_memory;
      +
      +

      Description

      +

      Typedef for a default basic_managed_shared_memory of narrow characters to be placed in a fixed address

      +
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/interprocess/wfixed_managed_idp55540144.html b/doc/html/boost/interprocess/wfixed_managed_idp55540144.html deleted file mode 100644 index e5d60509fb..0000000000 --- a/doc/html/boost/interprocess/wfixed_managed_idp55540144.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Type definition wfixed_managed_shared_memory - - - - - - - - - - - - - - - -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Type definition wfixed_managed_shared_memory

      -

      wfixed_managed_shared_memory

      -
      -

      Synopsis

      -
      // In header: <boost/interprocess/managed_shared_memory.hpp>
      -
      -
      -typedef basic_managed_shared_memory< wchar_t,rbtree_best_fit< mutex_family, void * >,iset_index > wfixed_managed_shared_memory;
      -
      -

      Description

      -

      Typedef for a default basic_managed_shared_memory of narrow characters to be placed in a fixed address

      -
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/interprocess/windows_shared_memory.html b/doc/html/boost/interprocess/windows_shared_memory.html index 14b1b139d1..02761f0711 100644 --- a/doc/html/boost/interprocess/windows_shared_memory.html +++ b/doc/html/boost/interprocess/windows_shared_memory.html @@ -36,22 +36,22 @@ class windows_shared_memory { public: // construct/copy/destruct - windows_shared_memory(); - windows_shared_memory(create_only_t, const char *, mode_t, std::size_t, + windows_shared_memory(); + windows_shared_memory(create_only_t, const char *, mode_t, std::size_t, const permissions & = permissions()); - windows_shared_memory(open_or_create_t, const char *, mode_t, std::size_t, + windows_shared_memory(open_or_create_t, const char *, mode_t, std::size_t, const permissions & = permissions()); - windows_shared_memory(open_only_t, const char *, mode_t); - windows_shared_memory(windows_shared_memory &&); - windows_shared_memory & operator=(windows_shared_memory &&); - ~windows_shared_memory(); + windows_shared_memory(open_only_t, const char *, mode_t); + windows_shared_memory(windows_shared_memory &&); + windows_shared_memory & operator=(windows_shared_memory &&); + ~windows_shared_memory(); - // public member functions - void swap(windows_shared_memory &); - const char * get_name() const; - mode_t get_mode() const; - mapping_handle_t get_mapping_handle() const; - offset_t get_size() const; + // public member functions + void swap(windows_shared_memory &); + const char * get_name() const; + mode_t get_mode() const; + mapping_handle_t get_mapping_handle() const; + offset_t get_size() const; };

    Description

    @@ -64,53 +64,53 @@ construct/copy/destruct
    1. -
      windows_shared_memory();
      +
      windows_shared_memory();

      Default constructor. Represents an empty windows_shared_memory.

    2. -
      windows_shared_memory(create_only_t, const char * name, mode_t mode, 
      +
      windows_shared_memory(create_only_t, const char * name, mode_t mode, 
                             std::size_t size, 
                             const permissions & perm = permissions());

      Creates a new native shared memory with name "name" and at least size "size", with the access mode "mode". If the file previously exists, throws an error.

    3. -
      windows_shared_memory(open_or_create_t, const char * name, mode_t mode, 
      +
      windows_shared_memory(open_or_create_t, const char * name, mode_t mode, 
                             std::size_t size, 
                             const permissions & perm = permissions());

      Tries to create a shared memory object with name "name" and at least size "size", with the access mode "mode". If the file previously exists, it tries to open it with mode "mode". Otherwise throws an error.

    4. -
      windows_shared_memory(open_only_t, const char * name, mode_t mode);
      +
      windows_shared_memory(open_only_t, const char * name, mode_t mode);

      Tries to open a shared memory object with name "name", with the access mode "mode". If the file does not previously exist, it throws an error.

    5. -
      windows_shared_memory(windows_shared_memory && moved);
      +
      windows_shared_memory(windows_shared_memory && moved);

      Moves the ownership of "moved"'s shared memory object to *this. After the call, "moved" does not represent any shared memory object. Does not throw

    6. -
      windows_shared_memory & operator=(windows_shared_memory && moved);
      +
      windows_shared_memory & operator=(windows_shared_memory && moved);

      Moves the ownership of "moved"'s shared memory to *this. After the call, "moved" does not represent any shared memory. Does not throw

    7. -
      ~windows_shared_memory();
      +
      ~windows_shared_memory();

      Destroys *this. All mapped regions are still valid after destruction. When all mapped regions and windows_shared_memory objects referring the shared memory are destroyed, the operating system will destroy the shared memory.

    -windows_shared_memory public member functions

    +windows_shared_memory public member functions
    1. -
      void swap(windows_shared_memory & other);
      Swaps to shared_memory_objects. Does not throw.
    2. +
      void swap(windows_shared_memory & other);
      Swaps to shared_memory_objects. Does not throw.
    3. -
      const char * get_name() const;
      Returns the name of the shared memory.
    4. +
      const char * get_name() const;
      Returns the name of the shared memory.
    5. -
      mode_t get_mode() const;
      Returns access mode.
    6. +
      mode_t get_mode() const;
      Returns access mode.
    7. -
      mapping_handle_t get_mapping_handle() const;
      Returns the mapping handle. Never throws.
    8. +
      mapping_handle_t get_mapping_handle() const;
      Returns the mapping handle. Never throws.
    9. -
      offset_t get_size() const;
      +
      offset_t get_size() const;

      Returns the size of the windows shared memory. It will be a 4K rounded size of the "size" passed in the constructor.

    diff --git a/doc/html/boost/interprocess/wmanaged_external_buffer.html b/doc/html/boost/interprocess/wmanaged_external_buffer.html index d4bca2fdc1..868fdf74ae 100644 --- a/doc/html/boost/interprocess/wmanaged_external_buffer.html +++ b/doc/html/boost/interprocess/wmanaged_external_buffer.html @@ -33,10 +33,10 @@ +typedef basic_managed_external_buffer< wchar_t,rbtree_best_fit< null_mutex_family >,iset_index > wmanaged_external_buffer;

    Description

    -

    Typedef for a default basic_managed_external_buffer of wide characters

    +

    Typedef for a default basic_managed_external_buffer of wide characters

    diff --git a/doc/html/boost/interprocess/wmanaged_mapped_file.html b/doc/html/boost/interprocess/wmanaged_mapped_file.html index 2eb6917652..88a78e08bb 100644 --- a/doc/html/boost/interprocess/wmanaged_mapped_file.html +++ b/doc/html/boost/interprocess/wmanaged_mapped_file.html @@ -8,7 +8,7 @@ - +
    @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -49,7 +49,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/wmanaged_shared_memory.html b/doc/html/boost/interprocess/wmanaged_shared_memory.html index e8d7727674..cf71305318 100644 --- a/doc/html/boost/interprocess/wmanaged_shared_memory.html +++ b/doc/html/boost/interprocess/wmanaged_shared_memory.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -33,10 +33,10 @@ +typedef basic_managed_shared_memory< wchar_t,rbtree_best_fit< mutex_family >,iset_index > wmanaged_shared_memory;

    Description

    -

    Typedef for a default basic_managed_shared_memory of wide characters

    +

    Typedef for a default basic_managed_shared_memory of wide characters

    @@ -49,7 +49,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/interprocess/wmanaged_windo_idp39683440.html b/doc/html/boost/interprocess/wmanaged_windo_idp39683440.html new file mode 100644 index 0000000000..08f29ea4ed --- /dev/null +++ b/doc/html/boost/interprocess/wmanaged_windo_idp39683440.html @@ -0,0 +1,55 @@ + + + + +Type definition wmanaged_windows_shared_memory + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Type definition wmanaged_windows_shared_memory

    +

    wmanaged_windows_shared_memory

    +
    +

    Synopsis

    + +
    +

    Description

    +

    Typedef for a default basic_managed_windows_shared_memory of wide characters

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/interprocess/wmanaged_windo_idp55588880.html b/doc/html/boost/interprocess/wmanaged_windo_idp55588880.html deleted file mode 100644 index 0defbffd2d..0000000000 --- a/doc/html/boost/interprocess/wmanaged_windo_idp55588880.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Type definition wmanaged_windows_shared_memory - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Type definition wmanaged_windows_shared_memory

    -

    wmanaged_windows_shared_memory

    -
    -

    Synopsis

    - -
    -

    Description

    -

    Typedef for a default basic_managed_windows_shared_memory of wide characters

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/interprocess/wmanaged_xsi_shared_memory.html b/doc/html/boost/interprocess/wmanaged_xsi_shared_memory.html index 6ad349c278..64fb9b38a6 100644 --- a/doc/html/boost/interprocess/wmanaged_xsi_shared_memory.html +++ b/doc/html/boost/interprocess/wmanaged_xsi_shared_memory.html @@ -33,10 +33,10 @@ +typedef basic_managed_xsi_shared_memory< wchar_t,rbtree_best_fit< mutex_family >,iset_index > wmanaged_xsi_shared_memory;

    Description

    -

    Typedef for a default basic_managed_xsi_shared_memory of wide characters

    +

    Typedef for a default basic_managed_xsi_shared_memory of wide characters

    diff --git a/doc/html/boost/interprocess/xsi_key.html b/doc/html/boost/interprocess/xsi_key.html index 1ec165546a..491ec35f5f 100644 --- a/doc/html/boost/interprocess/xsi_key.html +++ b/doc/html/boost/interprocess/xsi_key.html @@ -36,12 +36,12 @@ classxsi_key{public:// construct/copy/destruct - xsi_key(); - explicitxsi_key(key_t); - xsi_key(constchar*,boost::uint8_t); + xsi_key(); + explicitxsi_key(key_t); + xsi_key(constchar*,boost::uint8_t); - // public member functions - key_tget_key()const; + // public member functions + key_tget_key()const;};

    Description

    @@ -53,22 +53,22 @@ construct/copy/destruct
    1. -
      xsi_key();
      +
      xsi_key();

      Default constructor. Represents a private xsi_key.

    2. -
      explicit xsi_key(key_t key);
      Creates a new XSI key using a specified value. Constructor is explicit to avoid ambiguity with shmid.
    3. +
      explicit xsi_key(key_t key);
      Creates a new XSI key using a specified value. Constructor is explicit to avoid ambiguity with shmid.
    4. -
      xsi_key(const char * path, boost::uint8_t id);
      +
      xsi_key(const char * path, boost::uint8_t id);

      Creates a new XSI shared memory with a key obtained from a call to ftok (with path "path" and id "id"), of size "size" and permissions "perm". If the shared memory previously exists, throws an error.

    -xsi_key public member functions

    +xsi_key public member functions
    1. -
      key_t get_key() const;
      Returns the internal key_t value.
    +
    key_t get_key() const;
    Returns the internal key_t value.
    diff --git a/doc/html/boost/interprocess/xsi_shared_memory.html b/doc/html/boost/interprocess/xsi_shared_memory.html index 2e5f7c1a74..aeed2d8ab8 100644 --- a/doc/html/boost/interprocess/xsi_shared_memory.html +++ b/doc/html/boost/interprocess/xsi_shared_memory.html @@ -36,24 +36,24 @@ classxsi_shared_memory{public:// construct/copy/destruct - xsi_shared_memory(); - xsi_shared_memory(open_only_t,int); - xsi_shared_memory(create_only_t,constxsi_key&,std::size_t, + xsi_shared_memory(); + xsi_shared_memory(open_only_t,int); + xsi_shared_memory(create_only_t,constxsi_key&,std::size_t,constpermissions&=permissions()); - xsi_shared_memory(open_or_create_t,constxsi_key&,std::size_t, + xsi_shared_memory(open_or_create_t,constxsi_key&,std::size_t,constpermissions&=permissions()); - xsi_shared_memory(open_only_t,constxsi_key&); - xsi_shared_memory(xsi_shared_memory&&); - xsi_shared_memory&operator=(xsi_shared_memory&&); - ~xsi_shared_memory(); + xsi_shared_memory(open_only_t,constxsi_key&); + xsi_shared_memory(xsi_shared_memory&&); + xsi_shared_memory&operator=(xsi_shared_memory&&); + ~xsi_shared_memory(); - // public member functions - voidswap(xsi_shared_memory&); - intget_shmid()const; - mapping_handle_tget_mapping_handle()const; + // public member functions + voidswap(xsi_shared_memory&); + intget_shmid()const; + mapping_handle_tget_mapping_handle()const; - // public static functions - staticboolremove(int); + // public static functions + staticboolremove(int);};

    Description

    @@ -66,62 +66,62 @@ construct/copy/destruct
    1. -
      xsi_shared_memory();
      +
      xsi_shared_memory();

      Default constructor. Represents an empty xsi_shared_memory.

    2. -
      xsi_shared_memory(open_only_t, int shmid);
      +
      xsi_shared_memory(open_only_t, int shmid);

      Initializes *this with a shmid previously obtained (possibly from another process) This lower-level initializer allows shared memory mapping without having a key.

    3. -
      xsi_shared_memory(create_only_t, const xsi_key & key, std::size_t size, 
      +
      xsi_shared_memory(create_only_t, const xsi_key & key, std::size_t size, 
                         const permissions & perm = permissions());

      Creates a new XSI shared memory from 'key', with size "size" and permissions "perm". If the shared memory previously exists, throws an error.

    4. -
      xsi_shared_memory(open_or_create_t, const xsi_key & key, std::size_t size, 
      +
      xsi_shared_memory(open_or_create_t, const xsi_key & key, std::size_t size, 
                         const permissions & perm = permissions());

      Opens an existing shared memory with identifier 'key' or creates a new XSI shared memory from identifier 'key', with size "size" and permissions "perm".

    5. -
      xsi_shared_memory(open_only_t, const xsi_key & key);
      +
      xsi_shared_memory(open_only_t, const xsi_key & key);

      Tries to open a XSI shared memory with identifier 'key' If the shared memory does not previously exist, it throws an error.

    6. -
      xsi_shared_memory(xsi_shared_memory && moved);
      +
      xsi_shared_memory(xsi_shared_memory && moved);

      Moves the ownership of "moved"'s shared memory object to *this. After the call, "moved" does not represent any shared memory object. Does not throw

    7. -
      xsi_shared_memory & operator=(xsi_shared_memory && moved);
      +
      xsi_shared_memory & operator=(xsi_shared_memory && moved);

      Moves the ownership of "moved"'s shared memory to *this. After the call, "moved" does not represent any shared memory. Does not throw

    8. -
      ~xsi_shared_memory();
      +
      ~xsi_shared_memory();

      Destroys *this. The shared memory won't be destroyed, just this connection to it. Use remove() to destroy the shared memory.

    -xsi_shared_memory public member functions

    +xsi_shared_memory public member functions
    1. -
      void swap(xsi_shared_memory & other);
      Swaps two xsi_shared_memorys. Does not throw.
    2. +
      void swap(xsi_shared_memory & other);
      Swaps two xsi_shared_memorys. Does not throw.
    3. -
      int get_shmid() const;
      +
      int get_shmid() const;

      Returns the shared memory ID that identifies the shared memory

    4. -
      mapping_handle_t get_mapping_handle() const;
      +
      mapping_handle_t get_mapping_handle() const;

      Returns the mapping handle. Never throws

    -xsi_shared_memory public static functions

    +xsi_shared_memory public static functions
    1. -
      static bool remove(int shmid);
      +
      static bool remove(int shmid);

      Erases the XSI shared memory object identified by shmid from the system. Returns false on error. Never throws

    diff --git a/doc/html/boost/intrusive/any_base_hook.html b/doc/html/boost/intrusive/any_base_hook.html index 1941ed1a1b..78b4511c88 100644 --- a/doc/html/boost/intrusive/any_base_hook.html +++ b/doc/html/boost/intrusive/any_base_hook.html @@ -36,13 +36,13 @@ classany_base_hook:publicmake_any_base_hook::type<O1,O2,O3>{public:// construct/copy/destruct - any_base_hook(); - any_base_hook(constany_base_hook&); - any_base_hook&operator=(constany_base_hook&); - ~any_base_hook(); + any_base_hook(); + any_base_hook(constany_base_hook&); + any_base_hook&operator=(constany_base_hook&); + ~any_base_hook(); - // public member functions - boolis_linked()const; + // public member functions + boolis_linked()const;};

    Description

    @@ -58,24 +58,24 @@ construct/copy/destruct
    1. -
      any_base_hook();
      +
      any_base_hook();

      Effects: If link_mode is or safe_link initializes the node to an unlinked state.

      Throws: Nothing.

    2. -
      any_base_hook(const any_base_hook &);
      +
      any_base_hook(const any_base_hook &);

      Effects: If link_mode is or safe_link initializes the node to an unlinked state. The argument is ignored.

      Throws: Nothing.

      Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

    3. -
      any_base_hook & operator=(const any_base_hook &);
      +
      any_base_hook & operator=(const any_base_hook &);

      Effects: Empty function. The argument is ignored.

      Throws: Nothing.

      Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

    4. -
      ~any_base_hook();
      +
      ~any_base_hook();

      Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in a container an assertion is raised.

      Throws: Nothing.

    5. @@ -83,9 +83,9 @@

    -any_base_hook public member functions

    +any_base_hook public member functions
    1. -
      bool is_linked() const;
      +
      bool is_linked() const;

      Precondition: link_mode must be safe_link.

      Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether container::iterator_to will return a valid iterator.

      Complexity: Constant

      diff --git a/doc/html/boost/intrusive/any_member_hook.html b/doc/html/boost/intrusive/any_member_hook.html index 6600f96620..06aa61c446 100644 --- a/doc/html/boost/intrusive/any_member_hook.html +++ b/doc/html/boost/intrusive/any_member_hook.html @@ -36,13 +36,13 @@ class any_member_hook : public make_any_member_hook::type< O1, O2, O3 > { public: // construct/copy/destruct - any_member_hook(); - any_member_hook(const any_member_hook &); - any_member_hook & operator=(const any_member_hook &); - ~any_member_hook(); + any_member_hook(); + any_member_hook(const any_member_hook &); + any_member_hook & operator=(const any_member_hook &); + ~any_member_hook(); - // public member functions - bool is_linked() const; + // public member functions + bool is_linked() const; };

    Description

    @@ -57,24 +57,24 @@ construct/copy/destruct
    1. -
      any_member_hook();
      +
      any_member_hook();

      Effects: If link_mode is or safe_link initializes the node to an unlinked state.

      Throws: Nothing.

    2. -
      any_member_hook(const any_member_hook &);
      +
      any_member_hook(const any_member_hook &);

      Effects: If link_mode is or safe_link initializes the node to an unlinked state. The argument is ignored.

      Throws: Nothing.

      Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

    3. -
      any_member_hook & operator=(const any_member_hook &);
      +
      any_member_hook & operator=(const any_member_hook &);

      Effects: Empty function. The argument is ignored.

      Throws: Nothing.

      Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

    4. -
      ~any_member_hook();
      +
      ~any_member_hook();

      Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in a container an assertion is raised.

      Throws: Nothing.

    5. @@ -82,9 +82,9 @@

    -any_member_hook public member functions

    +any_member_hook public member functions
    1. -
      bool is_linked() const;
      +
      bool is_linked() const;

      Precondition: link_mode must be safe_link.

      Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether container::iterator_to will return a valid iterator.

      Complexity: Constant

      diff --git a/doc/html/boost/intrusive/avl_multiset.html b/doc/html/boost/intrusive/avl_multiset.html index 88da11f11c..9930aca259 100644 --- a/doc/html/boost/intrusive/avl_multiset.html +++ b/doc/html/boost/intrusive/avl_multiset.html @@ -60,120 +60,120 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - avl_multiset(); - explicit avl_multiset(const key_compare &, + avl_multiset(); + explicit avl_multiset(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - avl_multiset(Iterator, Iterator, const key_compare & = key_compare(), + avl_multiset(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - avl_multiset(avl_multiset &&); - avl_multiset & operator=(avl_multiset &&); - ~avl_multiset(); + avl_multiset(avl_multiset &&); + avl_multiset & operator=(avl_multiset &&); + ~avl_multiset(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(avl_multiset &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(avl_multiset &); template<typename Cloner, typename Disposer> - void clone_from(const avl_multiset &, Cloner, Disposer); + void clone_from(const avl_multiset &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(avl_multiset &&, Cloner, Disposer); - iterator insert(reference); - iterator insert(const_iterator, reference); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + void clone_from(avl_multiset &&, Cloner, Disposer); + iterator insert(reference); + iterator insert(const_iterator, reference); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &key, bool, bool) const; + bounded_range(const key_type &, const key_type &key, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - template<class... Options2> void merge(avl_multiset< T, Options2...> &); - template<class... Options2> void merge(avl_set< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + template<class... Options2> void merge(avl_multiset< T, Options2...> &); + template<class... Options2> void merge(avl_set< T, Options2...> &); - // public static functions - static avl_multiset & container_from_end_iterator(iterator); - static const avl_multiset & container_from_end_iterator(const_iterator); - static avl_multiset & container_from_iterator(iterator); - static const avl_multiset & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static avl_multiset & container_from_end_iterator(iterator); + static const avl_multiset & container_from_end_iterator(const_iterator); + static avl_multiset & container_from_iterator(iterator); + static const avl_multiset & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -190,13 +190,13 @@ construct/copy/destruct
      1. -
        avl_multiset();
        +
        avl_multiset();

        Effects: Constructs an empty container.

        Complexity: Constant.

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

      2. -
        explicit avl_multiset(const key_compare & cmp, 
        +
        explicit avl_multiset(const key_compare & cmp, 
                               const value_traits & v_traits = value_traits());

        Effects: Constructs an empty container with given comparison and traits.

        Complexity: Constant.

        @@ -204,7 +204,7 @@
      3. template<typename Iterator> 
        -  avl_multiset(Iterator b, Iterator e, 
        +  avl_multiset(Iterator b, Iterator e, 
                        const key_compare & cmp = key_compare(), 
                        const value_traits & v_traits = value_traits());

        Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

        @@ -213,17 +213,17 @@

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

      4. -
        avl_multiset(avl_multiset && x);
        +
        avl_multiset(avl_multiset && x);

        Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

        Complexity: Constant.

        Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

      5. -
        avl_multiset & operator=(avl_multiset && x);
        +
        avl_multiset & operator=(avl_multiset && x);

        Effects: Equivalent to swap

      6. -
        ~avl_multiset();
        +
        ~avl_multiset();

        Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

        Complexity: Linear to elements contained in *this.

        Throws: Nothing.

        @@ -232,131 +232,131 @@

      -avl_multiset public member functions

      +avl_multiset public member functions
      1. -
        iterator begin();
        +
        iterator begin();

        Effects: Returns an iterator pointing to the beginning of the container.

        Complexity: Constant.

        Throws: Nothing.

      2. -
        const_iterator begin() const;
        +
        const_iterator begin() const;

        Effects: Returns a const_iterator pointing to the beginning of the container.

        Complexity: Constant.

        Throws: Nothing.

      3. -
        const_iterator cbegin() const;
        +
        const_iterator cbegin() const;

        Effects: Returns a const_iterator pointing to the beginning of the container.

        Complexity: Constant.

        Throws: Nothing.

      4. -
        iterator end();
        +
        iterator end();

        Effects: Returns an iterator pointing to the end of the container.

        Complexity: Constant.

        Throws: Nothing.

      5. -
        const_iterator end() const;
        +
        const_iterator end() const;

        Effects: Returns a const_iterator pointing to the end of the container.

        Complexity: Constant.

        Throws: Nothing.

      6. -
        const_iterator cend() const;
        +
        const_iterator cend() const;

        Effects: Returns a const_iterator pointing to the end of the container.

        Complexity: Constant.

        Throws: Nothing.

      7. -
        reverse_iterator rbegin();
        +
        reverse_iterator rbegin();

        Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      8. -
        const_reverse_iterator rbegin() const;
        +
        const_reverse_iterator rbegin() const;

        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      9. -
        const_reverse_iterator crbegin() const;
        +
        const_reverse_iterator crbegin() const;

        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      10. -
        reverse_iterator rend();
        +
        reverse_iterator rend();

        Effects: Returns a reverse_iterator pointing to the end of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      11. -
        const_reverse_iterator rend() const;
        +
        const_reverse_iterator rend() const;

        Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      12. -
        const_reverse_iterator crend() const;
        +
        const_reverse_iterator crend() const;

        Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      13. -
        iterator root();
        +
        iterator root();

        Effects: Returns a iterator pointing to the root node of the container or end() if not present.

        Complexity: Constant.

        Throws: Nothing.

      14. -
        const_iterator root() const;
        +
        const_iterator root() const;

        Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

        Complexity: Constant.

        Throws: Nothing.

      15. -
        const_iterator croot() const;
        +
        const_iterator croot() const;

        Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

        Complexity: Constant.

        Throws: Nothing.

      16. -
        key_compare key_comp() const;
        +
        key_compare key_comp() const;

        Effects: Returns the key_compare object used by the container.

        Complexity: Constant.

        Throws: If key_compare copy-constructor throws.

      17. -
        value_compare value_comp() const;
        +
        value_compare value_comp() const;

        Effects: Returns the value_compare object used by the container.

        Complexity: Constant.

        Throws: If value_compare copy-constructor throws.

      18. -
        bool empty() const;
        +
        bool empty() const;

        Effects: Returns true if the container is empty.

        Complexity: Constant.

        Throws: Nothing.

      19. -
        size_type size() const;
        +
        size_type size() const;

        Effects: Returns the number of elements stored in the container.

        Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

        Throws: Nothing.

      20. -
        void swap(avl_multiset & other);
        +
        void swap(avl_multiset & other);

        Effects: Swaps the contents of two containers.

        Complexity: Constant.

        Throws: If the comparison functor's swap call throws.

      21. template<typename Cloner, typename Disposer> 
        -  void clone_from(const avl_multiset & src, Cloner cloner, Disposer disposer);
        + void clone_from(const avl_multiset & src, Cloner cloner, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

        @@ -365,7 +365,7 @@
      22. template<typename Cloner, typename Disposer> 
        -  void clone_from(avl_multiset && src, Cloner cloner, Disposer disposer);
        + void clone_from(avl_multiset && src, Cloner cloner, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

        @@ -374,7 +374,7 @@

        Note: This version can modify the source container, useful to implement move semantics.

      23. -
        iterator insert(reference value);
        +
        iterator insert(reference value);

        Requires: value must be an lvalue

        Effects: Inserts value into the container before the upper bound.

        Complexity: Average complexity for insert element is at most logarithmic.

        @@ -382,7 +382,7 @@

        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

      24. -
        iterator insert(const_iterator hint, reference value);
        +
        iterator insert(const_iterator hint, reference value);

        Requires: value must be an lvalue, and "hint" must be a valid iterator.

        Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

        Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

        @@ -390,7 +390,7 @@

        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

      25. -
        template<typename Iterator> void insert(Iterator b, Iterator e);
        +
        template<typename Iterator> void insert(Iterator b, Iterator e);

        Requires: Dereferencing iterator must yield an lvalue of type value_type.

        Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

        Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

        @@ -398,7 +398,7 @@

        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

      26. -
        iterator insert_before(const_iterator pos, reference value);
        +
        iterator insert_before(const_iterator pos, reference value);

        Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

        Effects: Inserts x into the container before "pos".

        Complexity: Constant time.

        @@ -406,7 +406,7 @@

        Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

      27. -
        void push_back(reference value);
        +
        void push_back(reference value);

        Requires: value must be an lvalue, and it must be no less than the greatest inserted key

        Effects: Inserts x into the container in the last position.

        Complexity: Constant time.

        @@ -414,7 +414,7 @@

        Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

      28. -
        void push_front(reference value);
        +
        void push_front(reference value);

        Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

        Effects: Inserts x into the container in the first position.

        Complexity: Constant time.

        @@ -422,21 +422,21 @@

        Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

      29. -
        iterator erase(const_iterator i);
        +
        iterator erase(const_iterator i);

        Effects: Erases the element pointed to by i.

        Complexity: Average complexity for erase element is constant time.

        Throws: Nothing.

        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

      30. -
        iterator erase(const_iterator b, const_iterator e);
        +
        iterator erase(const_iterator b, const_iterator e);

        Effects: Erases the range pointed to by b end e.

        Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

        Throws: Nothing.

        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

      31. -
        size_type erase(const key_type & key);
        +
        size_type erase(const key_type & key);

        Effects: Erases all the elements with the given value.

        Returns: The number of erased elements.

        Complexity: O(log(size() + N).

        @@ -445,7 +445,7 @@
      32. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
        + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Erases all the elements with the given key. according to the comparison functor "comp".

        Returns: The number of erased elements.

        @@ -455,7 +455,7 @@
      33. template<typename Disposer> 
        -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
        + iterator erase_and_dispose(const_iterator i, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

        Complexity: Average complexity for erase element is constant time.

        @@ -464,7 +464,7 @@
      34. template<typename Disposer> 
        -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
        +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                      Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

        @@ -474,7 +474,7 @@
      35. template<typename Disposer> 
        -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
        + size_type erase_and_dispose(const key_type & key, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

        Returns: The number of erased elements.

        @@ -484,7 +484,7 @@
      36. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
        -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
        +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                       Disposer disposer);

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

        Requires: Disposer::operator()(pointer) shouldn't throw.

        @@ -495,47 +495,47 @@

        Note: Invalidates the iterators to the erased elements.

      37. -
        void clear();
        +
        void clear();

        Effects: Erases all of the elements.

        Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

        Throws: Nothing.

        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

      38. -
        template<typename Disposer> void clear_and_dispose(Disposer disposer);
        +
        template<typename Disposer> void clear_and_dispose(Disposer disposer);

        Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

        Throws: Nothing.

        Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

      39. -
        size_type count(const key_type & key) const;
        +
        size_type count(const key_type & key) const;

        Effects: Returns the number of contained elements with the given value

        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

        Throws: If key_compare throws.

      40. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
        + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

        Effects: Returns the number of contained elements with the given key

        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

        Throws: If comp throws.

      41. -
        iterator lower_bound(const key_type & key);
        +
        iterator lower_bound(const key_type & key);

        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      42. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
        + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      43. -
        const_iterator lower_bound(const key_type & key) const;
        +
        const_iterator lower_bound(const key_type & key) const;

        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

        @@ -543,27 +543,27 @@
      44. template<typename KeyType, typename KeyTypeKeyCompare> 
           const_iterator 
        -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
        + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      45. -
        iterator upper_bound(const key_type & key);
        +
        iterator upper_bound(const key_type & key);

        Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      46. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
        + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

        Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If comp throws.

      47. -
        const_iterator upper_bound(const key_type & key) const;
        +
        const_iterator upper_bound(const key_type & key) const;

        Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

        @@ -571,42 +571,42 @@
      48. template<typename KeyType, typename KeyTypeKeyCompare> 
           const_iterator 
        -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
        + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

        Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If comp throws.

      49. -
        iterator find(const key_type & key);
        +
        iterator find(const key_type & key);

        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      50. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
        + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If comp throws.

      51. -
        const_iterator find(const key_type & key) const;
        +
        const_iterator find(const key_type & key) const;

        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      52. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
        + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If comp throws.

      53. -
        std::pair< iterator, iterator > equal_range(const key_type & key);
        +
        std::pair< iterator, iterator > equal_range(const key_type & key);

        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

        @@ -614,7 +614,7 @@
      54. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< iterator, iterator > 
        -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
        + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

        Complexity: Logarithmic.

        @@ -622,7 +622,7 @@
      55. std::pair< const_iterator, const_iterator > 
        -equal_range(const key_type & key) const;
        +equal_range(const key_type & key) const;

        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

        @@ -630,7 +630,7 @@
      56. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< const_iterator, const_iterator > 
        -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
        + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

        Complexity: Logarithmic.

        @@ -638,7 +638,7 @@
      57. std::pair< iterator, iterator > 
        -bounded_range(const key_type & lower_key, const key_type & upper_key, 
        +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                       bool left_closed, bool right_closed);

        Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

        If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

        @@ -653,7 +653,7 @@
      58. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< iterator, iterator > 
        -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
        +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                         KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

        Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

        upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

        @@ -669,7 +669,7 @@
      59. std::pair< const_iterator, const_iterator > 
        -bounded_range(const key_type & lower_key, const key_type &key upper_key, 
        +bounded_range(const key_type & lower_key, const key_type &key upper_key, 
                       bool left_closed, bool right_closed) const;

        Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

        If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

        @@ -684,7 +684,7 @@
      60. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< const_iterator, const_iterator > 
        -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
        +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                         KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

        Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

        upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

        @@ -699,28 +699,28 @@

        Note: Experimental function, the interface might change in future releases.

      61. -
        iterator iterator_to(reference value);
        +
        iterator iterator_to(reference value);

        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

        Effects: Returns: a valid iterator i belonging to the set that points to the value

        Complexity: Constant.

        Throws: Nothing.

      62. -
        const_iterator iterator_to(const_reference value) const;
        +
        const_iterator iterator_to(const_reference value) const;

        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

        Effects: Returns: a valid const_iterator i belonging to the set that points to the value

        Complexity: Constant.

        Throws: Nothing.

      63. -
        pointer unlink_leftmost_without_rebalance();
        +
        pointer unlink_leftmost_without_rebalance();

        Effects: Unlinks the leftmost node from the container.

        Complexity: Average complexity is constant time.

        Throws: Nothing.

        Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

      64. -
        void replace_node(iterator replace_this, reference with_this);
        +
        void replace_node(iterator replace_this, reference with_this);

        Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

        Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

        Complexity: Constant.

        @@ -728,7 +728,7 @@

        Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

      65. -
        void remove_node(reference value);
        +
        void remove_node(reference value);

        Effects: removes "value" from the container.

        Throws: Nothing.

        Complexity: Logarithmic time.

        @@ -736,7 +736,7 @@

        If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

      66. -
        template<class... Options2> void merge(avl_multiset< T, Options2...> & source);
        +
        template<class... Options2> void merge(avl_multiset< T, Options2...> & source);

        Requires: "source" container's Options can only can differ in the comparison function from *this.

        Effects: Extracts each element in source and insert it into a using the comparison object of *this.

        Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

        @@ -744,7 +744,7 @@

        Complexity: N log(a.size() + N) (N has the value source.size())

      67. -
        template<class... Options2> void merge(avl_set< T, Options2...> & source);
        +
        template<class... Options2> void merge(avl_set< T, Options2...> & source);

        Requires: "source" container's Options can only can differ in the comparison function from *this.

        Effects: Extracts each element in source and insert it into a using the comparison object of *this.

        Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

        @@ -755,10 +755,10 @@

      -avl_multiset public static functions

      +avl_multiset public static functions
      1. -
        static avl_multiset & container_from_end_iterator(iterator end_iterator);
        +
        static avl_multiset & container_from_end_iterator(iterator end_iterator);

        Precondition: end_iterator must be a valid end iterator of the container.

        Effects: Returns a const reference to the container associated to the end iterator

        Throws: Nothing.

        @@ -766,28 +766,28 @@
      2. static const avl_multiset & 
        -container_from_end_iterator(const_iterator end_iterator);
        +container_from_end_iterator(const_iterator end_iterator);

        Precondition: end_iterator must be a valid end iterator of the container.

        Effects: Returns a const reference to the container associated to the end iterator

        Throws: Nothing.

        Complexity: Constant.

      3. -
        static avl_multiset & container_from_iterator(iterator it);
        +
        static avl_multiset & container_from_iterator(iterator it);

        Precondition: it must be a valid iterator of the container.

        Effects: Returns a const reference to the container associated to the iterator

        Throws: Nothing.

        Complexity: Logarithmic.

      4. -
        static const avl_multiset & container_from_iterator(const_iterator it);
        +
        static const avl_multiset & container_from_iterator(const_iterator it);

        Precondition: it must be a valid iterator of the container.

        Effects: Returns a const reference to the container associated to the iterator

        Throws: Nothing.

        Complexity: Logarithmic.

      5. -
        static iterator s_iterator_to(reference value);
        +
        static iterator s_iterator_to(reference value);

        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

        Effects: Returns: a valid iterator i belonging to the set that points to the value

        Complexity: Constant.

        @@ -795,7 +795,7 @@

        Note: This static function is available only if the value traits is stateless.

      6. -
        static const_iterator s_iterator_to(const_reference value);
        +
        static const_iterator s_iterator_to(const_reference value);

        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

        Effects: Returns: a valid iterator i belonging to the set that points to the value

        Complexity: Constant.

        @@ -803,7 +803,7 @@

        Note: This static function is available only if the value traits is stateless.

      7. -
        static void init_node(reference value);
        +
        static void init_node(reference value);

        Requires: value shall not be in a container.

        Effects: init_node puts the hook of a value in a well-known default state.

        Throws: Nothing.

        diff --git a/doc/html/boost/intrusive/avl_set.html b/doc/html/boost/intrusive/avl_set.html index f0dded9d8d..ce58eaba08 100644 --- a/doc/html/boost/intrusive/avl_set.html +++ b/doc/html/boost/intrusive/avl_set.html @@ -60,131 +60,131 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - avl_set(); - explicit avl_set(const key_compare &, const value_traits & = value_traits()); + avl_set(); + explicit avl_set(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - avl_set(Iterator, Iterator, const key_compare & = key_compare(), + avl_set(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - avl_set(avl_set &&); - avl_set & operator=(avl_set &&); - ~avl_set(); + avl_set(avl_set &&); + avl_set & operator=(avl_set &&); + ~avl_set(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator avlegin(); - const_reverse_iterator avlegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(avl_set &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator avlegin(); + const_reverse_iterator avlegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(avl_set &); template<typename Cloner, typename Disposer> - void clone_from(const avl_set &, Cloner, Disposer); + void clone_from(const avl_set &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(avl_set &&, Cloner, Disposer); - std::pair< iterator, bool > insert(reference); - iterator insert(const_iterator, reference); + void clone_from(avl_set &&, Cloner, Disposer); + std::pair< iterator, bool > insert(reference); + iterator insert(const_iterator, reference); std::pair< iterator, bool > - insert_check(const key_type &, insert_commit_data &); + insert_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_check(const_iterator, const key_type &, insert_commit_data &); + insert_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); + insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_commit(reference, const insert_commit_data &); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_commit(reference, const insert_commit_data &); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - template<class... Options2> void merge(avl_set< T, Options2...> &); - template<class... Options2> void merge(avl_multiset< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + template<class... Options2> void merge(avl_set< T, Options2...> &); + template<class... Options2> void merge(avl_multiset< T, Options2...> &); - // public static functions - static avl_set & container_from_end_iterator(iterator); - static const avl_set & container_from_end_iterator(const_iterator); - static avl_set & container_from_iterator(iterator); - static const avl_set & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static avl_set & container_from_end_iterator(iterator); + static const avl_set & container_from_end_iterator(const_iterator); + static avl_set & container_from_iterator(iterator); + static const avl_set & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -201,13 +201,13 @@ construct/copy/destruct
        1. -
          avl_set();
          +
          avl_set();

          Effects: Constructs an empty container.

          Complexity: Constant.

          Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

        2. -
          explicit avl_set(const key_compare & cmp, 
          +
          explicit avl_set(const key_compare & cmp, 
                            const value_traits & v_traits = value_traits());

          Effects: Constructs an empty container with given comparison and traits.

          Complexity: Constant.

          @@ -215,7 +215,7 @@
        3. template<typename Iterator> 
          -  avl_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
          +  avl_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                     const value_traits & v_traits = value_traits());

          Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

          Effects: Constructs an empty container and inserts elements from [b, e).

          @@ -223,17 +223,17 @@

          Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

        4. -
          avl_set(avl_set && x);
          +
          avl_set(avl_set && x);

          Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

          Complexity: Constant.

          Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

        5. -
          avl_set & operator=(avl_set && x);
          +
          avl_set & operator=(avl_set && x);

          Effects: Equivalent to swap

        6. -
          ~avl_set();
          +
          ~avl_set();

          Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

          Complexity: Linear to elements contained in *this.

          Throws: Nothing.

          @@ -242,131 +242,131 @@

        -avl_set public member functions

        +avl_set public member functions
        1. -
          iterator begin();
          +
          iterator begin();

          Effects: Returns an iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        2. -
          const_iterator begin() const;
          +
          const_iterator begin() const;

          Effects: Returns a const_iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        3. -
          const_iterator cbegin() const;
          +
          const_iterator cbegin() const;

          Effects: Returns a const_iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        4. -
          iterator end();
          +
          iterator end();

          Effects: Returns an iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        5. -
          const_iterator end() const;
          +
          const_iterator end() const;

          Effects: Returns a const_iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        6. -
          const_iterator cend() const;
          +
          const_iterator cend() const;

          Effects: Returns a const_iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        7. -
          reverse_iterator avlegin();
          +
          reverse_iterator avlegin();

          Effects: Returns an iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        8. -
          const_reverse_iterator avlegin() const;
          +
          const_reverse_iterator avlegin() const;

          Effects: Returns a const_iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        9. -
          const_reverse_iterator crbegin() const;
          +
          const_reverse_iterator crbegin() const;

          Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        10. -
          reverse_iterator rend();
          +
          reverse_iterator rend();

          Effects: Returns a reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        11. -
          const_reverse_iterator rend() const;
          +
          const_reverse_iterator rend() const;

          Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        12. -
          const_reverse_iterator crend() const;
          +
          const_reverse_iterator crend() const;

          Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        13. -
          iterator root();
          +
          iterator root();

          Effects: Returns a iterator pointing to the root node of the container or end() if not present.

          Complexity: Constant.

          Throws: Nothing.

        14. -
          const_iterator root() const;
          +
          const_iterator root() const;

          Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

          Complexity: Constant.

          Throws: Nothing.

        15. -
          const_iterator croot() const;
          +
          const_iterator croot() const;

          Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

          Complexity: Constant.

          Throws: Nothing.

        16. -
          key_compare key_comp() const;
          +
          key_compare key_comp() const;

          Effects: Returns the key_compare object used by the container.

          Complexity: Constant.

          Throws: If key_compare copy-constructor throws.

        17. -
          value_compare value_comp() const;
          +
          value_compare value_comp() const;

          Effects: Returns the value_compare object used by the container.

          Complexity: Constant.

          Throws: If value_compare copy-constructor throws.

        18. -
          bool empty() const;
          +
          bool empty() const;

          Effects: Returns true if the container is empty.

          Complexity: Constant.

          Throws: Nothing.

        19. -
          size_type size() const;
          +
          size_type size() const;

          Effects: Returns the number of elements stored in the container.

          Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

          Throws: Nothing.

        20. -
          void swap(avl_set & other);
          +
          void swap(avl_set & other);

          Effects: Swaps the contents of two containers.

          Complexity: Constant.

          Throws: If the comparison functor's swap call throws.

        21. template<typename Cloner, typename Disposer> 
          -  void clone_from(const avl_set & src, Cloner cloner, Disposer disposer);
          + void clone_from(const avl_set & src, Cloner cloner, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

          Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

          If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

          @@ -375,7 +375,7 @@
        22. template<typename Cloner, typename Disposer> 
          -  void clone_from(avl_set && src, Cloner cloner, Disposer disposer);
          + void clone_from(avl_set && src, Cloner cloner, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

          Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

          If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

          @@ -384,7 +384,7 @@

          Note: This version can modify the source container, useful to implement move semantics.

        23. -
          std::pair< iterator, bool > insert(reference value);
          +
          std::pair< iterator, bool > insert(reference value);

          Requires: value must be an lvalue

          Effects: Inserts value into the container if the value is not already present.

          Complexity: Average complexity for insert element is at most logarithmic.

          @@ -392,7 +392,7 @@

          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

        24. -
          iterator insert(const_iterator hint, reference value);
          +
          iterator insert(const_iterator hint, reference value);

          Requires: value must be an lvalue, and "hint" must be a valid iterator

          Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

          Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

          @@ -401,7 +401,7 @@
        25. std::pair< iterator, bool > 
          -insert_check(const key_type & key, insert_commit_data & commit_data);
          +insert_check(const key_type & key, insert_commit_data & commit_data);

          Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

          Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

          Complexity: Average complexity is at most logarithmic.

          @@ -409,7 +409,7 @@
        26. std::pair< iterator, bool > 
          -insert_check(const_iterator hint, const key_type & key, 
          +insert_check(const_iterator hint, const key_type & key, 
                        insert_commit_data & commit_data);

          Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

          Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

          @@ -419,7 +419,7 @@
        27. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, bool > 
          -  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
          +  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                          insert_commit_data & commit_data);

          Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

          Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

          @@ -433,7 +433,7 @@
        28. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, bool > 
          -  insert_check(const_iterator hint, const KeyType & key, 
          +  insert_check(const_iterator hint, const KeyType & key, 
                          KeyTypeKeyCompare comp, insert_commit_data & commit_data);

          Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

          Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

          @@ -445,7 +445,7 @@

          "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

        29. -
          template<typename Iterator> void insert(Iterator b, Iterator e);
          +
          template<typename Iterator> void insert(Iterator b, Iterator e);

          Requires: Dereferencing iterator must yield an lvalue of type value_type.

          Effects: Tries to insert each element of a range into the container.

          Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

          @@ -453,7 +453,7 @@

          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

        30. -
          iterator insert_commit(reference value, 
          +
          iterator insert_commit(reference value, 
                                  const insert_commit_data & commit_data);

          Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

          Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

          @@ -463,7 +463,7 @@

          Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

        31. -
          iterator insert_before(const_iterator pos, reference value);
          +
          iterator insert_before(const_iterator pos, reference value);

          Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

          Effects: Inserts x into the container before "pos".

          Complexity: Constant time.

          @@ -471,7 +471,7 @@

          Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

        32. -
          void push_back(reference value);
          +
          void push_back(reference value);

          Requires: value must be an lvalue, and it must be no less than the greatest inserted key

          Effects: Inserts x into the container in the last position.

          Complexity: Constant time.

          @@ -479,7 +479,7 @@

          Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

        33. -
          void push_front(reference value);
          +
          void push_front(reference value);

          Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

          Effects: Inserts x into the container in the first position.

          Complexity: Constant time.

          @@ -487,21 +487,21 @@

          Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

        34. -
          iterator erase(const_iterator i);
          +
          iterator erase(const_iterator i);

          Effects: Erases the element pointed to by i.

          Complexity: Average complexity for erase element is constant time.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        35. -
          iterator erase(const_iterator b, const_iterator e);
          +
          iterator erase(const_iterator b, const_iterator e);

          Effects: Erases the range pointed to by b end e.

          Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        36. -
          size_type erase(const key_type & key);
          +
          size_type erase(const key_type & key);

          Effects: Erases all the elements with the given value.

          Returns: The number of erased elements.

          Complexity: O(log(size() + N).

          @@ -510,7 +510,7 @@
        37. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
          + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Erases all the elements with the given key. according to the comparison functor "comp".

          Returns: The number of erased elements.

          @@ -520,7 +520,7 @@
        38. template<typename Disposer> 
          -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
          + iterator erase_and_dispose(const_iterator i, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

          Complexity: Average complexity for erase element is constant time.

          @@ -529,7 +529,7 @@
        39. template<typename Disposer> 
          -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
          +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                        Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

          @@ -539,7 +539,7 @@
        40. template<typename Disposer> 
          -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
          + size_type erase_and_dispose(const key_type & key, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

          Returns: The number of erased elements.

          @@ -549,7 +549,7 @@
        41. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
          -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
          +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                         Disposer disposer);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

          Requires: Disposer::operator()(pointer) shouldn't throw.

          @@ -560,47 +560,47 @@

          Note: Invalidates the iterators to the erased elements.

        42. -
          void clear();
          +
          void clear();

          Effects: Erases all of the elements.

          Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        43. -
          template<typename Disposer> void clear_and_dispose(Disposer disposer);
          +
          template<typename Disposer> void clear_and_dispose(Disposer disposer);

          Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

        44. -
          size_type count(const key_type & key) const;
          +
          size_type count(const key_type & key) const;

          Effects: Returns the number of contained elements with the given value

          Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

          Throws: If key_compare throws.

        45. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
          + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Returns the number of contained elements with the given key

          Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

          Throws: If comp throws.

        46. -
          iterator lower_bound(const key_type & key);
          +
          iterator lower_bound(const key_type & key);

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        47. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        48. -
          const_iterator lower_bound(const key_type & key) const;
          +
          const_iterator lower_bound(const key_type & key) const;

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -608,27 +608,27 @@
        49. template<typename KeyType, typename KeyTypeKeyCompare> 
             const_iterator 
          -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
          + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        50. -
          iterator upper_bound(const key_type & key);
          +
          iterator upper_bound(const key_type & key);

          Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        51. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        52. -
          const_iterator upper_bound(const key_type & key) const;
          +
          const_iterator upper_bound(const key_type & key) const;

          Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -636,42 +636,42 @@
        53. template<typename KeyType, typename KeyTypeKeyCompare> 
             const_iterator 
          -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
          + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        54. -
          iterator find(const key_type & key);
          +
          iterator find(const key_type & key);

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        55. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        56. -
          const_iterator find(const key_type & key) const;
          +
          const_iterator find(const key_type & key) const;

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        57. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
          + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        58. -
          std::pair< iterator, iterator > equal_range(const key_type & key);
          +
          std::pair< iterator, iterator > equal_range(const key_type & key);

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -679,7 +679,7 @@
        59. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, iterator > 
          -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
          + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          @@ -687,7 +687,7 @@
        60. std::pair< const_iterator, const_iterator > 
          -equal_range(const key_type & key) const;
          +equal_range(const key_type & key) const;

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -695,7 +695,7 @@
        61. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< const_iterator, const_iterator > 
          -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
          + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          @@ -703,7 +703,7 @@
        62. std::pair< iterator, iterator > 
          -bounded_range(const key_type & lower_key, const key_type & upper_key, 
          +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                         bool left_closed, bool right_closed);

          Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

          If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

          @@ -718,7 +718,7 @@
        63. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, iterator > 
          -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
          +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                           KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

          Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

          upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

          @@ -734,7 +734,7 @@
        64. std::pair< const_iterator, const_iterator > 
          -bounded_range(const key_type & lower_key, const key_type & upper_key, 
          +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                         bool left_closed, bool right_closed) const;

          Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

          If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

          @@ -749,7 +749,7 @@
        65. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< const_iterator, const_iterator > 
          -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
          +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                           KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

          Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

          upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

          @@ -764,28 +764,28 @@

          Note: Experimental function, the interface might change in future releases.

        66. -
          iterator iterator_to(reference value);
          +
          iterator iterator_to(reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          Throws: Nothing.

        67. -
          const_iterator iterator_to(const_reference value) const;
          +
          const_iterator iterator_to(const_reference value) const;

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid const_iterator i belonging to the set that points to the value

          Complexity: Constant.

          Throws: Nothing.

        68. -
          pointer unlink_leftmost_without_rebalance();
          +
          pointer unlink_leftmost_without_rebalance();

          Effects: Unlinks the leftmost node from the container.

          Complexity: Average complexity is constant time.

          Throws: Nothing.

          Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

        69. -
          void replace_node(iterator replace_this, reference with_this);
          +
          void replace_node(iterator replace_this, reference with_this);

          Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

          Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

          Complexity: Constant.

          @@ -793,7 +793,7 @@

          Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

        70. -
          void remove_node(reference value);
          +
          void remove_node(reference value);

          Effects: removes "value" from the container.

          Throws: Nothing.

          Complexity: Logarithmic time.

          @@ -801,7 +801,7 @@

          If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

        71. -
          template<class... Options2> void merge(avl_set< T, Options2...> & source);
          +
          template<class... Options2> void merge(avl_set< T, Options2...> & source);

          Requires: "source" container's Options can only can differ in the comparison function from *this.

          Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

          Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

          @@ -809,7 +809,7 @@

          Complexity: N log(a.size() + N) (N has the value source.size())

        72. -
          template<class... Options2> void merge(avl_multiset< T, Options2...> & source);
          +
          template<class... Options2> void merge(avl_multiset< T, Options2...> & source);

          Requires: "source" container's Options can only can differ in the comparison function from *this.

          Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

          Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

          @@ -820,10 +820,10 @@

        -avl_set public static functions

        +avl_set public static functions
        1. -
          static avl_set & container_from_end_iterator(iterator end_iterator);
          +
          static avl_set & container_from_end_iterator(iterator end_iterator);

          Precondition: end_iterator must be a valid end iterator of the container.

          Effects: Returns a const reference to the container associated to the end iterator

          Throws: Nothing.

          @@ -831,28 +831,28 @@
        2. static const avl_set & 
          -container_from_end_iterator(const_iterator end_iterator);
          +container_from_end_iterator(const_iterator end_iterator);

          Precondition: end_iterator must be a valid end iterator of the container.

          Effects: Returns a const reference to the container associated to the end iterator

          Throws: Nothing.

          Complexity: Constant.

        3. -
          static avl_set & container_from_iterator(iterator it);
          +
          static avl_set & container_from_iterator(iterator it);

          Precondition: it must be a valid iterator of the container.

          Effects: Returns a const reference to the container associated to the iterator

          Throws: Nothing.

          Complexity: Logarithmic.

        4. -
          static const avl_set & container_from_iterator(const_iterator it);
          +
          static const avl_set & container_from_iterator(const_iterator it);

          Precondition: it must be a valid iterator of the container.

          Effects: Returns a const reference to the container associated to the iterator

          Throws: Nothing.

          Complexity: Logarithmic.

        5. -
          static iterator s_iterator_to(reference value);
          +
          static iterator s_iterator_to(reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          @@ -860,7 +860,7 @@

          Note: This static function is available only if the value traits is stateless.

        6. -
          static const_iterator s_iterator_to(const_reference value);
          +
          static const_iterator s_iterator_to(const_reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          @@ -868,7 +868,7 @@

          Note: This static function is available only if the value traits is stateless.

        7. -
          static void init_node(reference value);
          +
          static void init_node(reference value);

          Requires: value shall not be in a container.

          Effects: init_node puts the hook of a value in a well-known default state.

          Throws: Nothing.

          diff --git a/doc/html/boost/intrusive/avl_set_base_hook.html b/doc/html/boost/intrusive/avl_set_base_hook.html index 596aef7560..3d2b76ad93 100644 --- a/doc/html/boost/intrusive/avl_set_base_hook.html +++ b/doc/html/boost/intrusive/avl_set_base_hook.html @@ -38,15 +38,15 @@ { public: // construct/copy/destruct - avl_set_base_hook(); - avl_set_base_hook(const avl_set_base_hook &); - avl_set_base_hook & operator=(const avl_set_base_hook &); - ~avl_set_base_hook(); + avl_set_base_hook(); + avl_set_base_hook(const avl_set_base_hook &); + avl_set_base_hook & operator=(const avl_set_base_hook &); + ~avl_set_base_hook(); - // public member functions - void swap_nodes(avl_set_base_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(avl_set_base_hook &); + bool is_linked() const; + void unlink(); };

        Description

        @@ -63,24 +63,24 @@ construct/copy/destruct
        1. -
          avl_set_base_hook();
          +
          avl_set_base_hook();

          Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

          Throws: Nothing.

        2. -
          avl_set_base_hook(const avl_set_base_hook &);
          +
          avl_set_base_hook(const avl_set_base_hook &);

          Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

          Throws: Nothing.

          Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

        3. -
          avl_set_base_hook & operator=(const avl_set_base_hook &);
          +
          avl_set_base_hook & operator=(const avl_set_base_hook &);

          Effects: Empty function. The argument is ignored.

          Throws: Nothing.

          Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

        4. -
          ~avl_set_base_hook();
          +
          ~avl_set_base_hook();

          Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in a set an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

          Throws: Nothing.

        5. @@ -88,22 +88,22 @@

        -avl_set_base_hook public member functions

        +avl_set_base_hook public member functions
        1. -
          void swap_nodes(avl_set_base_hook & other);
          +
          void swap_nodes(avl_set_base_hook & other);

          Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

          Complexity: Constant

          Throws: Nothing.

        2. -
          bool is_linked() const;
          +
          bool is_linked() const;

          Precondition: link_mode must be safe_link or auto_unlink.

          Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether set::iterator_to will return a valid iterator.

          Complexity: Constant

        3. -
          void unlink();
          +
          void unlink();

          Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

          Throws: Nothing.

        4. diff --git a/doc/html/boost/intrusive/avl_set_member_hook.html b/doc/html/boost/intrusive/avl_set_member_hook.html index 9ab7ef8f1e..d1584b4cf9 100644 --- a/doc/html/boost/intrusive/avl_set_member_hook.html +++ b/doc/html/boost/intrusive/avl_set_member_hook.html @@ -38,15 +38,15 @@ { public: // construct/copy/destruct - avl_set_member_hook(); - avl_set_member_hook(const avl_set_member_hook &); - avl_set_member_hook & operator=(const avl_set_member_hook &); - ~avl_set_member_hook(); + avl_set_member_hook(); + avl_set_member_hook(const avl_set_member_hook &); + avl_set_member_hook & operator=(const avl_set_member_hook &); + ~avl_set_member_hook(); - // public member functions - void swap_nodes(avl_set_member_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(avl_set_member_hook &); + bool is_linked() const; + void unlink(); };

        Description

        @@ -62,24 +62,24 @@ construct/copy/destruct
        1. -
          avl_set_member_hook();
          +
          avl_set_member_hook();

          Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

          Throws: Nothing.

        2. -
          avl_set_member_hook(const avl_set_member_hook &);
          +
          avl_set_member_hook(const avl_set_member_hook &);

          Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

          Throws: Nothing.

          Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

        3. -
          avl_set_member_hook & operator=(const avl_set_member_hook &);
          +
          avl_set_member_hook & operator=(const avl_set_member_hook &);

          Effects: Empty function. The argument is ignored.

          Throws: Nothing.

          Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

        4. -
          ~avl_set_member_hook();
          +
          ~avl_set_member_hook();

          Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in a set an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

          Throws: Nothing.

        5. @@ -87,22 +87,22 @@

        -avl_set_member_hook public member functions

        +avl_set_member_hook public member functions
        1. -
          void swap_nodes(avl_set_member_hook & other);
          +
          void swap_nodes(avl_set_member_hook & other);

          Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

          Complexity: Constant

          Throws: Nothing.

        2. -
          bool is_linked() const;
          +
          bool is_linked() const;

          Precondition: link_mode must be safe_link or auto_unlink.

          Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether set::iterator_to will return a valid iterator.

          Complexity: Constant

        3. -
          void unlink();
          +
          void unlink();

          Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

          Throws: Nothing.

        4. diff --git a/doc/html/boost/intrusive/avltree.html b/doc/html/boost/intrusive/avltree.html index c5a16bb0bc..065c590b1e 100644 --- a/doc/html/boost/intrusive/avltree.html +++ b/doc/html/boost/intrusive/avltree.html @@ -60,137 +60,137 @@ typedef implementation_defined::insert_commit_data insert_commit_data; // construct/copy/destruct - avltree(); - explicit avltree(const key_compare &, const value_traits & = value_traits()); + avltree(); + explicit avltree(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - avltree(bool, Iterator, Iterator, const key_compare & = key_compare(), + avltree(bool, Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - avltree(avltree &&); - avltree & operator=(avltree &&); - ~avltree(); + avltree(avltree &&); + avltree & operator=(avltree &&); + ~avltree(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(avltree &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(avltree &); template<typename Cloner, typename Disposer> - void clone_from(const avltree &, Cloner, Disposer); + void clone_from(const avltree &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(avltree &&, Cloner, Disposer); - iterator insert_equal(reference); - iterator insert_equal(const_iterator, reference); - template<typename Iterator> void insert_equal(Iterator, Iterator); - std::pair< iterator, bool > insert_unique(reference); - iterator insert_unique(const_iterator, reference); + void clone_from(avltree &&, Cloner, Disposer); + iterator insert_equal(reference); + iterator insert_equal(const_iterator, reference); + template<typename Iterator> void insert_equal(Iterator, Iterator); + std::pair< iterator, bool > insert_unique(reference); + iterator insert_unique(const_iterator, reference); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const key_type &, insert_commit_data &); + insert_unique_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const_iterator, const key_type &, insert_commit_data &); - iterator insert_unique_commit(reference, const insert_commit_data &); - template<typename Iterator> void insert_unique(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + insert_unique_check(const_iterator, const key_type &, insert_commit_data &); + iterator insert_unique_commit(reference, const insert_commit_data &); + template<typename Iterator> void insert_unique(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); template<typename T, class... Options2> - void merge_unique(avltree< T, Options2...> &); + void merge_unique(avltree< T, Options2...> &); template<typename T, class... Options2> - void merge_equal(avltree< T, Options2...> &); + void merge_equal(avltree< T, Options2...> &); - // public static functions - static avltree & container_from_end_iterator(iterator); - static const avltree & container_from_end_iterator(const_iterator); - static avltree & container_from_iterator(iterator); - static const avltree & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static avltree & container_from_end_iterator(iterator); + static const avltree & container_from_end_iterator(const_iterator); + static avltree & container_from_iterator(iterator); + static const avltree & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -207,13 +207,13 @@ construct/copy/destruct
          1. -
            avltree();
            +
            avltree();

            Effects: Constructs an empty container.

            Complexity: Constant.

            Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

          2. -
            explicit avltree(const key_compare & cmp, 
            +
            explicit avltree(const key_compare & cmp, 
                              const value_traits & v_traits = value_traits());

            Effects: Constructs an empty container with given comparison and traits.

            Complexity: Constant.

            @@ -221,7 +221,7 @@
          3. template<typename Iterator> 
            -  avltree(bool unique, Iterator b, Iterator e, 
            +  avltree(bool unique, Iterator b, Iterator e, 
                       const key_compare & cmp = key_compare(), 
                       const value_traits & v_traits = value_traits());

            Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

            @@ -230,17 +230,17 @@

            Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

          4. -
            avltree(avltree && x);
            +
            avltree(avltree && x);

            Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

            Complexity: Constant.

            Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

          5. -
            avltree & operator=(avltree && x);
            +
            avltree & operator=(avltree && x);

            Effects: Equivalent to swap

          6. -
            ~avltree();
            +
            ~avltree();

            Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

            Complexity: Linear to elements contained in *this.

            Throws: Nothing.

            @@ -249,131 +249,131 @@

          -avltree public member functions

          +avltree public member functions
          1. -
            iterator begin();
            +
            iterator begin();

            Effects: Returns an iterator pointing to the beginning of the container.

            Complexity: Constant.

            Throws: Nothing.

          2. -
            const_iterator begin() const;
            +
            const_iterator begin() const;

            Effects: Returns a const_iterator pointing to the beginning of the container.

            Complexity: Constant.

            Throws: Nothing.

          3. -
            const_iterator cbegin() const;
            +
            const_iterator cbegin() const;

            Effects: Returns a const_iterator pointing to the beginning of the container.

            Complexity: Constant.

            Throws: Nothing.

          4. -
            iterator end();
            +
            iterator end();

            Effects: Returns an iterator pointing to the end of the container.

            Complexity: Constant.

            Throws: Nothing.

          5. -
            const_iterator end() const;
            +
            const_iterator end() const;

            Effects: Returns a const_iterator pointing to the end of the container.

            Complexity: Constant.

            Throws: Nothing.

          6. -
            const_iterator cend() const;
            +
            const_iterator cend() const;

            Effects: Returns a const_iterator pointing to the end of the container.

            Complexity: Constant.

            Throws: Nothing.

          7. -
            reverse_iterator rbegin();
            +
            reverse_iterator rbegin();

            Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          8. -
            const_reverse_iterator rbegin() const;
            +
            const_reverse_iterator rbegin() const;

            Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          9. -
            const_reverse_iterator crbegin() const;
            +
            const_reverse_iterator crbegin() const;

            Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          10. -
            reverse_iterator rend();
            +
            reverse_iterator rend();

            Effects: Returns a reverse_iterator pointing to the end of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          11. -
            const_reverse_iterator rend() const;
            +
            const_reverse_iterator rend() const;

            Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          12. -
            const_reverse_iterator crend() const;
            +
            const_reverse_iterator crend() const;

            Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          13. -
            iterator root();
            +
            iterator root();

            Effects: Returns a iterator pointing to the root node of the container or end() if not present.

            Complexity: Constant.

            Throws: Nothing.

          14. -
            const_iterator root() const;
            +
            const_iterator root() const;

            Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

            Complexity: Constant.

            Throws: Nothing.

          15. -
            const_iterator croot() const;
            +
            const_iterator croot() const;

            Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

            Complexity: Constant.

            Throws: Nothing.

          16. -
            key_compare key_comp() const;
            +
            key_compare key_comp() const;

            Effects: Returns the key_compare object used by the container.

            Complexity: Constant.

            Throws: If key_compare copy-constructor throws.

          17. -
            value_compare value_comp() const;
            +
            value_compare value_comp() const;

            Effects: Returns the value_compare object used by the container.

            Complexity: Constant.

            Throws: If value_compare copy-constructor throws.

          18. -
            bool empty() const;
            +
            bool empty() const;

            Effects: Returns true if the container is empty.

            Complexity: Constant.

            Throws: Nothing.

          19. -
            size_type size() const;
            +
            size_type size() const;

            Effects: Returns the number of elements stored in the container.

            Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

            Throws: Nothing.

          20. -
            void swap(avltree & other);
            +
            void swap(avltree & other);

            Effects: Swaps the contents of two containers.

            Complexity: Constant.

            Throws: If the comparison functor's swap call throws.

          21. template<typename Cloner, typename Disposer> 
            -  void clone_from(const avltree & src, Cloner cloner, Disposer disposer);
            + void clone_from(const avltree & src, Cloner cloner, Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

            If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

            @@ -382,7 +382,7 @@
          22. template<typename Cloner, typename Disposer> 
            -  void clone_from(avltree && src, Cloner cloner, Disposer disposer);
            + void clone_from(avltree && src, Cloner cloner, Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

            If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

            @@ -391,7 +391,7 @@

            Note: This version can modify the source container, useful to implement move semantics.

          23. -
            iterator insert_equal(reference value);
            +
            iterator insert_equal(reference value);

            Requires: value must be an lvalue

            Effects: Inserts value into the container before the upper bound.

            Complexity: Average complexity for insert element is at most logarithmic.

            @@ -399,7 +399,7 @@

            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

          24. -
            iterator insert_equal(const_iterator hint, reference value);
            +
            iterator insert_equal(const_iterator hint, reference value);

            Requires: value must be an lvalue, and "hint" must be a valid iterator.

            Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

            Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

            @@ -407,7 +407,7 @@

            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

          25. -
            template<typename Iterator> void insert_equal(Iterator b, Iterator e);
            +
            template<typename Iterator> void insert_equal(Iterator b, Iterator e);

            Requires: Dereferencing iterator must yield an lvalue of type value_type.

            Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

            Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

            @@ -415,7 +415,7 @@

            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

          26. -
            std::pair< iterator, bool > insert_unique(reference value);
            +
            std::pair< iterator, bool > insert_unique(reference value);

            Requires: value must be an lvalue

            Effects: Inserts value into the container if the value is not already present.

            Complexity: Average complexity for insert element is at most logarithmic.

            @@ -423,7 +423,7 @@

            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

          27. -
            iterator insert_unique(const_iterator hint, reference value);
            +
            iterator insert_unique(const_iterator hint, reference value);

            Requires: value must be an lvalue, and "hint" must be a valid iterator

            Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

            Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

            @@ -433,7 +433,7 @@
          28. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< iterator, bool > 
            -  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
            +  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                                   insert_commit_data & commit_data);

            Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

            Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

            @@ -447,7 +447,7 @@
          29. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< iterator, bool > 
            -  insert_unique_check(const_iterator hint, const KeyType & key, 
            +  insert_unique_check(const_iterator hint, const KeyType & key, 
                                   KeyTypeKeyCompare comp, 
                                   insert_commit_data & commit_data);

            Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

            @@ -461,7 +461,7 @@
          30. std::pair< iterator, bool > 
            -insert_unique_check(const key_type & key, insert_commit_data & commit_data);
            +insert_unique_check(const key_type & key, insert_commit_data & commit_data);

            Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

            Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

            Complexity: Average complexity is at most logarithmic.

            @@ -469,7 +469,7 @@
          31. std::pair< iterator, bool > 
            -insert_unique_check(const_iterator hint, const key_type & key, 
            +insert_unique_check(const_iterator hint, const key_type & key, 
                                 insert_commit_data & commit_data);

            Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

            Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

            @@ -477,7 +477,7 @@

            Throws: If the comp ordering function throws. Strong guarantee.

          32. -
            iterator insert_unique_commit(reference value, 
            +
            iterator insert_unique_commit(reference value, 
                                           const insert_commit_data & commit_data);

            Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

            Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

            @@ -487,7 +487,7 @@

            Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

          33. -
            template<typename Iterator> void insert_unique(Iterator b, Iterator e);
            +
            template<typename Iterator> void insert_unique(Iterator b, Iterator e);

            Requires: Dereferencing iterator must yield an lvalue of type value_type.

            Effects: Tries to insert each element of a range into the container.

            Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

            @@ -495,7 +495,7 @@

            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

          34. -
            iterator insert_before(const_iterator pos, reference value);
            +
            iterator insert_before(const_iterator pos, reference value);

            Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

            Effects: Inserts x into the container before "pos".

            Complexity: Constant time.

            @@ -503,7 +503,7 @@

            Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

          35. -
            void push_back(reference value);
            +
            void push_back(reference value);

            Requires: value must be an lvalue, and it must be no less than the greatest inserted key

            Effects: Inserts x into the container in the last position.

            Complexity: Constant time.

            @@ -511,7 +511,7 @@

            Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

          36. -
            void push_front(reference value);
            +
            void push_front(reference value);

            Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

            Effects: Inserts x into the container in the first position.

            Complexity: Constant time.

            @@ -519,21 +519,21 @@

            Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

          37. -
            iterator erase(const_iterator i);
            +
            iterator erase(const_iterator i);

            Effects: Erases the element pointed to by i.

            Complexity: Average complexity for erase element is constant time.

            Throws: Nothing.

            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

          38. -
            iterator erase(const_iterator b, const_iterator e);
            +
            iterator erase(const_iterator b, const_iterator e);

            Effects: Erases the range pointed to by b end e.

            Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

            Throws: Nothing.

            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

          39. -
            size_type erase(const key_type & key);
            +
            size_type erase(const key_type & key);

            Effects: Erases all the elements with the given value.

            Returns: The number of erased elements.

            Complexity: O(log(size() + N).

            @@ -542,7 +542,7 @@
          40. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
            + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Erases all the elements with the given key. according to the comparison functor "comp".

            Returns: The number of erased elements.

            @@ -552,7 +552,7 @@
          41. template<typename Disposer> 
            -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
            + iterator erase_and_dispose(const_iterator i, Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw.

            Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

            Complexity: Average complexity for erase element is constant time.

            @@ -561,7 +561,7 @@
          42. template<typename Disposer> 
            -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
            +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                          Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw.

            Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

            @@ -571,7 +571,7 @@
          43. template<typename Disposer> 
            -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
            + size_type erase_and_dispose(const key_type & key, Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw.

            Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

            Returns: The number of erased elements.

            @@ -581,7 +581,7 @@
          44. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
            -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
            +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                           Disposer disposer);

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

            Requires: Disposer::operator()(pointer) shouldn't throw.

            @@ -592,47 +592,47 @@

            Note: Invalidates the iterators to the erased elements.

          45. -
            void clear();
            +
            void clear();

            Effects: Erases all of the elements.

            Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

            Throws: Nothing.

            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

          46. -
            template<typename Disposer> void clear_and_dispose(Disposer disposer);
            +
            template<typename Disposer> void clear_and_dispose(Disposer disposer);

            Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

            Throws: Nothing.

            Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

          47. -
            size_type count(const key_type & key) const;
            +
            size_type count(const key_type & key) const;

            Effects: Returns the number of contained elements with the given value

            Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

            Throws: If key_compare throws.

          48. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
            + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

            Effects: Returns the number of contained elements with the given key

            Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

            Throws: If comp throws.

          49. -
            iterator lower_bound(const key_type & key);
            +
            iterator lower_bound(const key_type & key);

            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          50. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
            + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          51. -
            const_iterator lower_bound(const key_type & key) const;
            +
            const_iterator lower_bound(const key_type & key) const;

            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

            @@ -640,27 +640,27 @@
          52. template<typename KeyType, typename KeyTypeKeyCompare> 
               const_iterator 
            -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
            + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          53. -
            iterator upper_bound(const key_type & key);
            +
            iterator upper_bound(const key_type & key);

            Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          54. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
            + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

            Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If comp throws.

          55. -
            const_iterator upper_bound(const key_type & key) const;
            +
            const_iterator upper_bound(const key_type & key) const;

            Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

            @@ -668,42 +668,42 @@
          56. template<typename KeyType, typename KeyTypeKeyCompare> 
               const_iterator 
            -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
            + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

            Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If comp throws.

          57. -
            iterator find(const key_type & key);
            +
            iterator find(const key_type & key);

            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          58. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
            + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If comp throws.

          59. -
            const_iterator find(const key_type & key) const;
            +
            const_iterator find(const key_type & key) const;

            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          60. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
            + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If comp throws.

          61. -
            std::pair< iterator, iterator > equal_range(const key_type & key);
            +
            std::pair< iterator, iterator > equal_range(const key_type & key);

            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

            @@ -711,7 +711,7 @@
          62. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< iterator, iterator > 
            -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
            + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

            Complexity: Logarithmic.

            @@ -719,7 +719,7 @@
          63. std::pair< const_iterator, const_iterator > 
            -equal_range(const key_type & key) const;
            +equal_range(const key_type & key) const;

            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

            @@ -727,7 +727,7 @@
          64. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< const_iterator, const_iterator > 
            -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
            + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

            Complexity: Logarithmic.

            @@ -735,7 +735,7 @@
          65. std::pair< iterator, iterator > 
            -bounded_range(const key_type & lower, const key_type & upper_key, 
            +bounded_range(const key_type & lower, const key_type & upper_key, 
                           bool left_closed, bool right_closed);

            Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

            If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

            @@ -750,7 +750,7 @@
          66. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< iterator, iterator > 
            -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
            +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                             KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

            Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

            upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

            @@ -766,7 +766,7 @@
          67. std::pair< const_iterator, const_iterator > 
            -bounded_range(const key_type & lower_key, const key_type & upper_key, 
            +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                           bool left_closed, bool right_closed) const;

            Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

            If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

            @@ -781,7 +781,7 @@
          68. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< const_iterator, const_iterator > 
            -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
            +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                             KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

            Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

            upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

            @@ -796,28 +796,28 @@

            Note: Experimental function, the interface might change in future releases.

          69. -
            iterator iterator_to(reference value);
            +
            iterator iterator_to(reference value);

            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

            Effects: Returns: a valid iterator i belonging to the set that points to the value

            Complexity: Constant.

            Throws: Nothing.

          70. -
            const_iterator iterator_to(const_reference value) const;
            +
            const_iterator iterator_to(const_reference value) const;

            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

            Effects: Returns: a valid const_iterator i belonging to the set that points to the value

            Complexity: Constant.

            Throws: Nothing.

          71. -
            pointer unlink_leftmost_without_rebalance();
            +
            pointer unlink_leftmost_without_rebalance();

            Effects: Unlinks the leftmost node from the container.

            Complexity: Average complexity is constant time.

            Throws: Nothing.

            Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

          72. -
            void replace_node(iterator replace_this, reference with_this);
            +
            void replace_node(iterator replace_this, reference with_this);

            Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

            Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

            Complexity: Constant.

            @@ -825,7 +825,7 @@

            Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

          73. -
            void remove_node(reference value);
            +
            void remove_node(reference value);

            Effects: removes "value" from the container.

            Throws: Nothing.

            Complexity: Logarithmic time.

            @@ -834,7 +834,7 @@
          74. template<typename T, class... Options2> 
            -  void merge_unique(avltree< T, Options2...> &);
            + void merge_unique(avltree< T, Options2...> &);

            Requires: "source" container's Options can only can differ in the comparison function from *this.

            Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

            Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

            @@ -843,7 +843,7 @@
          75. template<typename T, class... Options2> 
            -  void merge_equal(avltree< T, Options2...> &);
            + void merge_equal(avltree< T, Options2...> &);

            Requires: "source" container's Options can only can differ in the comparison function from *this.

            Effects: Extracts each element in source and insert it into a using the comparison object of *this.

            Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

            @@ -854,10 +854,10 @@

          -avltree public static functions

          +avltree public static functions
          1. -
            static avltree & container_from_end_iterator(iterator end_iterator);
            +
            static avltree & container_from_end_iterator(iterator end_iterator);

            Precondition: end_iterator must be a valid end iterator of the container.

            Effects: Returns a const reference to the container associated to the end iterator

            Throws: Nothing.

            @@ -865,28 +865,28 @@
          2. static const avltree & 
            -container_from_end_iterator(const_iterator end_iterator);
            +container_from_end_iterator(const_iterator end_iterator);

            Precondition: end_iterator must be a valid end iterator of the container.

            Effects: Returns a const reference to the container associated to the end iterator

            Throws: Nothing.

            Complexity: Constant.

          3. -
            static avltree & container_from_iterator(iterator it);
            +
            static avltree & container_from_iterator(iterator it);

            Precondition: it must be a valid iterator of the container.

            Effects: Returns a const reference to the container associated to the iterator

            Throws: Nothing.

            Complexity: Logarithmic.

          4. -
            static const avltree & container_from_iterator(const_iterator it);
            +
            static const avltree & container_from_iterator(const_iterator it);

            Precondition: it must be a valid iterator of the container.

            Effects: Returns a const reference to the container associated to the iterator

            Throws: Nothing.

            Complexity: Logarithmic.

          5. -
            static iterator s_iterator_to(reference value);
            +
            static iterator s_iterator_to(reference value);

            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

            Effects: Returns: a valid iterator i belonging to the set that points to the value

            Complexity: Constant.

            @@ -894,7 +894,7 @@

            Note: This static function is available only if the value traits is stateless.

          6. -
            static const_iterator s_iterator_to(const_reference value);
            +
            static const_iterator s_iterator_to(const_reference value);

            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

            Effects: Returns: a valid iterator i belonging to the set that points to the value

            Complexity: Constant.

            @@ -902,7 +902,7 @@

            Note: This static function is available only if the value traits is stateless.

          7. -
            static void init_node(reference value);
            +
            static void init_node(reference value);

            Requires: value shall not be in a container.

            Effects: init_node puts the hook of a value in a well-known default state.

            Throws: Nothing.

            diff --git a/doc/html/boost/intrusive/avltree_algorithms.html b/doc/html/boost/intrusive/avltree_algorithms.html index 049bf02b3a..a083dd5b21 100644 --- a/doc/html/boost/intrusive/avltree_algorithms.html +++ b/doc/html/boost/intrusive/avltree_algorithms.html @@ -43,84 +43,84 @@ typedef NodeTraits::balance balance; typedef bstree_algo::insert_commit_data insert_commit_data; - // public static functions - static node_ptr get_header(const const_node_ptr &); - static node_ptr begin_node(const const_node_ptr &); - static node_ptr end_node(const const_node_ptr &); - static void swap_tree(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, + // public static functions + static node_ptr get_header(const const_node_ptr &); + static node_ptr begin_node(const const_node_ptr &); + static node_ptr end_node(const const_node_ptr &); + static void swap_tree(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &, + static void replace_node(const node_ptr &, const node_ptr &); + static void replace_node(const node_ptr &, const node_ptr &, const node_ptr &); - static void unlink(const node_ptr &); - static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); - static bool unique(const const_node_ptr &); - static std::size_t size(const const_node_ptr &); - static node_ptr next_node(const node_ptr &); - static node_ptr prev_node(const node_ptr &); - static void init(const node_ptr &); - static void init_header(const node_ptr &); - static node_ptr erase(const node_ptr &, const node_ptr &); + static void unlink(const node_ptr &); + static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); + static bool unique(const const_node_ptr &); + static std::size_t size(const const_node_ptr &); + static node_ptr next_node(const node_ptr &); + static node_ptr prev_node(const node_ptr &); + static void init(const node_ptr &); + static void init_header(const node_ptr &); + static node_ptr erase(const node_ptr &, const node_ptr &); template<typename NodePtrCompare> - static bool transfer_unique(const node_ptr &, NodePtrCompare, + static bool transfer_unique(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &); template<typename NodePtrCompare> - static void transfer_equal(const node_ptr &, NodePtrCompare, + static void transfer_equal(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &); template<typename Cloner, typename Disposer> - static void clone(const const_node_ptr &, const node_ptr &, Cloner, + static void clone(const const_node_ptr &, const node_ptr &, Cloner, Disposer); template<typename Disposer> - static void clear_and_dispose(const node_ptr &, Disposer); + static void clear_and_dispose(const node_ptr &, Disposer); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, + bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, KeyNodePtrCompare, bool, bool); template<typename KeyType, typename KeyNodePtrCompare> static std::size_t - count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal_upper_bound(const node_ptr &, const node_ptr &, + insert_equal_upper_bound(const node_ptr &, const node_ptr &, NodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal_lower_bound(const node_ptr &, const node_ptr &, + insert_equal_lower_bound(const node_ptr &, const node_ptr &, NodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, + insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, NodePtrCompare); static node_ptr - insert_before(const node_ptr &, const node_ptr &, const node_ptr &); - static void push_back(const node_ptr &, const node_ptr &); - static void push_front(const node_ptr &, const node_ptr &); + insert_before(const node_ptr &, const node_ptr &, const node_ptr &); + static void push_back(const node_ptr &, const node_ptr &); + static void push_front(const node_ptr &, const node_ptr &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const KeyType &, + insert_unique_check(const const_node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const node_ptr &, + insert_unique_check(const const_node_ptr &, const node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); - static void insert_unique_commit(const node_ptr &, const node_ptr &, + static void insert_unique_commit(const node_ptr &, const node_ptr &, const insert_commit_data &); - static bool is_header(const const_node_ptr &); + static bool is_header(const const_node_ptr &); };

          Description

          @@ -155,38 +155,38 @@

          -avltree_algorithms public static functions

          +avltree_algorithms public static functions
          1. -
            static node_ptr get_header(const const_node_ptr & n);
            +
            static node_ptr get_header(const const_node_ptr & n);

            Requires: 'node' is a node of the tree or a header node.

            Effects: Returns the header of the tree.

            Complexity: Logarithmic.

            Throws: Nothing.

          2. -
            static node_ptr begin_node(const const_node_ptr & header);
            +
            static node_ptr begin_node(const const_node_ptr & header);

            Requires: 'header' is the header node of a tree.

            Effects: Returns the first node of the tree, the header if the tree is empty.

            Complexity: Constant time.

            Throws: Nothing.

          3. -
            static node_ptr end_node(const const_node_ptr & header);
            +
            static node_ptr end_node(const const_node_ptr & header);

            Requires: 'header' is the header node of a tree.

            Effects: Returns the header of the tree.

            Complexity: Constant time.

            Throws: Nothing.

          4. -
            static void swap_tree(const node_ptr & header1, const node_ptr & header2);
            +
            static void swap_tree(const node_ptr & header1, const node_ptr & header2);

            Requires: header1 and header2 must be the header nodes of two trees.

            Effects: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.

            Complexity: Constant.

            Throws: Nothing.

          5. -
            static void swap_nodes(const node_ptr & node1, const node_ptr & node2);
            +
            static void swap_nodes(const node_ptr & node1, const node_ptr & node2);

            Requires: node1 and node2 can't be header nodes of two trees.

            Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

            Complexity: Logarithmic.

            @@ -195,7 +195,7 @@

            Experimental function

          6. -
            static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
            +
            static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                                    const node_ptr & node2, const node_ptr & header2);

            Requires: node1 and node2 can't be header nodes of two trees with header header1 and header2.

            Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

            @@ -205,7 +205,7 @@

            Experimental function

          7. -
            static void replace_node(const node_ptr & node_to_be_replaced, 
            +
            static void replace_node(const node_ptr & node_to_be_replaced, 
                                      const node_ptr & new_node);

            Requires: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.

            Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

            @@ -214,7 +214,7 @@

            Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function

          8. -
            static void replace_node(const node_ptr & node_to_be_replaced, 
            +
            static void replace_node(const node_ptr & node_to_be_replaced, 
                                      const node_ptr & header, const node_ptr & new_node);

            Requires: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.

            Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

            @@ -223,14 +223,14 @@

            Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function

          9. -
            static void unlink(const node_ptr & node);
            +
            static void unlink(const node_ptr & node);

            Requires: node is a tree node but not the header.

            Effects: Unlinks the node and rebalances the tree.

            Complexity: Average complexity is constant time.

            Throws: Nothing.

          10. -
            static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);
            +
            static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);

            Requires: header is the header of a tree.

            Effects: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.

            Complexity: Average complexity is constant time.

            @@ -238,35 +238,35 @@

            Notes: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree.

          11. -
            static bool unique(const const_node_ptr & node);
            +
            static bool unique(const const_node_ptr & node);

            Requires: 'node' is a node of the tree or a node initialized by init(...) or init_node.

            Effects: Returns true if the node is initialized by init() or init_node().

            Complexity: Constant time.

            Throws: Nothing.

          12. -
            static std::size_t size(const const_node_ptr & header);
            +
            static std::size_t size(const const_node_ptr & header);

            Requires: node is a node of the tree but it's not the header.

            Effects: Returns the number of nodes of the subtree.

            Complexity: Linear time.

            Throws: Nothing.

          13. -
            static node_ptr next_node(const node_ptr & node);
            +
            static node_ptr next_node(const node_ptr & node);

            Requires: 'node' is a node from the tree except the header.

            Effects: Returns the next node of the tree.

            Complexity: Average constant time.

            Throws: Nothing.

          14. -
            static node_ptr prev_node(const node_ptr & node);
            +
            static node_ptr prev_node(const node_ptr & node);

            Requires: 'node' is a node from the tree except the leftmost node.

            Effects: Returns the previous node of the tree.

            Complexity: Average constant time.

            Throws: Nothing.

          15. -
            static void init(const node_ptr & node);
            +
            static void init(const node_ptr & node);

            Requires: 'node' must not be part of any tree.

            Effects: After the function unique(node) == true.

            Complexity: Constant.

            @@ -274,7 +274,7 @@

            Nodes: If node is inserted in a tree, this function corrupts the tree.

          16. -
            static void init_header(const node_ptr & header);
            +
            static void init_header(const node_ptr & header);

            Requires: node must not be part of any tree.

            Effects: Initializes the header to represent an empty tree. unique(header) == true.

            Complexity: Constant.

            @@ -282,7 +282,7 @@

            Nodes: If node is inserted in a tree, this function corrupts the tree.

          17. -
            static node_ptr erase(const node_ptr & header, const node_ptr & z);
            +
            static node_ptr erase(const node_ptr & header, const node_ptr & z);

            Requires: header must be the header of a tree, z a node of that tree and z != header.

            Effects: Erases node "z" from the tree with header "header".

            Complexity: Amortized constant time.

            @@ -290,7 +290,7 @@
          18. template<typename NodePtrCompare> 
            -  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
            +  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                                           const node_ptr & header2, const node_ptr & z);

            Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

            Effects: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.

            @@ -300,7 +300,7 @@
          19. template<typename NodePtrCompare> 
            -  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
            +  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                                          const node_ptr & header2, const node_ptr & z);

            Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

            Effects: Transfers node "z" from tree1 to tree2.

            @@ -309,7 +309,7 @@
          20. template<typename Cloner, typename Disposer> 
            -  static void clone(const const_node_ptr & source_header, 
            +  static void clone(const const_node_ptr & source_header, 
                                 const node_ptr & target_header, Cloner cloner, 
                                 Disposer disposer);

            Requires: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.

            @@ -320,7 +320,7 @@
          21. template<typename Disposer> 
            -  static void clear_and_dispose(const node_ptr & header, Disposer disposer);
            + static void clear_and_dispose(const node_ptr & header, Disposer disposer);

            Requires: "disposer" must be an object function taking a node_ptr parameter and shouldn't throw.

            Effects: Empties the target tree calling void disposer::operator()(const node_ptr &) for every node of the tree except the header.

            Complexity: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.

            @@ -329,7 +329,7 @@
          22. template<typename KeyType, typename KeyNodePtrCompare> 
               static node_ptr 
            -  lower_bound(const const_node_ptr & header, const KeyType & key, 
            +  lower_bound(const const_node_ptr & header, const KeyType & key, 
                           KeyNodePtrCompare comp);

            Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

            Effects: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.

            @@ -339,7 +339,7 @@
          23. template<typename KeyType, typename KeyNodePtrCompare> 
               static node_ptr 
            -  upper_bound(const const_node_ptr & header, const KeyType & key, 
            +  upper_bound(const const_node_ptr & header, const KeyType & key, 
                           KeyNodePtrCompare comp);

            Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

            Effects: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.

            @@ -349,7 +349,7 @@
          24. template<typename KeyType, typename KeyNodePtrCompare> 
               static node_ptr 
            -  find(const const_node_ptr & header, const KeyType & key, 
            +  find(const const_node_ptr & header, const KeyType & key, 
                    KeyNodePtrCompare comp);

            Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

            Effects: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.

            @@ -359,7 +359,7 @@
          25. template<typename KeyType, typename KeyNodePtrCompare> 
               static std::pair< node_ptr, node_ptr > 
            -  equal_range(const const_node_ptr & header, const KeyType & key, 
            +  equal_range(const const_node_ptr & header, const KeyType & key, 
                           KeyNodePtrCompare comp);

            Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

            Effects: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.

            @@ -369,7 +369,7 @@
          26. template<typename KeyType, typename KeyNodePtrCompare> 
               static std::pair< node_ptr, node_ptr > 
            -  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
            +  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                             const KeyType & upper_key, KeyNodePtrCompare comp, 
                             bool left_closed, bool right_closed);

            Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.

            @@ -384,7 +384,7 @@
          27. template<typename KeyType, typename KeyNodePtrCompare> 
               static std::size_t 
            -  count(const const_node_ptr & header, const KeyType & key, 
            +  count(const const_node_ptr & header, const KeyType & key, 
                     KeyNodePtrCompare comp);

            Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

            Effects: Returns the number of elements with a key equivalent to "key" according to "comp".

            @@ -394,7 +394,7 @@
          28. template<typename NodePtrCompare> 
               static node_ptr 
            -  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
            +  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
                                        NodePtrCompare comp);

            Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

            Effects: Inserts new_node into the tree before the upper bound according to "comp".

            @@ -404,7 +404,7 @@
          29. template<typename NodePtrCompare> 
               static node_ptr 
            -  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
            +  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
                                        NodePtrCompare comp);

            Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

            Effects: Inserts new_node into the tree before the lower bound according to "comp".

            @@ -414,7 +414,7 @@
          30. template<typename NodePtrCompare> 
               static node_ptr 
            -  insert_equal(const node_ptr & header, const node_ptr & hint, 
            +  insert_equal(const node_ptr & header, const node_ptr & hint, 
                            const node_ptr & new_node, NodePtrCompare comp);

            Requires: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.

            Effects: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).

            @@ -423,7 +423,7 @@
          31. static node_ptr 
            -insert_before(const node_ptr & header, const node_ptr & pos, 
            +insert_before(const node_ptr & header, const node_ptr & pos, 
                           const node_ptr & new_node);

            Requires: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.

            Effects: Inserts new_node into the tree before "pos".

            @@ -432,7 +432,7 @@

            Note: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken.

          32. -
            static void push_back(const node_ptr & header, const node_ptr & new_node);
            +
            static void push_back(const node_ptr & header, const node_ptr & new_node);

            Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.

            Effects: Inserts new_node into the tree before "pos".

            Complexity: Constant-time.

            @@ -440,7 +440,7 @@

            Note: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before".

          33. -
            static void push_front(const node_ptr & header, const node_ptr & new_node);
            +
            static void push_front(const node_ptr & header, const node_ptr & new_node);

            Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.

            Effects: Inserts new_node into the tree before "pos".

            Complexity: Constant-time.

            @@ -450,7 +450,7 @@
          34. template<typename KeyType, typename KeyNodePtrCompare> 
               static std::pair< node_ptr, bool > 
            -  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
            +  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
                                   KeyNodePtrCompare comp, 
                                   insert_commit_data & commit_data);

            Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.

            @@ -465,7 +465,7 @@
          35. template<typename KeyType, typename KeyNodePtrCompare> 
               static std::pair< node_ptr, bool > 
            -  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
            +  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
                                   const KeyType & key, KeyNodePtrCompare comp, 
                                   insert_commit_data & commit_data);

            Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.

            @@ -478,7 +478,7 @@

            "commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set.

          36. -
            static void insert_unique_commit(const node_ptr & header, 
            +
            static void insert_unique_commit(const node_ptr & header, 
                                              const node_ptr & new_value, 
                                              const insert_commit_data & commit_data);

            Requires: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".

            @@ -488,7 +488,7 @@

            Notes: This function has only sense if a "insert_unique_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

          37. -
            static bool is_header(const const_node_ptr & p);
            +
            static bool is_header(const const_node_ptr & p);

            Requires: p is a node of a tree.

            Effects: Returns true if p is the header of the tree.

            Complexity: Constant.

            diff --git a/doc/html/boost/intrusive/bs_multiset.html b/doc/html/boost/intrusive/bs_multiset.html index 9bea4634d4..1f9b8c9219 100644 --- a/doc/html/boost/intrusive/bs_multiset.html +++ b/doc/html/boost/intrusive/bs_multiset.html @@ -59,120 +59,120 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - bs_multiset(); - explicit bs_multiset(const key_compare &, + bs_multiset(); + explicit bs_multiset(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - bs_multiset(Iterator, Iterator, const key_compare & = key_compare(), + bs_multiset(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - bs_multiset(bs_multiset &&); - bs_multiset & operator=(bs_multiset &&); - ~bs_multiset(); + bs_multiset(bs_multiset &&); + bs_multiset & operator=(bs_multiset &&); + ~bs_multiset(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(bs_multiset &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(bs_multiset &); template<typename Cloner, typename Disposer> - void clone_from(const bs_multiset &, Cloner, Disposer); + void clone_from(const bs_multiset &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(bs_multiset &&, Cloner, Disposer); - iterator insert(reference); - iterator insert(const_iterator, reference); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + void clone_from(bs_multiset &&, Cloner, Disposer); + iterator insert(reference); + iterator insert(const_iterator, reference); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - template<class... Options2> void merge(bs_multiset< T, Options2...> &); - template<class... Options2> void merge(bs_set< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + template<class... Options2> void merge(bs_multiset< T, Options2...> &); + template<class... Options2> void merge(bs_set< T, Options2...> &); - // public static functions - static bs_multiset & container_from_end_iterator(iterator); - static const bs_multiset & container_from_end_iterator(const_iterator); - static bs_multiset & container_from_iterator(iterator); - static const bs_multiset & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static bs_multiset & container_from_end_iterator(iterator); + static const bs_multiset & container_from_end_iterator(const_iterator); + static bs_multiset & container_from_iterator(iterator); + static const bs_multiset & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -189,13 +189,13 @@ construct/copy/destruct
            1. -
              bs_multiset();
              +
              bs_multiset();

              Effects: Constructs an empty container.

              Complexity: Constant.

              Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

            2. -
              explicit bs_multiset(const key_compare & cmp, 
              +
              explicit bs_multiset(const key_compare & cmp, 
                                    const value_traits & v_traits = value_traits());

              Effects: Constructs an empty container with given comparison and traits.

              Complexity: Constant.

              @@ -203,7 +203,7 @@
            3. template<typename Iterator> 
              -  bs_multiset(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
              +  bs_multiset(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                             const value_traits & v_traits = value_traits());

              Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

              Effects: Constructs an empty container and inserts elements from [b, e).

              @@ -211,17 +211,17 @@

              Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

            4. -
              bs_multiset(bs_multiset && x);
              +
              bs_multiset(bs_multiset && x);

              Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

              Complexity: Constant.

              Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

            5. -
              bs_multiset & operator=(bs_multiset && x);
              +
              bs_multiset & operator=(bs_multiset && x);

              Effects: Equivalent to swap

            6. -
              ~bs_multiset();
              +
              ~bs_multiset();

              Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

              Complexity: Linear to elements contained in *this.

              Throws: Nothing.

              @@ -230,131 +230,131 @@

            -bs_multiset public member functions

            +bs_multiset public member functions
            1. -
              iterator begin();
              +
              iterator begin();

              Effects: Returns an iterator pointing to the beginning of the container.

              Complexity: Constant.

              Throws: Nothing.

            2. -
              const_iterator begin() const;
              +
              const_iterator begin() const;

              Effects: Returns a const_iterator pointing to the beginning of the container.

              Complexity: Constant.

              Throws: Nothing.

            3. -
              const_iterator cbegin() const;
              +
              const_iterator cbegin() const;

              Effects: Returns a const_iterator pointing to the beginning of the container.

              Complexity: Constant.

              Throws: Nothing.

            4. -
              iterator end();
              +
              iterator end();

              Effects: Returns an iterator pointing to the end of the container.

              Complexity: Constant.

              Throws: Nothing.

            5. -
              const_iterator end() const;
              +
              const_iterator end() const;

              Effects: Returns a const_iterator pointing to the end of the container.

              Complexity: Constant.

              Throws: Nothing.

            6. -
              const_iterator cend() const;
              +
              const_iterator cend() const;

              Effects: Returns a const_iterator pointing to the end of the container.

              Complexity: Constant.

              Throws: Nothing.

            7. -
              reverse_iterator rbegin();
              +
              reverse_iterator rbegin();

              Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            8. -
              const_reverse_iterator rbegin() const;
              +
              const_reverse_iterator rbegin() const;

              Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            9. -
              const_reverse_iterator crbegin() const;
              +
              const_reverse_iterator crbegin() const;

              Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            10. -
              reverse_iterator rend();
              +
              reverse_iterator rend();

              Effects: Returns a reverse_iterator pointing to the end of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            11. -
              const_reverse_iterator rend() const;
              +
              const_reverse_iterator rend() const;

              Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            12. -
              const_reverse_iterator crend() const;
              +
              const_reverse_iterator crend() const;

              Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            13. -
              iterator root();
              +
              iterator root();

              Effects: Returns a iterator pointing to the root node of the container or end() if not present.

              Complexity: Constant.

              Throws: Nothing.

            14. -
              const_iterator root() const;
              +
              const_iterator root() const;

              Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

              Complexity: Constant.

              Throws: Nothing.

            15. -
              const_iterator croot() const;
              +
              const_iterator croot() const;

              Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

              Complexity: Constant.

              Throws: Nothing.

            16. -
              key_compare key_comp() const;
              +
              key_compare key_comp() const;

              Effects: Returns the key_compare object used by the container.

              Complexity: Constant.

              Throws: If key_compare copy-constructor throws.

            17. -
              value_compare value_comp() const;
              +
              value_compare value_comp() const;

              Effects: Returns the value_compare object used by the container.

              Complexity: Constant.

              Throws: If value_compare copy-constructor throws.

            18. -
              bool empty() const;
              +
              bool empty() const;

              Effects: Returns true if the container is empty.

              Complexity: Constant.

              Throws: Nothing.

            19. -
              size_type size() const;
              +
              size_type size() const;

              Effects: Returns the number of elements stored in the container.

              Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

              Throws: Nothing.

            20. -
              void swap(bs_multiset & other);
              +
              void swap(bs_multiset & other);

              Effects: Swaps the contents of two containers.

              Complexity: Constant.

              Throws: If the comparison functor's swap call throws.

            21. template<typename Cloner, typename Disposer> 
              -  void clone_from(const bs_multiset & src, Cloner cloner, Disposer disposer);
              + void clone_from(const bs_multiset & src, Cloner cloner, Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

              Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

              If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

              @@ -363,7 +363,7 @@
            22. template<typename Cloner, typename Disposer> 
              -  void clone_from(bs_multiset && src, Cloner cloner, Disposer disposer);
              + void clone_from(bs_multiset && src, Cloner cloner, Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

              Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

              If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

              @@ -372,7 +372,7 @@

              Note: This version can modify the source container, useful to implement move semantics.

            23. -
              iterator insert(reference value);
              +
              iterator insert(reference value);

              Requires: value must be an lvalue

              Effects: Inserts value into the container before the upper bound.

              Complexity: Average complexity for insert element is at most logarithmic.

              @@ -380,7 +380,7 @@

              Note: Does not affect the validity of iterators and references. No copy-constructors are called.

            24. -
              iterator insert(const_iterator hint, reference value);
              +
              iterator insert(const_iterator hint, reference value);

              Requires: value must be an lvalue, and "hint" must be a valid iterator.

              Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

              Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

              @@ -388,7 +388,7 @@

              Note: Does not affect the validity of iterators and references. No copy-constructors are called.

            25. -
              template<typename Iterator> void insert(Iterator b, Iterator e);
              +
              template<typename Iterator> void insert(Iterator b, Iterator e);

              Requires: Dereferencing iterator must yield an lvalue of type value_type.

              Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

              Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

              @@ -396,7 +396,7 @@

              Note: Does not affect the validity of iterators and references. No copy-constructors are called.

            26. -
              iterator insert_before(const_iterator pos, reference value);
              +
              iterator insert_before(const_iterator pos, reference value);

              Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

              Effects: Inserts x into the container before "pos".

              Complexity: Constant time.

              @@ -404,7 +404,7 @@

              Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

            27. -
              void push_back(reference value);
              +
              void push_back(reference value);

              Requires: value must be an lvalue, and it must be no less than the greatest inserted key

              Effects: Inserts x into the container in the last position.

              Complexity: Constant time.

              @@ -412,7 +412,7 @@

              Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

            28. -
              void push_front(reference value);
              +
              void push_front(reference value);

              Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

              Effects: Inserts x into the container in the first position.

              Complexity: Constant time.

              @@ -420,21 +420,21 @@

              Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

            29. -
              iterator erase(const_iterator i);
              +
              iterator erase(const_iterator i);

              Effects: Erases the element pointed to by i.

              Complexity: Average complexity for erase element is constant time.

              Throws: Nothing.

              Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

            30. -
              iterator erase(const_iterator b, const_iterator e);
              +
              iterator erase(const_iterator b, const_iterator e);

              Effects: Erases the range pointed to by b end e.

              Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

              Throws: Nothing.

              Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

            31. -
              size_type erase(const key_type & key);
              +
              size_type erase(const key_type & key);

              Effects: Erases all the elements with the given value.

              Returns: The number of erased elements.

              Complexity: O(log(size() + N).

              @@ -443,7 +443,7 @@
            32. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
              + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Erases all the elements with the given key. according to the comparison functor "comp".

              Returns: The number of erased elements.

              @@ -453,7 +453,7 @@
            33. template<typename Disposer> 
              -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
              + iterator erase_and_dispose(const_iterator i, Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw.

              Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

              Complexity: Average complexity for erase element is constant time.

              @@ -462,7 +462,7 @@
            34. template<typename Disposer> 
              -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
              +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                            Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw.

              Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

              @@ -472,7 +472,7 @@
            35. template<typename Disposer> 
              -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
              + size_type erase_and_dispose(const key_type & key, Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw.

              Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

              Returns: The number of erased elements.

              @@ -482,7 +482,7 @@
            36. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
              -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
              +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                             Disposer disposer);

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

              Requires: Disposer::operator()(pointer) shouldn't throw.

              @@ -493,47 +493,47 @@

              Note: Invalidates the iterators to the erased elements.

            37. -
              void clear();
              +
              void clear();

              Effects: Erases all of the elements.

              Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

              Throws: Nothing.

              Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

            38. -
              template<typename Disposer> void clear_and_dispose(Disposer disposer);
              +
              template<typename Disposer> void clear_and_dispose(Disposer disposer);

              Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

              Throws: Nothing.

              Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

            39. -
              size_type count(const key_type & key) const;
              +
              size_type count(const key_type & key) const;

              Effects: Returns the number of contained elements with the given value

              Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

              Throws: If key_compare throws.

            40. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
              + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

              Effects: Returns the number of contained elements with the given key

              Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

              Throws: If comp throws.

            41. -
              iterator lower_bound(const key_type & key);
              +
              iterator lower_bound(const key_type & key);

              Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            42. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
              + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

              Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            43. -
              const_iterator lower_bound(const key_type & key) const;
              +
              const_iterator lower_bound(const key_type & key) const;

              Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

              @@ -541,27 +541,27 @@
            44. template<typename KeyType, typename KeyTypeKeyCompare> 
                 const_iterator 
              -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
              + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

              Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            45. -
              iterator upper_bound(const key_type & key);
              +
              iterator upper_bound(const key_type & key);

              Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            46. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
              + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

              Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If comp throws.

            47. -
              const_iterator upper_bound(const key_type & key) const;
              +
              const_iterator upper_bound(const key_type & key) const;

              Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

              @@ -569,42 +569,42 @@
            48. template<typename KeyType, typename KeyTypeKeyCompare> 
                 const_iterator 
              -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
              + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

              Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If comp throws.

            49. -
              iterator find(const key_type & key);
              +
              iterator find(const key_type & key);

              Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            50. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
              + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

              Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If comp throws.

            51. -
              const_iterator find(const key_type & key) const;
              +
              const_iterator find(const key_type & key) const;

              Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            52. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
              + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

              Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If comp throws.

            53. -
              std::pair< iterator, iterator > equal_range(const key_type & key);
              +
              std::pair< iterator, iterator > equal_range(const key_type & key);

              Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

              @@ -612,7 +612,7 @@
            54. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< iterator, iterator > 
              -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
              + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

              Complexity: Logarithmic.

              @@ -620,7 +620,7 @@
            55. std::pair< const_iterator, const_iterator > 
              -equal_range(const key_type & key) const;
              +equal_range(const key_type & key) const;

              Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

              @@ -628,7 +628,7 @@
            56. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< const_iterator, const_iterator > 
              -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
              + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

              Complexity: Logarithmic.

              @@ -636,7 +636,7 @@
            57. std::pair< iterator, iterator > 
              -bounded_range(const key_type & lower_key, const key_type & upper_key, 
              +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                             bool left_closed, bool right_closed);

              Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

              If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

              @@ -651,7 +651,7 @@
            58. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< iterator, iterator > 
              -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
              +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                               KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

              Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

              upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

              @@ -667,7 +667,7 @@
            59. std::pair< const_iterator, const_iterator > 
              -bounded_range(const key_type & lower_key, const key_type & upper_key, 
              +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                             bool left_closed, bool right_closed) const;

              Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

              If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

              @@ -682,7 +682,7 @@
            60. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< const_iterator, const_iterator > 
              -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
              +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                               KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

              Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

              upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

              @@ -697,28 +697,28 @@

              Note: Experimental function, the interface might change in future releases.

            61. -
              iterator iterator_to(reference value);
              +
              iterator iterator_to(reference value);

              Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

              Effects: Returns: a valid iterator i belonging to the set that points to the value

              Complexity: Constant.

              Throws: Nothing.

            62. -
              const_iterator iterator_to(const_reference value) const;
              +
              const_iterator iterator_to(const_reference value) const;

              Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

              Effects: Returns: a valid const_iterator i belonging to the set that points to the value

              Complexity: Constant.

              Throws: Nothing.

            63. -
              pointer unlink_leftmost_without_rebalance();
              +
              pointer unlink_leftmost_without_rebalance();

              Effects: Unlinks the leftmost node from the container.

              Complexity: Average complexity is constant time.

              Throws: Nothing.

              Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

            64. -
              void replace_node(iterator replace_this, reference with_this);
              +
              void replace_node(iterator replace_this, reference with_this);

              Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

              Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

              Complexity: Constant.

              @@ -726,7 +726,7 @@

              Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

            65. -
              void remove_node(reference value);
              +
              void remove_node(reference value);

              Effects: removes "value" from the container.

              Throws: Nothing.

              Complexity: Logarithmic time.

              @@ -734,7 +734,7 @@

              If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

            66. -
              template<class... Options2> void merge(bs_multiset< T, Options2...> & source);
              +
              template<class... Options2> void merge(bs_multiset< T, Options2...> & source);

              Requires: "source" container's Options can only can differ in the comparison function from *this.

              Effects: Extracts each element in source and insert it into a using the comparison object of *this.

              Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

              @@ -742,7 +742,7 @@

              Complexity: N log(a.size() + N) (N has the value source.size())

            67. -
              template<class... Options2> void merge(bs_set< T, Options2...> & source);
              +
              template<class... Options2> void merge(bs_set< T, Options2...> & source);

              Requires: "source" container's Options can only can differ in the comparison function from *this.

              Effects: Extracts each element in source and insert it into a using the comparison object of *this.

              Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

              @@ -753,10 +753,10 @@

            -bs_multiset public static functions

            +bs_multiset public static functions
            1. -
              static bs_multiset & container_from_end_iterator(iterator end_iterator);
              +
              static bs_multiset & container_from_end_iterator(iterator end_iterator);

              Precondition: end_iterator must be a valid end iterator of the container.

              Effects: Returns a const reference to the container associated to the end iterator

              Throws: Nothing.

              @@ -764,28 +764,28 @@
            2. static const bs_multiset & 
              -container_from_end_iterator(const_iterator end_iterator);
              +container_from_end_iterator(const_iterator end_iterator);

              Precondition: end_iterator must be a valid end iterator of the container.

              Effects: Returns a const reference to the container associated to the end iterator

              Throws: Nothing.

              Complexity: Constant.

            3. -
              static bs_multiset & container_from_iterator(iterator it);
              +
              static bs_multiset & container_from_iterator(iterator it);

              Precondition: it must be a valid iterator of the container.

              Effects: Returns a const reference to the container associated to the iterator

              Throws: Nothing.

              Complexity: Logarithmic.

            4. -
              static const bs_multiset & container_from_iterator(const_iterator it);
              +
              static const bs_multiset & container_from_iterator(const_iterator it);

              Precondition: it must be a valid iterator of the container.

              Effects: Returns a const reference to the container associated to the iterator

              Throws: Nothing.

              Complexity: Logarithmic.

            5. -
              static iterator s_iterator_to(reference value);
              +
              static iterator s_iterator_to(reference value);

              Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

              Effects: Returns: a valid iterator i belonging to the set that points to the value

              Complexity: Constant.

              @@ -793,7 +793,7 @@

              Note: This static function is available only if the value traits is stateless.

            6. -
              static const_iterator s_iterator_to(const_reference value);
              +
              static const_iterator s_iterator_to(const_reference value);

              Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

              Effects: Returns: a valid iterator i belonging to the set that points to the value

              Complexity: Constant.

              @@ -801,7 +801,7 @@

              Note: This static function is available only if the value traits is stateless.

            7. -
              static void init_node(reference value);
              +
              static void init_node(reference value);

              Requires: value shall not be in a container.

              Effects: init_node puts the hook of a value in a well-known default state.

              Throws: Nothing.

              diff --git a/doc/html/boost/intrusive/bs_set.html b/doc/html/boost/intrusive/bs_set.html index 13a9f5890f..ca4f31a39b 100644 --- a/doc/html/boost/intrusive/bs_set.html +++ b/doc/html/boost/intrusive/bs_set.html @@ -59,131 +59,131 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - bs_set(); - explicit bs_set(const key_compare &, const value_traits & = value_traits()); + bs_set(); + explicit bs_set(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - bs_set(Iterator, Iterator, const key_compare & = key_compare(), + bs_set(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - bs_set(bs_set &&); - bs_set & operator=(bs_set &&); - ~bs_set(); + bs_set(bs_set &&); + bs_set & operator=(bs_set &&); + ~bs_set(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(bs_set &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(bs_set &); template<typename Cloner, typename Disposer> - void clone_from(const bs_set &, Cloner, Disposer); + void clone_from(const bs_set &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(bs_set &&, Cloner, Disposer); - std::pair< iterator, bool > insert(reference); - iterator insert(const_iterator, reference); + void clone_from(bs_set &&, Cloner, Disposer); + std::pair< iterator, bool > insert(reference); + iterator insert(const_iterator, reference); std::pair< iterator, bool > - insert_check(const key_type &, insert_commit_data &); + insert_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_check(const_iterator, const key_type &, insert_commit_data &); + insert_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); + insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_commit(reference, const insert_commit_data &); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_commit(reference, const insert_commit_data &); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - template<class... Options2> void merge(bs_set< T, Options2...> &); - template<class... Options2> void merge(bs_multiset< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + template<class... Options2> void merge(bs_set< T, Options2...> &); + template<class... Options2> void merge(bs_multiset< T, Options2...> &); - // public static functions - static bs_set & container_from_end_iterator(iterator); - static const bs_set & container_from_end_iterator(const_iterator); - static bs_set & container_from_iterator(iterator); - static const bs_set & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static bs_set & container_from_end_iterator(iterator); + static const bs_set & container_from_end_iterator(const_iterator); + static bs_set & container_from_iterator(iterator); + static const bs_set & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -200,13 +200,13 @@ construct/copy/destruct
              1. -
                bs_set();
                +
                bs_set();

                Effects: Constructs an empty container.

                Complexity: Constant.

                Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

              2. -
                explicit bs_set(const key_compare & cmp, 
                +
                explicit bs_set(const key_compare & cmp, 
                                 const value_traits & v_traits = value_traits());

                Effects: Constructs an empty container with given comparison and traits.

                Complexity: Constant.

                @@ -214,7 +214,7 @@
              3. template<typename Iterator> 
                -  bs_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                +  bs_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                          const value_traits & v_traits = value_traits());

                Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

                Effects: Constructs an empty container and inserts elements from [b, e).

                @@ -222,17 +222,17 @@

                Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

              4. -
                bs_set(bs_set && x);
                +
                bs_set(bs_set && x);

                Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

                Complexity: Constant.

                Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

              5. -
                bs_set & operator=(bs_set && x);
                +
                bs_set & operator=(bs_set && x);

                Effects: Equivalent to swap

              6. -
                ~bs_set();
                +
                ~bs_set();

                Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                Complexity: Linear to elements contained in *this.

                Throws: Nothing.

                @@ -241,131 +241,131 @@

              -bs_set public member functions

              +bs_set public member functions
              1. -
                iterator begin();
                +
                iterator begin();

                Effects: Returns an iterator pointing to the beginning of the container.

                Complexity: Constant.

                Throws: Nothing.

              2. -
                const_iterator begin() const;
                +
                const_iterator begin() const;

                Effects: Returns a const_iterator pointing to the beginning of the container.

                Complexity: Constant.

                Throws: Nothing.

              3. -
                const_iterator cbegin() const;
                +
                const_iterator cbegin() const;

                Effects: Returns a const_iterator pointing to the beginning of the container.

                Complexity: Constant.

                Throws: Nothing.

              4. -
                iterator end();
                +
                iterator end();

                Effects: Returns an iterator pointing to the end of the container.

                Complexity: Constant.

                Throws: Nothing.

              5. -
                const_iterator end() const;
                +
                const_iterator end() const;

                Effects: Returns a const_iterator pointing to the end of the container.

                Complexity: Constant.

                Throws: Nothing.

              6. -
                const_iterator cend() const;
                +
                const_iterator cend() const;

                Effects: Returns a const_iterator pointing to the end of the container.

                Complexity: Constant.

                Throws: Nothing.

              7. -
                reverse_iterator rbegin();
                +
                reverse_iterator rbegin();

                Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              8. -
                const_reverse_iterator rbegin() const;
                +
                const_reverse_iterator rbegin() const;

                Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              9. -
                const_reverse_iterator crbegin() const;
                +
                const_reverse_iterator crbegin() const;

                Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              10. -
                reverse_iterator rend();
                +
                reverse_iterator rend();

                Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              11. -
                const_reverse_iterator rend() const;
                +
                const_reverse_iterator rend() const;

                Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              12. -
                const_reverse_iterator crend() const;
                +
                const_reverse_iterator crend() const;

                Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              13. -
                iterator root();
                +
                iterator root();

                Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                Complexity: Constant.

                Throws: Nothing.

              14. -
                const_iterator root() const;
                +
                const_iterator root() const;

                Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                Complexity: Constant.

                Throws: Nothing.

              15. -
                const_iterator croot() const;
                +
                const_iterator croot() const;

                Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                Complexity: Constant.

                Throws: Nothing.

              16. -
                key_compare key_comp() const;
                +
                key_compare key_comp() const;

                Effects: Returns the key_compare object used by the container.

                Complexity: Constant.

                Throws: If key_compare copy-constructor throws.

              17. -
                value_compare value_comp() const;
                +
                value_compare value_comp() const;

                Effects: Returns the value_compare object used by the container.

                Complexity: Constant.

                Throws: If value_compare copy-constructor throws.

              18. -
                bool empty() const;
                +
                bool empty() const;

                Effects: Returns true if the container is empty.

                Complexity: Constant.

                Throws: Nothing.

              19. -
                size_type size() const;
                +
                size_type size() const;

                Effects: Returns the number of elements stored in the container.

                Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                Throws: Nothing.

              20. -
                void swap(bs_set & other);
                +
                void swap(bs_set & other);

                Effects: Swaps the contents of two containers.

                Complexity: Constant.

                Throws: If the comparison functor's swap call throws.

              21. template<typename Cloner, typename Disposer> 
                -  void clone_from(const bs_set & src, Cloner cloner, Disposer disposer);
                + void clone_from(const bs_set & src, Cloner cloner, Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                @@ -374,7 +374,7 @@
              22. template<typename Cloner, typename Disposer> 
                -  void clone_from(bs_set && src, Cloner cloner, Disposer disposer);
                + void clone_from(bs_set && src, Cloner cloner, Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                @@ -383,7 +383,7 @@

                Note: This version can modify the source container, useful to implement move semantics.

              23. -
                std::pair< iterator, bool > insert(reference value);
                +
                std::pair< iterator, bool > insert(reference value);

                Requires: value must be an lvalue

                Effects: Inserts value into the container if the value is not already present.

                Complexity: Average complexity for insert element is at most logarithmic.

                @@ -391,7 +391,7 @@

                Note: Does not affect the validity of iterators and references. No copy-constructors are called.

              24. -
                iterator insert(const_iterator hint, reference value);
                +
                iterator insert(const_iterator hint, reference value);

                Requires: value must be an lvalue, and "hint" must be a valid iterator

                Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

                Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

                @@ -400,7 +400,7 @@
              25. std::pair< iterator, bool > 
                -insert_check(const key_type & key, insert_commit_data & commit_data);
                +insert_check(const key_type & key, insert_commit_data & commit_data);

                Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                Complexity: Average complexity is at most logarithmic.

                @@ -408,7 +408,7 @@
              26. std::pair< iterator, bool > 
                -insert_check(const_iterator hint, const key_type & key, 
                +insert_check(const_iterator hint, const key_type & key, 
                              insert_commit_data & commit_data);

                Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                @@ -418,7 +418,7 @@
              27. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< iterator, bool > 
                -  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                +  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                                insert_commit_data & commit_data);

                Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                @@ -432,7 +432,7 @@
              28. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< iterator, bool > 
                -  insert_check(const_iterator hint, const KeyType & key, 
                +  insert_check(const_iterator hint, const KeyType & key, 
                                KeyTypeKeyCompare comp, insert_commit_data & commit_data);

                Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                @@ -444,7 +444,7 @@

                "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

              29. -
                template<typename Iterator> void insert(Iterator b, Iterator e);
                +
                template<typename Iterator> void insert(Iterator b, Iterator e);

                Requires: Dereferencing iterator must yield an lvalue of type value_type.

                Effects: Tries to insert each element of a range into the container.

                Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                @@ -452,7 +452,7 @@

                Note: Does not affect the validity of iterators and references. No copy-constructors are called.

              30. -
                iterator insert_commit(reference value, 
                +
                iterator insert_commit(reference value, 
                                        const insert_commit_data & commit_data);

                Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

                Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

                @@ -462,7 +462,7 @@

                Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

              31. -
                iterator insert_before(const_iterator pos, reference value);
                +
                iterator insert_before(const_iterator pos, reference value);

                Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                Effects: Inserts x into the container before "pos".

                Complexity: Constant time.

                @@ -470,7 +470,7 @@

                Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

              32. -
                void push_back(reference value);
                +
                void push_back(reference value);

                Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                Effects: Inserts x into the container in the last position.

                Complexity: Constant time.

                @@ -478,7 +478,7 @@

                Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

              33. -
                void push_front(reference value);
                +
                void push_front(reference value);

                Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                Effects: Inserts x into the container in the first position.

                Complexity: Constant time.

                @@ -486,21 +486,21 @@

                Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

              34. -
                iterator erase(const_iterator i);
                +
                iterator erase(const_iterator i);

                Effects: Erases the element pointed to by i.

                Complexity: Average complexity for erase element is constant time.

                Throws: Nothing.

                Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

              35. -
                iterator erase(const_iterator b, const_iterator e);
                +
                iterator erase(const_iterator b, const_iterator e);

                Effects: Erases the range pointed to by b end e.

                Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                Throws: Nothing.

                Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

              36. -
                size_type erase(const key_type & key);
                +
                size_type erase(const key_type & key);

                Effects: Erases all the elements with the given value.

                Returns: The number of erased elements.

                Complexity: O(log(size() + N).

                @@ -509,7 +509,7 @@
              37. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                Returns: The number of erased elements.

                @@ -519,7 +519,7 @@
              38. template<typename Disposer> 
                -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw.

                Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                Complexity: Average complexity for erase element is constant time.

                @@ -528,7 +528,7 @@
              39. template<typename Disposer> 
                -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                              Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw.

                Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                @@ -538,7 +538,7 @@
              40. template<typename Disposer> 
                -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw.

                Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                Returns: The number of erased elements.

                @@ -548,7 +548,7 @@
              41. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                               Disposer disposer);

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

                Requires: Disposer::operator()(pointer) shouldn't throw.

                @@ -559,47 +559,47 @@

                Note: Invalidates the iterators to the erased elements.

              42. -
                void clear();
                +
                void clear();

                Effects: Erases all of the elements.

                Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                Throws: Nothing.

                Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

              43. -
                template<typename Disposer> void clear_and_dispose(Disposer disposer);
                +
                template<typename Disposer> void clear_and_dispose(Disposer disposer);

                Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                Throws: Nothing.

                Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

              44. -
                size_type count(const key_type & key) const;
                +
                size_type count(const key_type & key) const;

                Effects: Returns the number of contained elements with the given value

                Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                Throws: If key_compare throws.

              45. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                Effects: Returns the number of contained elements with the given key

                Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                Throws: If comp throws.

              46. -
                iterator lower_bound(const key_type &);
                +
                iterator lower_bound(const key_type &);

                Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              47. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              48. -
                const_iterator lower_bound(const key_type & key) const;
                +
                const_iterator lower_bound(const key_type & key) const;

                Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

                @@ -607,27 +607,27 @@
              49. template<typename KeyType, typename KeyTypeKeyCompare> 
                   const_iterator 
                -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              50. -
                iterator upper_bound(const key_type & key);
                +
                iterator upper_bound(const key_type & key);

                Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              51. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If comp throws.

              52. -
                const_iterator upper_bound(const key_type & key) const;
                +
                const_iterator upper_bound(const key_type & key) const;

                Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

                @@ -635,42 +635,42 @@
              53. template<typename KeyType, typename KeyTypeKeyCompare> 
                   const_iterator 
                -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If comp throws.

              54. -
                iterator find(const key_type & key);
                +
                iterator find(const key_type & key);

                Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              55. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If comp throws.

              56. -
                const_iterator find(const key_type & key) const;
                +
                const_iterator find(const key_type & key) const;

                Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              57. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If comp throws.

              58. -
                std::pair< iterator, iterator > equal_range(const key_type & key);
                +
                std::pair< iterator, iterator > equal_range(const key_type & key);

                Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

                @@ -678,7 +678,7 @@
              59. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< iterator, iterator > 
                -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                Complexity: Logarithmic.

                @@ -686,7 +686,7 @@
              60. std::pair< const_iterator, const_iterator > 
                -equal_range(const key_type & key) const;
                +equal_range(const key_type & key) const;

                Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

                @@ -694,7 +694,7 @@
              61. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< const_iterator, const_iterator > 
                -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                Complexity: Logarithmic.

                @@ -702,7 +702,7 @@
              62. std::pair< iterator, iterator > 
                -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                               bool left_closed, bool right_closed);

                Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                @@ -717,7 +717,7 @@
              63. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< iterator, iterator > 
                -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                 KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                @@ -733,7 +733,7 @@
              64. std::pair< const_iterator, const_iterator > 
                -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                               bool left_closed, bool right_closed) const;

                Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                @@ -748,7 +748,7 @@
              65. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< const_iterator, const_iterator > 
                -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                 KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                @@ -763,28 +763,28 @@

                Note: Experimental function, the interface might change in future releases.

              66. -
                iterator iterator_to(reference value);
                +
                iterator iterator_to(reference value);

                Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                Effects: Returns: a valid iterator i belonging to the set that points to the value

                Complexity: Constant.

                Throws: Nothing.

              67. -
                const_iterator iterator_to(const_reference value) const;
                +
                const_iterator iterator_to(const_reference value) const;

                Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                Complexity: Constant.

                Throws: Nothing.

              68. -
                pointer unlink_leftmost_without_rebalance();
                +
                pointer unlink_leftmost_without_rebalance();

                Effects: Unlinks the leftmost node from the container.

                Complexity: Average complexity is constant time.

                Throws: Nothing.

                Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

              69. -
                void replace_node(iterator replace_this, reference with_this);
                +
                void replace_node(iterator replace_this, reference with_this);

                Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                Complexity: Constant.

                @@ -792,7 +792,7 @@

                Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

              70. -
                void remove_node(reference value);
                +
                void remove_node(reference value);

                Effects: removes "value" from the container.

                Throws: Nothing.

                Complexity: Logarithmic time.

                @@ -800,7 +800,7 @@

                If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

              71. -
                template<class... Options2> void merge(bs_set< T, Options2...> & source);
                +
                template<class... Options2> void merge(bs_set< T, Options2...> & source);

                Requires: "source" container's Options can only can differ in the comparison function from *this.

                Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                @@ -808,7 +808,7 @@

                Complexity: N log(a.size() + N) (N has the value source.size())

              72. -
                template<class... Options2> void merge(bs_multiset< T, Options2...> & source);
                +
                template<class... Options2> void merge(bs_multiset< T, Options2...> & source);

                Requires: "source" container's Options can only can differ in the comparison function from *this.

                Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                @@ -819,38 +819,38 @@

              -bs_set public static functions

              +bs_set public static functions
              1. -
                static bs_set & container_from_end_iterator(iterator end_iterator);
                +
                static bs_set & container_from_end_iterator(iterator end_iterator);

                Precondition: end_iterator must be a valid end iterator of the container.

                Effects: Returns a const reference to the container associated to the end iterator

                Throws: Nothing.

                Complexity: Constant.

              2. -
                static const bs_set & container_from_end_iterator(const_iterator end_iterator);
                +
                static const bs_set & container_from_end_iterator(const_iterator end_iterator);

                Precondition: end_iterator must be a valid end iterator of the container.

                Effects: Returns a const reference to the container associated to the end iterator

                Throws: Nothing.

                Complexity: Constant.

              3. -
                static bs_set & container_from_iterator(iterator it);
                +
                static bs_set & container_from_iterator(iterator it);

                Precondition: it must be a valid iterator of the container.

                Effects: Returns a const reference to the container associated to the iterator

                Throws: Nothing.

                Complexity: Logarithmic.

              4. -
                static const bs_set & container_from_iterator(const_iterator it);
                +
                static const bs_set & container_from_iterator(const_iterator it);

                Precondition: it must be a valid iterator of the container.

                Effects: Returns a const reference to the container associated to the iterator

                Throws: Nothing.

                Complexity: Logarithmic.

              5. -
                static iterator s_iterator_to(reference value);
                +
                static iterator s_iterator_to(reference value);

                Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                Effects: Returns: a valid iterator i belonging to the set that points to the value

                Complexity: Constant.

                @@ -858,7 +858,7 @@

                Note: This static function is available only if the value traits is stateless.

              6. -
                static const_iterator s_iterator_to(const_reference value);
                +
                static const_iterator s_iterator_to(const_reference value);

                Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                Effects: Returns: a valid iterator i belonging to the set that points to the value

                Complexity: Constant.

                @@ -866,7 +866,7 @@

                Note: This static function is available only if the value traits is stateless.

              7. -
                static void init_node(reference value);
                +
                static void init_node(reference value);

                Requires: value shall not be in a container.

                Effects: init_node puts the hook of a value in a well-known default state.

                Throws: Nothing.

                diff --git a/doc/html/boost/intrusive/bs_set_base_hook.html b/doc/html/boost/intrusive/bs_set_base_hook.html index ce9a5d860d..56d8d1730e 100644 --- a/doc/html/boost/intrusive/bs_set_base_hook.html +++ b/doc/html/boost/intrusive/bs_set_base_hook.html @@ -36,15 +36,15 @@ class bs_set_base_hook : public make_bs_set_base_hook::type< O1, O2, O3 > { public: // construct/copy/destruct - bs_set_base_hook(); - bs_set_base_hook(const bs_set_base_hook &); - bs_set_base_hook & operator=(const bs_set_base_hook &); - ~bs_set_base_hook(); + bs_set_base_hook(); + bs_set_base_hook(const bs_set_base_hook &); + bs_set_base_hook & operator=(const bs_set_base_hook &); + ~bs_set_base_hook(); - // public member functions - void swap_nodes(bs_set_base_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(bs_set_base_hook &); + bool is_linked() const; + void unlink(); };

              Description

              @@ -60,24 +60,24 @@ construct/copy/destruct
              1. -
                bs_set_base_hook();
                +
                bs_set_base_hook();

                Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

                Throws: Nothing.

              2. -
                bs_set_base_hook(const bs_set_base_hook &);
                +
                bs_set_base_hook(const bs_set_base_hook &);

                Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

                Throws: Nothing.

                Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

              3. -
                bs_set_base_hook & operator=(const bs_set_base_hook &);
                +
                bs_set_base_hook & operator=(const bs_set_base_hook &);

                Effects: Empty function. The argument is ignored.

                Throws: Nothing.

                Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

              4. -
                ~bs_set_base_hook();
                +
                ~bs_set_base_hook();

                Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in a set an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

                Throws: Nothing.

              5. @@ -85,22 +85,22 @@

              -bs_set_base_hook public member functions

              +bs_set_base_hook public member functions
              1. -
                void swap_nodes(bs_set_base_hook & other);
                +
                void swap_nodes(bs_set_base_hook & other);

                Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

                Complexity: Constant

                Throws: Nothing.

              2. -
                bool is_linked() const;
                +
                bool is_linked() const;

                Precondition: link_mode must be safe_link or auto_unlink.

                Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether set::iterator_to will return a valid iterator.

                Complexity: Constant

              3. -
                void unlink();
                +
                void unlink();

                Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

                Throws: Nothing.

              4. diff --git a/doc/html/boost/intrusive/bs_set_member_hook.html b/doc/html/boost/intrusive/bs_set_member_hook.html index bb4427f176..125f9b96be 100644 --- a/doc/html/boost/intrusive/bs_set_member_hook.html +++ b/doc/html/boost/intrusive/bs_set_member_hook.html @@ -36,15 +36,15 @@ class bs_set_member_hook : public make_bs_set_member_hook::type< O1, O2, O3 > { public: // construct/copy/destruct - bs_set_member_hook(); - bs_set_member_hook(const bs_set_member_hook &); - bs_set_member_hook & operator=(const bs_set_member_hook &); - ~bs_set_member_hook(); + bs_set_member_hook(); + bs_set_member_hook(const bs_set_member_hook &); + bs_set_member_hook & operator=(const bs_set_member_hook &); + ~bs_set_member_hook(); - // public member functions - void swap_nodes(bs_set_member_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(bs_set_member_hook &); + bool is_linked() const; + void unlink(); };

              Description

              @@ -59,24 +59,24 @@ construct/copy/destruct
              1. -
                bs_set_member_hook();
                +
                bs_set_member_hook();

                Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

                Throws: Nothing.

              2. -
                bs_set_member_hook(const bs_set_member_hook &);
                +
                bs_set_member_hook(const bs_set_member_hook &);

                Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

                Throws: Nothing.

                Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

              3. -
                bs_set_member_hook & operator=(const bs_set_member_hook &);
                +
                bs_set_member_hook & operator=(const bs_set_member_hook &);

                Effects: Empty function. The argument is ignored.

                Throws: Nothing.

                Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

              4. -
                ~bs_set_member_hook();
                +
                ~bs_set_member_hook();

                Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in a set an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

                Throws: Nothing.

              5. @@ -84,22 +84,22 @@

              -bs_set_member_hook public member functions

              +bs_set_member_hook public member functions
              1. -
                void swap_nodes(bs_set_member_hook & other);
                +
                void swap_nodes(bs_set_member_hook & other);

                Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

                Complexity: Constant

                Throws: Nothing.

              2. -
                bool is_linked() const;
                +
                bool is_linked() const;

                Precondition: link_mode must be safe_link or auto_unlink.

                Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether set::iterator_to will return a valid iterator.

                Complexity: Constant

              3. -
                void unlink();
                +
                void unlink();

                Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

                Throws: Nothing.

              4. diff --git a/doc/html/boost/intrusive/bstree.html b/doc/html/boost/intrusive/bstree.html index 6caf023272..c8eb10c242 100644 --- a/doc/html/boost/intrusive/bstree.html +++ b/doc/html/boost/intrusive/bstree.html @@ -61,143 +61,143 @@ typedef node_algorithms::insert_commit_data insert_commit_data; // construct/copy/destruct - bstree(); - explicit bstree(const key_compare &, const value_traits & = value_traits()); + bstree(); + explicit bstree(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - bstree(bool, Iterator, Iterator, const key_compare & = key_compare(), + bstree(bool, Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - bstree(bstree &&); - bstree & operator=(bstree &&); - ~bstree(); + bstree(bstree &&); + bstree & operator=(bstree &&); + ~bstree(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(bstree &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(bstree &); template<typename Cloner, typename Disposer> - void clone_from(const bstree &, Cloner, Disposer); + void clone_from(const bstree &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(bstree &&, Cloner, Disposer); - iterator insert_equal(reference); - iterator insert_equal(const_iterator, reference); - template<typename Iterator> void insert_equal(Iterator, Iterator); - std::pair< iterator, bool > insert_unique(reference); - iterator insert_unique(const_iterator, reference); - template<typename Iterator> void insert_unique(Iterator, Iterator); + void clone_from(bstree &&, Cloner, Disposer); + iterator insert_equal(reference); + iterator insert_equal(const_iterator, reference); + template<typename Iterator> void insert_equal(Iterator, Iterator); + std::pair< iterator, bool > insert_unique(reference); + iterator insert_unique(const_iterator, reference); + template<typename Iterator> void insert_unique(Iterator, Iterator); std::pair< iterator, bool > - insert_unique_check(const key_type &, insert_commit_data &); + insert_unique_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const_iterator, const key_type &, insert_commit_data &); + insert_unique_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); - iterator insert_unique_commit(reference, const insert_commit_data &); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + iterator insert_unique_commit(reference, const insert_commit_data &); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); - const_iterator lower_bound(const key_type &) const; + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void rebalance(); - iterator rebalance_subtree(iterator); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void rebalance(); + iterator rebalance_subtree(iterator); template<typename T, class... Options2> - void merge_unique(bstree< T, Options2...> &); - while(it! = itend); + void merge_unique(bstree< T, Options2...> &); + while(it! = itend); template<typename T, class... Options2> - void merge_equal(bstree< T, Options2...> &); - while(it! = itend); - template<typename ExtraChecker> void check(ExtraChecker) const; - void check() const; + void merge_equal(bstree< T, Options2...> &); + while(it! = itend); + template<typename ExtraChecker> void check(ExtraChecker) const; + void check() const; - // public static functions - static bstree & container_from_end_iterator(iterator); - static const bstree & container_from_end_iterator(const_iterator); - static bstree & container_from_iterator(iterator); - static const bstree & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); - static void remove_node(reference); + // public static functions + static bstree & container_from_end_iterator(iterator); + static const bstree & container_from_end_iterator(const_iterator); + static bstree & container_from_iterator(iterator); + static const bstree & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); + static void remove_node(reference); // public data members static const bool constant_time_size; @@ -216,13 +216,13 @@ construct/copy/destruct
                1. -
                  bstree();
                  +
                  bstree();

                  Effects: Constructs an empty container.

                  Complexity: Constant.

                  Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

                2. -
                  explicit bstree(const key_compare & cmp, 
                  +
                  explicit bstree(const key_compare & cmp, 
                                   const value_traits & v_traits = value_traits());

                  Effects: Constructs an empty container with given comparison and traits.

                  Complexity: Constant.

                  @@ -230,7 +230,7 @@
                3. template<typename Iterator> 
                  -  bstree(bool unique, Iterator b, Iterator e, 
                  +  bstree(bool unique, Iterator b, Iterator e, 
                            const key_compare & cmp = key_compare(), 
                            const value_traits & v_traits = value_traits());

                  Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

                  @@ -239,17 +239,17 @@

                  Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

                4. -
                  bstree(bstree && x);
                  +
                  bstree(bstree && x);

                  Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

                  Complexity: Constant.

                  Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

                5. -
                  bstree & operator=(bstree && x);
                  +
                  bstree & operator=(bstree && x);

                  Effects: Equivalent to swap

                6. -
                  ~bstree();
                  +
                  ~bstree();

                  Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                  Complexity: Linear to elements contained in *this.

                  Throws: Nothing.

                  @@ -258,131 +258,131 @@

                -bstree public member functions

                +bstree public member functions
                1. -
                  iterator begin();
                  +
                  iterator begin();

                  Effects: Returns an iterator pointing to the beginning of the container.

                  Complexity: Constant.

                  Throws: Nothing.

                2. -
                  const_iterator begin() const;
                  +
                  const_iterator begin() const;

                  Effects: Returns a const_iterator pointing to the beginning of the container.

                  Complexity: Constant.

                  Throws: Nothing.

                3. -
                  const_iterator cbegin() const;
                  +
                  const_iterator cbegin() const;

                  Effects: Returns a const_iterator pointing to the beginning of the container.

                  Complexity: Constant.

                  Throws: Nothing.

                4. -
                  iterator end();
                  +
                  iterator end();

                  Effects: Returns an iterator pointing to the end of the container.

                  Complexity: Constant.

                  Throws: Nothing.

                5. -
                  const_iterator end() const;
                  +
                  const_iterator end() const;

                  Effects: Returns a const_iterator pointing to the end of the container.

                  Complexity: Constant.

                  Throws: Nothing.

                6. -
                  const_iterator cend() const;
                  +
                  const_iterator cend() const;

                  Effects: Returns a const_iterator pointing to the end of the container.

                  Complexity: Constant.

                  Throws: Nothing.

                7. -
                  reverse_iterator rbegin();
                  +
                  reverse_iterator rbegin();

                  Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                  Complexity: Constant.

                  Throws: Nothing.

                8. -
                  const_reverse_iterator rbegin() const;
                  +
                  const_reverse_iterator rbegin() const;

                  Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                  Complexity: Constant.

                  Throws: Nothing.

                9. -
                  const_reverse_iterator crbegin() const;
                  +
                  const_reverse_iterator crbegin() const;

                  Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                  Complexity: Constant.

                  Throws: Nothing.

                10. -
                  reverse_iterator rend();
                  +
                  reverse_iterator rend();

                  Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                  Complexity: Constant.

                  Throws: Nothing.

                11. -
                  const_reverse_iterator rend() const;
                  +
                  const_reverse_iterator rend() const;

                  Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                  Complexity: Constant.

                  Throws: Nothing.

                12. -
                  const_reverse_iterator crend() const;
                  +
                  const_reverse_iterator crend() const;

                  Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                  Complexity: Constant.

                  Throws: Nothing.

                13. -
                  iterator root();
                  +
                  iterator root();

                  Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                  Complexity: Constant.

                  Throws: Nothing.

                14. -
                  const_iterator root() const;
                  +
                  const_iterator root() const;

                  Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                  Complexity: Constant.

                  Throws: Nothing.

                15. -
                  const_iterator croot() const;
                  +
                  const_iterator croot() const;

                  Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                  Complexity: Constant.

                  Throws: Nothing.

                16. -
                  key_compare key_comp() const;
                  +
                  key_compare key_comp() const;

                  Effects: Returns the key_compare object used by the container.

                  Complexity: Constant.

                  Throws: If key_compare copy-constructor throws.

                17. -
                  value_compare value_comp() const;
                  +
                  value_compare value_comp() const;

                  Effects: Returns the value_compare object used by the container.

                  Complexity: Constant.

                  Throws: If value_compare copy-constructor throws.

                18. -
                  bool empty() const;
                  +
                  bool empty() const;

                  Effects: Returns true if the container is empty.

                  Complexity: Constant.

                  Throws: Nothing.

                19. -
                  size_type size() const;
                  +
                  size_type size() const;

                  Effects: Returns the number of elements stored in the container.

                  Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                  Throws: Nothing.

                20. -
                  void swap(bstree & other);
                  +
                  void swap(bstree & other);

                  Effects: Swaps the contents of two containers.

                  Complexity: Constant.

                  Throws: If the comparison functor's swap call throws.

                21. template<typename Cloner, typename Disposer> 
                  -  void clone_from(const bstree & src, Cloner cloner, Disposer disposer);
                  + void clone_from(const bstree & src, Cloner cloner, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                  Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                  If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                  @@ -391,7 +391,7 @@
                22. template<typename Cloner, typename Disposer> 
                  -  void clone_from(bstree && src, Cloner cloner, Disposer disposer);
                  + void clone_from(bstree && src, Cloner cloner, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                  Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                  If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                  @@ -400,7 +400,7 @@

                  Note: This version can modify the source container, useful to implement move semantics.

                23. -
                  iterator insert_equal(reference value);
                  +
                  iterator insert_equal(reference value);

                  Requires: value must be an lvalue

                  Effects: Inserts value into the container before the upper bound.

                  Complexity: Average complexity for insert element is at most logarithmic.

                  @@ -408,7 +408,7 @@

                  Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                24. -
                  iterator insert_equal(const_iterator hint, reference value);
                  +
                  iterator insert_equal(const_iterator hint, reference value);

                  Requires: value must be an lvalue, and "hint" must be a valid iterator.

                  Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

                  Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

                  @@ -416,7 +416,7 @@

                  Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                25. -
                  template<typename Iterator> void insert_equal(Iterator b, Iterator e);
                  +
                  template<typename Iterator> void insert_equal(Iterator b, Iterator e);

                  Requires: Dereferencing iterator must yield an lvalue of type value_type.

                  Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

                  Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                  @@ -424,7 +424,7 @@

                  Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                26. -
                  std::pair< iterator, bool > insert_unique(reference value);
                  +
                  std::pair< iterator, bool > insert_unique(reference value);

                  Requires: value must be an lvalue

                  Effects: Inserts value into the container if the value is not already present.

                  Complexity: Average complexity for insert element is at most logarithmic.

                  @@ -432,7 +432,7 @@

                  Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                27. -
                  iterator insert_unique(const_iterator hint, reference value);
                  +
                  iterator insert_unique(const_iterator hint, reference value);

                  Requires: value must be an lvalue, and "hint" must be a valid iterator

                  Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

                  Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

                  @@ -440,7 +440,7 @@

                  Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                28. -
                  template<typename Iterator> void insert_unique(Iterator b, Iterator e);
                  +
                  template<typename Iterator> void insert_unique(Iterator b, Iterator e);

                  Requires: Dereferencing iterator must yield an lvalue of type value_type.

                  Effects: Tries to insert each element of a range into the container.

                  Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                  @@ -449,7 +449,7 @@
                29. std::pair< iterator, bool > 
                  -insert_unique_check(const key_type & key, insert_commit_data & commit_data);
                  +insert_unique_check(const key_type & key, insert_commit_data & commit_data);

                  Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                  Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                  Complexity: Average complexity is at most logarithmic.

                  @@ -457,7 +457,7 @@
                30. std::pair< iterator, bool > 
                  -insert_unique_check(const_iterator hint, const key_type & key, 
                  +insert_unique_check(const_iterator hint, const key_type & key, 
                                       insert_commit_data & commit_data);

                  Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                  Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                  @@ -467,7 +467,7 @@
                31. template<typename KeyType, typename KeyTypeKeyCompare> 
                     std::pair< iterator, bool > 
                  -  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                  +  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                                         insert_commit_data & commit_data);

                  Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                  Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                  @@ -481,7 +481,7 @@
                32. template<typename KeyType, typename KeyTypeKeyCompare> 
                     std::pair< iterator, bool > 
                  -  insert_unique_check(const_iterator hint, const KeyType & key, 
                  +  insert_unique_check(const_iterator hint, const KeyType & key, 
                                         KeyTypeKeyCompare comp, 
                                         insert_commit_data & commit_data);

                  Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                  @@ -494,7 +494,7 @@

                  "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

                33. -
                  iterator insert_unique_commit(reference value, 
                  +
                  iterator insert_unique_commit(reference value, 
                                                 const insert_commit_data & commit_data);

                  Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

                  Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

                  @@ -504,7 +504,7 @@

                  Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

                34. -
                  iterator insert_before(const_iterator pos, reference value);
                  +
                  iterator insert_before(const_iterator pos, reference value);

                  Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                  Effects: Inserts x into the container before "pos".

                  Complexity: Constant time.

                  @@ -512,7 +512,7 @@

                  Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

                35. -
                  void push_back(reference value);
                  +
                  void push_back(reference value);

                  Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                  Effects: Inserts x into the container in the last position.

                  Complexity: Constant time.

                  @@ -520,7 +520,7 @@

                  Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                36. -
                  void push_front(reference value);
                  +
                  void push_front(reference value);

                  Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                  Effects: Inserts x into the container in the first position.

                  Complexity: Constant time.

                  @@ -528,21 +528,21 @@

                  Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                37. -
                  iterator erase(const_iterator i);
                  +
                  iterator erase(const_iterator i);

                  Effects: Erases the element pointed to by i.

                  Complexity: Average complexity for erase element is constant time.

                  Throws: Nothing.

                  Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                38. -
                  iterator erase(const_iterator b, const_iterator e);
                  +
                  iterator erase(const_iterator b, const_iterator e);

                  Effects: Erases the range pointed to by b end e.

                  Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                  Throws: Nothing.

                  Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                39. -
                  size_type erase(const key_type & key);
                  +
                  size_type erase(const key_type & key);

                  Effects: Erases all the elements with the given value.

                  Returns: The number of erased elements.

                  Complexity: O(log(size() + N).

                  @@ -551,7 +551,7 @@
                40. template<typename KeyType, typename KeyTypeKeyCompare> 
                  -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                  + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                  Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                  Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                  Returns: The number of erased elements.

                  @@ -561,7 +561,7 @@
                41. template<typename Disposer> 
                  -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                  + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                  Complexity: Average complexity for erase element is constant time.

                  @@ -570,7 +570,7 @@
                42. template<typename Disposer> 
                  -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                  + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                  Returns: The number of erased elements.

                  @@ -580,7 +580,7 @@
                43. template<typename Disposer> 
                  -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                  +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                                Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                  @@ -590,7 +590,7 @@
                44. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                  -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                  +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                                 Disposer disposer);

                  Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  @@ -601,47 +601,47 @@

                  Note: Invalidates the iterators to the erased elements.

                45. -
                  void clear();
                  +
                  void clear();

                  Effects: Erases all of the elements.

                  Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                  Throws: Nothing.

                  Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                46. -
                  template<typename Disposer> void clear_and_dispose(Disposer disposer);
                  +
                  template<typename Disposer> void clear_and_dispose(Disposer disposer);

                  Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                  Throws: Nothing.

                  Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

                47. -
                  size_type count(const key_type & key) const;
                  +
                  size_type count(const key_type & key) const;

                  Effects: Returns the number of contained elements with the given value

                  Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                  Throws: If key_compare throws.

                48. template<typename KeyType, typename KeyTypeKeyCompare> 
                  -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                  + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                  Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                  Effects: Returns the number of contained elements with the given key

                  Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                  Throws: If comp throws.

                49. -
                  iterator lower_bound(const key_type & key);
                  +
                  iterator lower_bound(const key_type & key);

                  Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                50. -
                  const_iterator lower_bound(const key_type & key) const;
                  +
                  const_iterator lower_bound(const key_type & key) const;

                  Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                51. template<typename KeyType, typename KeyTypeKeyCompare> 
                  -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                  + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                  Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                  @@ -649,27 +649,27 @@
                52. template<typename KeyType, typename KeyTypeKeyCompare> 
                     const_iterator 
                  -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                  + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                  Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                53. -
                  iterator upper_bound(const key_type & key);
                  +
                  iterator upper_bound(const key_type & key);

                  Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                54. template<typename KeyType, typename KeyTypeKeyCompare> 
                  -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                  + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                  Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                  Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If comp throws.

                55. -
                  const_iterator upper_bound(const key_type & key) const;
                  +
                  const_iterator upper_bound(const key_type & key) const;

                  Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                  @@ -677,42 +677,42 @@
                56. template<typename KeyType, typename KeyTypeKeyCompare> 
                     const_iterator 
                  -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                  + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                  Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                  Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If comp throws.

                57. -
                  iterator find(const key_type & key);
                  +
                  iterator find(const key_type & key);

                  Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                58. template<typename KeyType, typename KeyTypeKeyCompare> 
                  -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                  + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                  Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                  Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If comp throws.

                59. -
                  const_iterator find(const key_type & key) const;
                  +
                  const_iterator find(const key_type & key) const;

                  Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                60. template<typename KeyType, typename KeyTypeKeyCompare> 
                  -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                  + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                  Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                  Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                  Complexity: Logarithmic.

                  Throws: If comp throws.

                61. -
                  std::pair< iterator, iterator > equal_range(const key_type & key);
                  +
                  std::pair< iterator, iterator > equal_range(const key_type & key);

                  Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                  @@ -720,7 +720,7 @@
                62. template<typename KeyType, typename KeyTypeKeyCompare> 
                     std::pair< iterator, iterator > 
                  -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                  + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                  Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                  Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                  Complexity: Logarithmic.

                  @@ -728,7 +728,7 @@
                63. std::pair< const_iterator, const_iterator > 
                  -equal_range(const key_type & key) const;
                  +equal_range(const key_type & key) const;

                  Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                  Complexity: Logarithmic.

                  Throws: If key_compare throws.

                  @@ -736,7 +736,7 @@
                64. template<typename KeyType, typename KeyTypeKeyCompare> 
                     std::pair< const_iterator, const_iterator > 
                  -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                  + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                  Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                  Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                  Complexity: Logarithmic.

                  @@ -744,7 +744,7 @@
                65. std::pair< iterator, iterator > 
                  -bounded_range(const key_type & lower_key, const key_type & upper_value, 
                  +bounded_range(const key_type & lower_key, const key_type & upper_value, 
                                 bool left_closed, bool right_closed);

                  Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                  If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                  @@ -759,7 +759,7 @@
                66. template<typename KeyType, typename KeyTypeKeyCompare> 
                     std::pair< iterator, iterator > 
                  -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                  +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                   KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                  Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                  upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                  @@ -775,7 +775,7 @@
                67. std::pair< const_iterator, const_iterator > 
                  -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                  +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                 bool left_closed, bool right_closed) const;

                  Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                  If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                  @@ -790,7 +790,7 @@
                68. template<typename KeyType, typename KeyTypeKeyCompare> 
                     std::pair< const_iterator, const_iterator > 
                  -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                  +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                   KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                  Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                  upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                  @@ -805,28 +805,28 @@

                  Note: Experimental function, the interface might change in future releases.

                69. -
                  iterator iterator_to(reference value);
                  +
                  iterator iterator_to(reference value);

                  Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                  Effects: Returns: a valid iterator i belonging to the set that points to the value

                  Complexity: Constant.

                  Throws: Nothing.

                70. -
                  const_iterator iterator_to(const_reference value) const;
                  +
                  const_iterator iterator_to(const_reference value) const;

                  Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                  Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                  Complexity: Constant.

                  Throws: Nothing.

                71. -
                  pointer unlink_leftmost_without_rebalance();
                  +
                  pointer unlink_leftmost_without_rebalance();

                  Effects: Unlinks the leftmost node from the container.

                  Complexity: Average complexity is constant time.

                  Throws: Nothing.

                  Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

                72. -
                  void replace_node(iterator replace_this, reference with_this);
                  +
                  void replace_node(iterator replace_this, reference with_this);

                  Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                  Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                  Complexity: Constant.

                  @@ -834,13 +834,13 @@

                  Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

                73. -
                  void rebalance();
                  +
                  void rebalance();

                  Effects: Rebalances the tree.

                  Throws: Nothing.

                  Complexity: Linear.

                74. -
                  iterator rebalance_subtree(iterator root);
                  +
                  iterator rebalance_subtree(iterator root);

                  Requires: old_root is a node of a tree.

                  Effects: Rebalances the subtree rooted at old_root.

                  Returns: The new root of the subtree.

                  @@ -849,32 +849,32 @@
                75. template<typename T, class... Options2> 
                  -  void merge_unique(bstree< T, Options2...> &);
                  + void merge_unique(bstree< T, Options2...> &);

                  Requires: "source" container's Options can only can differ in the comparison function from *this.

                  Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                  Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                  Throws: Nothing unless the comparison object throws.

                  Complexity: N log(a.size() + N) (N has the value source.size())

                76. -
                77.  while(it! = itend);
                78. +
                79.  while(it! = itend);
                80. template<typename T, class... Options2> 
                  -  void merge_equal(bstree< T, Options2...> &);
                  + void merge_equal(bstree< T, Options2...> &);

                  Requires: "source" container's Options can only can differ in the comparison function from *this.

                  Effects: Extracts each element in source and insert it into a using the comparison object of *this.

                  Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                  Throws: Nothing unless the comparison object throws.

                  Complexity: N log(a.size() + N) (N has the value source.size())

                81. -
                82.  while(it! = itend);
                83. +
                84.  while(it! = itend);
                85. -
                  template<typename ExtraChecker> void check(ExtraChecker extra_checker) const;
                  +
                  template<typename ExtraChecker> void check(ExtraChecker extra_checker) const;

                  Effects: Asserts the integrity of the container with additional checks provided by the user.

                  Complexity: Linear time.

                  Note: The method might not have effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions.

                86. -
                  void check() const;
                  +
                  void check() const;

                  Effects: Asserts the integrity of the container.

                  Complexity: Linear time.

                  Note: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions.

                  @@ -883,38 +883,38 @@

                -bstree public static functions

                +bstree public static functions
                1. -
                  static bstree & container_from_end_iterator(iterator end_iterator);
                  +
                  static bstree & container_from_end_iterator(iterator end_iterator);

                  Precondition: end_iterator must be a valid end iterator of the container.

                  Effects: Returns a const reference to the container associated to the end iterator

                  Throws: Nothing.

                  Complexity: Constant.

                2. -
                  static const bstree & container_from_end_iterator(const_iterator end_iterator);
                  +
                  static const bstree & container_from_end_iterator(const_iterator end_iterator);

                  Precondition: end_iterator must be a valid end const_iterator of the container.

                  Effects: Returns a const reference to the container associated to the iterator

                  Throws: Nothing.

                  Complexity: Constant.

                3. -
                  static bstree & container_from_iterator(iterator it);
                  +
                  static bstree & container_from_iterator(iterator it);

                  Precondition: it must be a valid iterator of the container.

                  Effects: Returns a const reference to the container associated to the iterator

                  Throws: Nothing.

                  Complexity: Logarithmic.

                4. -
                  static const bstree & container_from_iterator(const_iterator it);
                  +
                  static const bstree & container_from_iterator(const_iterator it);

                  Precondition: it must be a valid end const_iterator of container.

                  Effects: Returns a const reference to the container associated to the end iterator

                  Throws: Nothing.

                  Complexity: Logarithmic.

                5. -
                  static iterator s_iterator_to(reference value);
                  +
                  static iterator s_iterator_to(reference value);

                  Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                  Effects: Returns: a valid iterator i belonging to the set that points to the value

                  Complexity: Constant.

                  @@ -922,7 +922,7 @@

                  Note: This static function is available only if the value traits is stateless.

                6. -
                  static const_iterator s_iterator_to(const_reference value);
                  +
                  static const_iterator s_iterator_to(const_reference value);

                  Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                  Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                  Complexity: Constant.

                  @@ -930,7 +930,7 @@

                  Note: This static function is available only if the value traits is stateless.

                7. -
                  static void init_node(reference value);
                  +
                  static void init_node(reference value);

                  Requires: value shall not be in a container.

                  Effects: init_node puts the hook of a value in a well-known default state.

                  Throws: Nothing.

                  @@ -938,7 +938,7 @@

                  Note: This function puts the hook in the well-known default state used by auto_unlink and safe hooks.

                8. -
                  static void remove_node(reference value);
                  +
                  static void remove_node(reference value);

                  Effects: removes "value" from the container.

                  Throws: Nothing.

                  Complexity: Logarithmic time.

                  diff --git a/doc/html/boost/intrusive/bstree_algorithms.html b/doc/html/boost/intrusive/bstree_algorithms.html index 806f2ce852..6a126ab670 100644 --- a/doc/html/boost/intrusive/bstree_algorithms.html +++ b/doc/html/boost/intrusive/bstree_algorithms.html @@ -43,161 +43,161 @@ typedef insert_commit_data_t< node_ptr > insert_commit_data; typedef data_for_rebalance_t< node_ptr > data_for_rebalance; - // public static functions - static node_ptr begin_node(const const_node_ptr &); - static node_ptr end_node(const const_node_ptr &); - static node_ptr root_node(const const_node_ptr &); - static bool unique(const const_node_ptr &); - static node_ptr get_header(const const_node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, + // public static functions + static node_ptr begin_node(const const_node_ptr &); + static node_ptr end_node(const const_node_ptr &); + static node_ptr root_node(const const_node_ptr &); + static bool unique(const const_node_ptr &); + static node_ptr get_header(const const_node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &, + static void replace_node(const node_ptr &, const node_ptr &); + static void replace_node(const node_ptr &, const node_ptr &, const node_ptr &); - static node_ptr next_node(const node_ptr &); - static node_ptr prev_node(const node_ptr &); - static node_ptr minimum(node_ptr); - static node_ptr maximum(node_ptr); - static void init(const node_ptr &); - static bool inited(const const_node_ptr &); - static void init_header(const node_ptr &); + static node_ptr next_node(const node_ptr &); + static node_ptr prev_node(const node_ptr &); + static node_ptr minimum(node_ptr); + static node_ptr maximum(node_ptr); + static void init(const node_ptr &); + static bool inited(const const_node_ptr &); + static void init_header(const node_ptr &); template<typename Disposer> - static void clear_and_dispose(const node_ptr &, Disposer); - static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); - static std::size_t size(const const_node_ptr &); - static void swap_tree(const node_ptr &, const node_ptr &); - static bool is_header(const const_node_ptr &); + static void clear_and_dispose(const node_ptr &, Disposer); + static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); + static std::size_t size(const const_node_ptr &); + static void swap_tree(const node_ptr &, const node_ptr &); + static bool is_header(const const_node_ptr &); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, + bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, KeyNodePtrCompare, bool, bool); template<typename KeyType, typename KeyNodePtrCompare> static std::size_t - count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - lower_bound_range(const const_node_ptr &, const KeyType &, + lower_bound_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); - static void insert_unique_commit(const node_ptr &, const node_ptr &, + upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + static void insert_unique_commit(const node_ptr &, const node_ptr &, const insert_commit_data &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const KeyType &, + insert_unique_check(const const_node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const node_ptr &, + insert_unique_check(const const_node_ptr &, const node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); template<typename NodePtrCompare> static node_ptr - insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, + insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, NodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal_upper_bound(const node_ptr &, const node_ptr &, + insert_equal_upper_bound(const node_ptr &, const node_ptr &, NodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal_lower_bound(const node_ptr &, const node_ptr &, + insert_equal_lower_bound(const node_ptr &, const node_ptr &, NodePtrCompare); static node_ptr - insert_before(const node_ptr &, const node_ptr &, const node_ptr &); - static void push_back(const node_ptr &, const node_ptr &); - static void push_front(const node_ptr &, const node_ptr &); - static std::size_t depth(const_node_ptr); + insert_before(const node_ptr &, const node_ptr &, const node_ptr &); + static void push_back(const node_ptr &, const node_ptr &); + static void push_front(const node_ptr &, const node_ptr &); + static std::size_t depth(const_node_ptr); template<typename Cloner, typename Disposer> - static void clone(const const_node_ptr &, const node_ptr &, Cloner, + static void clone(const const_node_ptr &, const node_ptr &, Cloner, Disposer); - static void erase(const node_ptr &, const node_ptr &); + static void erase(const node_ptr &, const node_ptr &); template<typename NodePtrCompare> - static bool transfer_unique(const node_ptr &, NodePtrCompare, + static bool transfer_unique(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &); template<typename NodePtrCompare> - static void transfer_equal(const node_ptr &, NodePtrCompare, + static void transfer_equal(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &); - static void unlink(const node_ptr &); - static void rebalance(const node_ptr &); - static node_ptr rebalance_subtree(const node_ptr &); + static void unlink(const node_ptr &); + static void rebalance(const node_ptr &); + static node_ptr rebalance_subtree(const node_ptr &); template<typename Checker> - static void check(const const_node_ptr &, Checker, + static void check(const const_node_ptr &, Checker, typename Checker::return_type &); - // protected static functions + // protected static functions template<typename NodePtrCompare> - static bool transfer_unique(const node_ptr &, NodePtrCompare, + static bool transfer_unique(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &, data_for_rebalance &); template<typename NodePtrCompare> - static void transfer_equal(const node_ptr &, NodePtrCompare, + static void transfer_equal(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &, data_for_rebalance &); - static void erase(const node_ptr &, const node_ptr &, data_for_rebalance &); - static std::size_t subtree_size(const const_node_ptr &); - static bool is_left_child(const node_ptr &); - static bool is_right_child(const node_ptr &); - static void insert_before_check(const node_ptr &, const node_ptr &, + static void erase(const node_ptr &, const node_ptr &, data_for_rebalance &); + static std::size_t subtree_size(const const_node_ptr &); + static bool is_left_child(const node_ptr &); + static bool is_right_child(const node_ptr &); + static void insert_before_check(const node_ptr &, const node_ptr &, insert_commit_data &); - static void push_back_check(const node_ptr &, insert_commit_data &); - static void push_front_check(const node_ptr &, insert_commit_data &); + static void push_back_check(const node_ptr &, insert_commit_data &); + static void push_front_check(const node_ptr &, insert_commit_data &); template<typename NodePtrCompare> - static void insert_equal_check(const node_ptr &, const node_ptr &, + static void insert_equal_check(const node_ptr &, const node_ptr &, const node_ptr &, NodePtrCompare, insert_commit_data &); template<typename NodePtrCompare> - static void insert_equal_upper_bound_check(const node_ptr &, + static void insert_equal_upper_bound_check(const node_ptr &, const node_ptr &, NodePtrCompare, insert_commit_data &, std::size_t * = 0); template<typename NodePtrCompare> - static void insert_equal_lower_bound_check(const node_ptr &, + static void insert_equal_lower_bound_check(const node_ptr &, const node_ptr &, NodePtrCompare, insert_commit_data &, std::size_t * = 0); - static void insert_commit(const node_ptr &, const node_ptr &, + static void insert_commit(const node_ptr &, const node_ptr &, const insert_commit_data &); - static void set_child(const node_ptr &, const node_ptr &, const node_ptr &, + static void set_child(const node_ptr &, const node_ptr &, const node_ptr &, const bool); - static void rotate_left_no_parent_fix(const node_ptr &, const node_ptr &); - static void rotate_left(const node_ptr &, const node_ptr &, + static void rotate_left_no_parent_fix(const node_ptr &, const node_ptr &); + static void rotate_left(const node_ptr &, const node_ptr &, const node_ptr &, const node_ptr &); - static void rotate_right_no_parent_fix(const node_ptr &, const node_ptr &); - static void rotate_right(const node_ptr &, const node_ptr &, + static void rotate_right_no_parent_fix(const node_ptr &, const node_ptr &); + static void rotate_right(const node_ptr &, const node_ptr &, const node_ptr &, const node_ptr &); - // private static functions - static void subtree_to_vine(node_ptr, std::size_t &); - static void compress_subtree(node_ptr, std::size_t); - static void vine_to_subtree(const node_ptr &, std::size_t); - static node_ptr get_root(const node_ptr &); + // private static functions + static void subtree_to_vine(node_ptr, std::size_t &); + static void compress_subtree(node_ptr, std::size_t); + static void vine_to_subtree(const node_ptr &, std::size_t); + static node_ptr get_root(const node_ptr &); template<typename Cloner, typename Disposer> static node_ptr - clone_subtree(const const_node_ptr &, const node_ptr &, Cloner, Disposer, + clone_subtree(const const_node_ptr &, const node_ptr &, Cloner, Disposer, node_ptr &, node_ptr &); - template<typename Disposer> static void dispose_subtree(node_ptr, Disposer); + template<typename Disposer> static void dispose_subtree(node_ptr, Disposer); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - lower_bound_loop(node_ptr, node_ptr, const KeyType &, KeyNodePtrCompare); + lower_bound_loop(node_ptr, node_ptr, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - upper_bound_loop(node_ptr, node_ptr, const KeyType &, KeyNodePtrCompare); + upper_bound_loop(node_ptr, node_ptr, const KeyType &, KeyNodePtrCompare); template<typename Checker> - static void check_subtree(const const_node_ptr &, Checker, + static void check_subtree(const const_node_ptr &, Checker, typename Checker::return_type &); };
                @@ -285,45 +285,45 @@ header------------------------------>| |

                static void set_right(node_ptr n, node_ptr right);

                -bstree_algorithms public static functions

                +bstree_algorithms public static functions
                1. -
                  static node_ptr begin_node(const const_node_ptr & header);
                  +
                  static node_ptr begin_node(const const_node_ptr & header);

                  Requires: 'header' is the header node of a tree.

                  Effects: Returns the first node of the tree, the header if the tree is empty.

                  Complexity: Constant time.

                  Throws: Nothing.

                2. -
                  static node_ptr end_node(const const_node_ptr & header);
                  +
                  static node_ptr end_node(const const_node_ptr & header);

                  Requires: 'header' is the header node of a tree.

                  Effects: Returns the header of the tree.

                  Complexity: Constant time.

                  Throws: Nothing.

                3. -
                  static node_ptr root_node(const const_node_ptr & header);
                  +
                  static node_ptr root_node(const const_node_ptr & header);

                  Requires: 'header' is the header node of a tree.

                  Effects: Returns the root of the tree if any, header otherwise

                  Complexity: Constant time.

                  Throws: Nothing.

                4. -
                  static bool unique(const const_node_ptr & node);
                  +
                  static bool unique(const const_node_ptr & node);

                  Requires: 'node' is a node of the tree or a node initialized by init(...) or init_node.

                  Effects: Returns true if the node is initialized by init() or init_node().

                  Complexity: Constant time.

                  Throws: Nothing.

                5. -
                  static node_ptr get_header(const const_node_ptr & node);
                  +
                  static node_ptr get_header(const const_node_ptr & node);

                  Requires: 'node' is a node of the tree or a header node.

                  Effects: Returns the header of the tree.

                  Complexity: Logarithmic.

                  Throws: Nothing.

                6. -
                  static void swap_nodes(const node_ptr & node1, const node_ptr & node2);
                  +
                  static void swap_nodes(const node_ptr & node1, const node_ptr & node2);

                  Requires: node1 and node2 can't be header nodes of two trees.

                  Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

                  Complexity: Logarithmic.

                  @@ -332,7 +332,7 @@ header------------------------------>| |

                  Experimental function

                7. -
                  static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                  +
                  static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                                          const node_ptr & node2, const node_ptr & header2);

                  Requires: node1 and node2 can't be header nodes of two trees with header header1 and header2.

                  Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

                  @@ -342,7 +342,7 @@ header------------------------------>| |

                  Experimental function

                8. -
                  static void replace_node(const node_ptr & node_to_be_replaced, 
                  +
                  static void replace_node(const node_ptr & node_to_be_replaced, 
                                            const node_ptr & new_node);

                  Requires: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.

                  Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

                  @@ -351,7 +351,7 @@ header------------------------------>| |

                  Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function

                9. -
                  static void replace_node(const node_ptr & node_to_be_replaced, 
                  +
                  static void replace_node(const node_ptr & node_to_be_replaced, 
                                            const node_ptr & header, const node_ptr & new_node);

                  Requires: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.

                  Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

                  @@ -360,35 +360,35 @@ header------------------------------>| |

                  Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function

                10. -
                  static node_ptr next_node(const node_ptr & node);
                  +
                  static node_ptr next_node(const node_ptr & node);

                  Requires: 'node' is a node from the tree except the header.

                  Effects: Returns the next node of the tree.

                  Complexity: Average constant time.

                  Throws: Nothing.

                11. -
                  static node_ptr prev_node(const node_ptr & node);
                  +
                  static node_ptr prev_node(const node_ptr & node);

                  Requires: 'node' is a node from the tree except the leftmost node.

                  Effects: Returns the previous node of the tree.

                  Complexity: Average constant time.

                  Throws: Nothing.

                12. -
                  static node_ptr minimum(node_ptr node);
                  +
                  static node_ptr minimum(node_ptr node);

                  Requires: 'node' is a node of a tree but not the header.

                  Effects: Returns the minimum node of the subtree starting at p.

                  Complexity: Logarithmic to the size of the subtree.

                  Throws: Nothing.

                13. -
                  static node_ptr maximum(node_ptr node);
                  +
                  static node_ptr maximum(node_ptr node);

                  Requires: 'node' is a node of a tree but not the header.

                  Effects: Returns the maximum node of the subtree starting at p.

                  Complexity: Logarithmic to the size of the subtree.

                  Throws: Nothing.

                14. -
                  static void init(const node_ptr & node);
                  +
                  static void init(const node_ptr & node);

                  Requires: 'node' must not be part of any tree.

                  Effects: After the function unique(node) == true.

                  Complexity: Constant.

                  @@ -396,13 +396,13 @@ header------------------------------>| |

                  Nodes: If node is inserted in a tree, this function corrupts the tree.

                15. -
                  static bool inited(const const_node_ptr & node);
                  +
                  static bool inited(const const_node_ptr & node);

                  Effects: Returns true if node is in the same state as if called init(node)

                  Complexity: Constant.

                  Throws: Nothing.

                16. -
                  static void init_header(const node_ptr & header);
                  +
                  static void init_header(const node_ptr & header);

                  Requires: node must not be part of any tree.

                  Effects: Initializes the header to represent an empty tree. unique(header) == true.

                  Complexity: Constant.

                  @@ -411,14 +411,14 @@ header------------------------------>| |
                17. template<typename Disposer> 
                  -  static void clear_and_dispose(const node_ptr & header, Disposer disposer);
                  + static void clear_and_dispose(const node_ptr & header, Disposer disposer);

                  Requires: "disposer" must be an object function taking a node_ptr parameter and shouldn't throw.

                  Effects: Empties the target tree calling void disposer::operator()(const node_ptr &) for every node of the tree except the header.

                  Complexity: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.

                  Throws: If cloner functor throws. If this happens target nodes are disposed.

                18. -
                  static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);
                  +
                  static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);

                  Requires: header is the header of a tree.

                  Effects: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.

                  Complexity: Average complexity is constant time.

                  @@ -426,21 +426,21 @@ header------------------------------>| |

                  Notes: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree.

                19. -
                  static std::size_t size(const const_node_ptr & header);
                  +
                  static std::size_t size(const const_node_ptr & header);

                  Requires: node is a node of the tree but it's not the header.

                  Effects: Returns the number of nodes of the subtree.

                  Complexity: Linear time.

                  Throws: Nothing.

                20. -
                  static void swap_tree(const node_ptr & header1, const node_ptr & header2);
                  +
                  static void swap_tree(const node_ptr & header1, const node_ptr & header2);

                  Requires: header1 and header2 must be the header nodes of two trees.

                  Effects: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.

                  Complexity: Constant.

                  Throws: Nothing.

                21. -
                  static bool is_header(const const_node_ptr & p);
                  +
                  static bool is_header(const const_node_ptr & p);

                  Requires: p is a node of a tree.

                  Effects: Returns true if p is the header of the tree.

                  Complexity: Constant.

                  @@ -449,7 +449,7 @@ header------------------------------>| |
                22. template<typename KeyType, typename KeyNodePtrCompare> 
                     static node_ptr 
                  -  find(const const_node_ptr & header, const KeyType & key, 
                  +  find(const const_node_ptr & header, const KeyType & key, 
                          KeyNodePtrCompare comp);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                  Effects: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.

                  @@ -459,7 +459,7 @@ header------------------------------>| |
                23. template<typename KeyType, typename KeyNodePtrCompare> 
                     static std::pair< node_ptr, node_ptr > 
                  -  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                  +  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                                   const KeyType & upper_key, KeyNodePtrCompare comp, 
                                   bool left_closed, bool right_closed);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.

                  @@ -474,7 +474,7 @@ header------------------------------>| |
                24. template<typename KeyType, typename KeyNodePtrCompare> 
                     static std::size_t 
                  -  count(const const_node_ptr & header, const KeyType & key, 
                  +  count(const const_node_ptr & header, const KeyType & key, 
                           KeyNodePtrCompare comp);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                  Effects: Returns the number of elements with a key equivalent to "key" according to "comp".

                  @@ -484,7 +484,7 @@ header------------------------------>| |
                25. template<typename KeyType, typename KeyNodePtrCompare> 
                     static std::pair< node_ptr, node_ptr > 
                  -  equal_range(const const_node_ptr & header, const KeyType & key, 
                  +  equal_range(const const_node_ptr & header, const KeyType & key, 
                                 KeyNodePtrCompare comp);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                  Effects: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.

                  @@ -494,7 +494,7 @@ header------------------------------>| |
                26. template<typename KeyType, typename KeyNodePtrCompare> 
                     static std::pair< node_ptr, node_ptr > 
                  -  lower_bound_range(const const_node_ptr & header, const KeyType & key, 
                  +  lower_bound_range(const const_node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                  Effects: Returns an a pair of node_ptr delimiting a range containing the first element that is equivalent to "key" according to "comp" or an empty range that indicates the position where that element would be if there are no equivalent elements.

                  @@ -504,7 +504,7 @@ header------------------------------>| |
                27. template<typename KeyType, typename KeyNodePtrCompare> 
                     static node_ptr 
                  -  lower_bound(const const_node_ptr & header, const KeyType & key, 
                  +  lower_bound(const const_node_ptr & header, const KeyType & key, 
                                 KeyNodePtrCompare comp);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                  Effects: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.

                  @@ -514,7 +514,7 @@ header------------------------------>| |
                28. template<typename KeyType, typename KeyNodePtrCompare> 
                     static node_ptr 
                  -  upper_bound(const const_node_ptr & header, const KeyType & key, 
                  +  upper_bound(const const_node_ptr & header, const KeyType & key, 
                                 KeyNodePtrCompare comp);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                  Effects: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.

                  @@ -522,7 +522,7 @@ header------------------------------>| |

                  Throws: If "comp" throws.

                29. -
                  static void insert_unique_commit(const node_ptr & header, 
                  +
                  static void insert_unique_commit(const node_ptr & header, 
                                                    const node_ptr & new_value, 
                                                    const insert_commit_data & commit_data);

                  Requires: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".

                  @@ -534,7 +534,7 @@ header------------------------------>| |
                30. template<typename KeyType, typename KeyNodePtrCompare> 
                     static std::pair< node_ptr, bool > 
                  -  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
                  +  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
                                         KeyNodePtrCompare comp, 
                                         insert_commit_data & commit_data);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.

                  @@ -549,7 +549,7 @@ header------------------------------>| |
                31. template<typename KeyType, typename KeyNodePtrCompare> 
                     static std::pair< node_ptr, bool > 
                  -  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
                  +  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
                                         const KeyType & key, KeyNodePtrCompare comp, 
                                         insert_commit_data & commit_data);

                  Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.

                  @@ -564,7 +564,7 @@ header------------------------------>| |
                32. template<typename NodePtrCompare> 
                     static node_ptr 
                  -  insert_equal(const node_ptr & h, const node_ptr & hint, 
                  +  insert_equal(const node_ptr & h, const node_ptr & hint, 
                                  const node_ptr & new_node, NodePtrCompare comp);

                  Requires: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.

                  Effects: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).

                  @@ -574,7 +574,7 @@ header------------------------------>| |
                33. template<typename NodePtrCompare> 
                     static node_ptr 
                  -  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
                  +  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
                                              NodePtrCompare comp);

                  Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

                  Effects: Inserts new_node into the tree before the upper bound according to "comp".

                  @@ -584,7 +584,7 @@ header------------------------------>| |
                34. template<typename NodePtrCompare> 
                     static node_ptr 
                  -  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
                  +  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
                                              NodePtrCompare comp);

                  Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

                  Effects: Inserts new_node into the tree before the lower bound according to "comp".

                  @@ -593,7 +593,7 @@ header------------------------------>| |
                35. static node_ptr 
                  -insert_before(const node_ptr & header, const node_ptr & pos, 
                  +insert_before(const node_ptr & header, const node_ptr & pos, 
                                 const node_ptr & new_node);

                  Requires: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.

                  Effects: Inserts new_node into the tree before "pos".

                  @@ -602,7 +602,7 @@ header------------------------------>| |

                  Note: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken.

                36. -
                  static void push_back(const node_ptr & header, const node_ptr & new_node);
                  +
                  static void push_back(const node_ptr & header, const node_ptr & new_node);

                  Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.

                  Effects: Inserts new_node into the tree before "pos".

                  Complexity: Constant-time.

                  @@ -610,7 +610,7 @@ header------------------------------>| |

                  Note: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before".

                37. -
                  static void push_front(const node_ptr & header, const node_ptr & new_node);
                  +
                  static void push_front(const node_ptr & header, const node_ptr & new_node);

                  Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.

                  Effects: Inserts new_node into the tree before "pos".

                  Complexity: Constant-time.

                  @@ -618,7 +618,7 @@ header------------------------------>| |

                  Note: If "new_node" is greater than the lowest inserted key tree invariants are broken. This function is slightly faster than using "insert_before".

                38. -
                  static std::size_t depth(const_node_ptr node);
                  +
                  static std::size_t depth(const_node_ptr node);

                  Requires: 'node' can't be a header node.

                  Effects: Calculates the depth of a node: the depth of a node is the length (number of edges) of the path from the root to that node. (The root node is at depth 0.)

                  Complexity: Logarithmic to the number of nodes in the tree.

                  @@ -626,7 +626,7 @@ header------------------------------>| |
                39. template<typename Cloner, typename Disposer> 
                  -  static void clone(const const_node_ptr & source_header, 
                  +  static void clone(const const_node_ptr & source_header, 
                                       const node_ptr & target_header, Cloner cloner, 
                                       Disposer disposer);

                  Requires: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.

                  @@ -636,7 +636,7 @@ header------------------------------>| |

                  Throws: If cloner functor throws. If this happens target nodes are disposed.

                40. -
                  static void erase(const node_ptr & header, const node_ptr & z);
                  +
                  static void erase(const node_ptr & header, const node_ptr & z);

                  Requires: header must be the header of a tree, z a node of that tree and z != header.

                  Effects: Erases node "z" from the tree with header "header".

                  Complexity: Amortized constant time.

                  @@ -644,7 +644,7 @@ header------------------------------>| |
                41. template<typename NodePtrCompare> 
                  -  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                  +  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                                                 const node_ptr & header2, const node_ptr & z);

                  Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

                  Effects: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.

                  @@ -654,7 +654,7 @@ header------------------------------>| |
                42. template<typename NodePtrCompare> 
                  -  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                  +  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                                                const node_ptr & header2, const node_ptr & z);

                  Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

                  Effects: Transfers node "z" from tree1 to tree2.

                  @@ -662,21 +662,21 @@ header------------------------------>| |

                  Throws: If the comparison throws.

                43. -
                  static void unlink(const node_ptr & node);
                  +
                  static void unlink(const node_ptr & node);

                  Requires: node is a tree node but not the header.

                  Effects: Unlinks the node and rebalances the tree.

                  Complexity: Average complexity is constant time.

                  Throws: Nothing.

                44. -
                  static void rebalance(const node_ptr & header);
                  +
                  static void rebalance(const node_ptr & header);

                  Requires: header must be the header of a tree.

                  Effects: Rebalances the tree.

                  Throws: Nothing.

                  Complexity: Linear.

                45. -
                  static node_ptr rebalance_subtree(const node_ptr & old_root);
                  +
                  static node_ptr rebalance_subtree(const node_ptr & old_root);

                  Requires: old_root is a node of a tree. It shall not be null.

                  Effects: Rebalances the subtree rooted at old_root.

                  Returns: The new root of the subtree.

                  @@ -685,7 +685,7 @@ header------------------------------>| |
                46. template<typename Checker> 
                  -  static void check(const const_node_ptr & header, Checker checker, 
                  +  static void check(const const_node_ptr & header, Checker checker, 
                                       typename Checker::return_type & checker_return);

                  Effects: Asserts the integrity of the container with additional checks provided by the user.

                  Requires: header must be the header of a tree.

                  @@ -696,86 +696,86 @@ header------------------------------>| |

                -bstree_algorithms protected static functions

                +bstree_algorithms protected static functions
                1. template<typename NodePtrCompare> 
                  -  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                  +  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                                                 const node_ptr & header2, const node_ptr & z, 
                                                 data_for_rebalance & info);
                2. template<typename NodePtrCompare> 
                  -  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                  +  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                                                const node_ptr & header2, const node_ptr & z, 
                                                data_for_rebalance & info);
                3. -
                4. static void erase(const node_ptr & header, const node_ptr & z, 
                  +
                5. static void erase(const node_ptr & header, const node_ptr & z, 
                                     data_for_rebalance & info);
                6. -
                  static std::size_t subtree_size(const const_node_ptr & subtree);
                  +
                  static std::size_t subtree_size(const const_node_ptr & subtree);

                  Requires: node is a node of the tree but it's not the header.

                  Effects: Returns the number of nodes of the subtree.

                  Complexity: Linear time.

                  Throws: Nothing.

                7. -
                  static bool is_left_child(const node_ptr & p);
                  +
                  static bool is_left_child(const node_ptr & p);

                  Requires: p is a node of a tree.

                  Effects: Returns true if p is a left child.

                  Complexity: Constant.

                  Throws: Nothing.

                8. -
                  static bool is_right_child(const node_ptr & p);
                  +
                  static bool is_right_child(const node_ptr & p);

                  Requires: p is a node of a tree.

                  Effects: Returns true if p is a right child.

                  Complexity: Constant.

                  Throws: Nothing.

                9. -
                10. static void insert_before_check(const node_ptr & header, const node_ptr & pos, 
                  +
                11. static void insert_before_check(const node_ptr & header, const node_ptr & pos, 
                                                   insert_commit_data & commit_data);
                12. -
                13. static void push_back_check(const node_ptr & header, 
                  +
                14. static void push_back_check(const node_ptr & header, 
                                               insert_commit_data & commit_data);
                15. -
                16. static void push_front_check(const node_ptr & header, 
                  +
                17. static void push_front_check(const node_ptr & header, 
                                                insert_commit_data & commit_data);
                18. template<typename NodePtrCompare> 
                  -  static void insert_equal_check(const node_ptr & header, 
                  +  static void insert_equal_check(const node_ptr & header, 
                                                    const node_ptr & hint, 
                                                    const node_ptr & new_node, 
                                                    NodePtrCompare comp, 
                                                    insert_commit_data & commit_data);
                19. template<typename NodePtrCompare> 
                  -  static void insert_equal_upper_bound_check(const node_ptr & h, 
                  +  static void insert_equal_upper_bound_check(const node_ptr & h, 
                                                                const node_ptr & new_node, 
                                                                NodePtrCompare comp, 
                                                                insert_commit_data & commit_data, 
                                                                std::size_t * pdepth = 0);
                20. template<typename NodePtrCompare> 
                  -  static void insert_equal_lower_bound_check(const node_ptr & h, 
                  +  static void insert_equal_lower_bound_check(const node_ptr & h, 
                                                                const node_ptr & new_node, 
                                                                NodePtrCompare comp, 
                                                                insert_commit_data & commit_data, 
                                                                std::size_t * pdepth = 0);
                21. -
                22. static void insert_commit(const node_ptr & header, const node_ptr & new_node, 
                  +
                23. static void insert_commit(const node_ptr & header, const node_ptr & new_node, 
                                             const insert_commit_data & commit_data);
                24. -
                25. static void set_child(const node_ptr & header, const node_ptr & new_child, 
                  +
                26. static void set_child(const node_ptr & header, const node_ptr & new_child, 
                                         const node_ptr & new_parent, const bool link_left);
                27. -
                28. static void rotate_left_no_parent_fix(const node_ptr & p, 
                  +
                29. static void rotate_left_no_parent_fix(const node_ptr & p, 
                                                         const node_ptr & p_right);
                30. -
                31. static void rotate_left(const node_ptr & p, const node_ptr & p_right, 
                  +
                32. static void rotate_left(const node_ptr & p, const node_ptr & p_right, 
                                           const node_ptr & p_parent, const node_ptr & header);
                33. -
                34. static void rotate_right_no_parent_fix(const node_ptr & p, 
                  +
                35. static void rotate_right_no_parent_fix(const node_ptr & p, 
                                                          const node_ptr & p_left);
                36. -
                37. static void rotate_right(const node_ptr & p, const node_ptr & p_left, 
                  +
                38. static void rotate_right(const node_ptr & p, const node_ptr & p_left, 
                                            const node_ptr & p_parent, const node_ptr & header);

                -bstree_algorithms private static functions

                +bstree_algorithms private static functions
                  -
                1. static void subtree_to_vine(node_ptr vine_tail, std::size_t & size);
                2. -
                3. static void compress_subtree(node_ptr scanner, std::size_t count);
                4. -
                5. static void vine_to_subtree(const node_ptr & super_root, std::size_t count);
                6. +
                7. static void subtree_to_vine(node_ptr vine_tail, std::size_t & size);
                8. +
                9. static void compress_subtree(node_ptr scanner, std::size_t count);
                10. +
                11. static void vine_to_subtree(const node_ptr & super_root, std::size_t count);
                12. -
                  static node_ptr get_root(const node_ptr & node);
                  +
                  static node_ptr get_root(const node_ptr & node);

                  Requires: "n" must be a node inserted in a tree.

                  Effects: Returns a pointer to the header node of the tree.

                  Complexity: Logarithmic.

                  @@ -783,22 +783,22 @@ header------------------------------>| |
                13. template<typename Cloner, typename Disposer> 
                     static node_ptr 
                  -  clone_subtree(const const_node_ptr & source_parent, 
                  +  clone_subtree(const const_node_ptr & source_parent, 
                                   const node_ptr & target_parent, Cloner cloner, 
                                   Disposer disposer, node_ptr & leftmost_out, 
                                   node_ptr & rightmost_out);
                14. template<typename Disposer> 
                  -  static void dispose_subtree(node_ptr x, Disposer disposer);
                15. + static void dispose_subtree(node_ptr x, Disposer disposer);
                16. template<typename KeyType, typename KeyNodePtrCompare> 
                     static node_ptr 
                  -  lower_bound_loop(node_ptr x, node_ptr y, const KeyType & key, 
                  +  lower_bound_loop(node_ptr x, node_ptr y, const KeyType & key, 
                                      KeyNodePtrCompare comp);
                17. template<typename KeyType, typename KeyNodePtrCompare> 
                     static node_ptr 
                  -  upper_bound_loop(node_ptr x, node_ptr y, const KeyType & key, 
                  +  upper_bound_loop(node_ptr x, node_ptr y, const KeyType & key, 
                                      KeyNodePtrCompare comp);
                18. template<typename Checker> 
                  -  static void check_subtree(const const_node_ptr & node, Checker checker, 
                  +  static void check_subtree(const const_node_ptr & node, Checker checker, 
                                               typename Checker::return_type & check_return);
                diff --git a/doc/html/boost/intrusive/circular_list_algorithms.html b/doc/html/boost/intrusive/circular_list_algorithms.html index 8c7937ffa4..2190d365e2 100644 --- a/doc/html/boost/intrusive/circular_list_algorithms.html +++ b/doc/html/boost/intrusive/circular_list_algorithms.html @@ -51,30 +51,30 @@ node_ptr beg_2st_partition; }; - // public static functions - static void init(const node_ptr &); - static bool inited(const const_node_ptr &); - static void init_header(const node_ptr &); - static bool unique(const const_node_ptr &); - static std::size_t count(const const_node_ptr &); - static node_ptr unlink(const node_ptr &); - static void unlink(const node_ptr &, const node_ptr &); - static void link_before(const node_ptr &, const node_ptr &); - static void link_after(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &); - static void transfer(const node_ptr &, const node_ptr &, const node_ptr &); - static void transfer(const node_ptr &, const node_ptr &); - static void reverse(const node_ptr &); - static void move_backwards(const node_ptr &, std::size_t); - static void move_forward(const node_ptr &, std::size_t); - static std::size_t distance(const const_node_ptr &, const const_node_ptr &); + // public static functions + static void init(const node_ptr &); + static bool inited(const const_node_ptr &); + static void init_header(const node_ptr &); + static bool unique(const const_node_ptr &); + static std::size_t count(const const_node_ptr &); + static node_ptr unlink(const node_ptr &); + static void unlink(const node_ptr &, const node_ptr &); + static void link_before(const node_ptr &, const node_ptr &); + static void link_after(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &); + static void transfer(const node_ptr &, const node_ptr &, const node_ptr &); + static void transfer(const node_ptr &, const node_ptr &); + static void reverse(const node_ptr &); + static void move_backwards(const node_ptr &, std::size_t); + static void move_forward(const node_ptr &, std::size_t); + static std::size_t distance(const const_node_ptr &, const const_node_ptr &); template<typename Pred> - static void stable_partition(node_ptr, const node_ptr &, Pred, + static void stable_partition(node_ptr, const node_ptr &, Pred, stable_partition_info &); - // private static functions - static void swap_prev(const node_ptr &, const node_ptr &); - static void swap_next(const node_ptr &, const node_ptr &); + // private static functions + static void swap_prev(const node_ptr &, const node_ptr &); + static void swap_next(const node_ptr &, const node_ptr &); };

                Description

                @@ -91,70 +91,70 @@

                static void set_next(node_ptr n, node_ptr next);

                -circular_list_algorithms public static functions

                +circular_list_algorithms public static functions
                1. -
                  static void init(const node_ptr & this_node);
                  +
                  static void init(const node_ptr & this_node);

                  Effects: Constructs an non-used list element, so that inited(this_node) == true

                  Complexity: Constant

                  Throws: Nothing.

                2. -
                  static bool inited(const const_node_ptr & this_node);
                  +
                  static bool inited(const const_node_ptr & this_node);

                  Effects: Returns true is "this_node" is in a non-used state as if it was initialized by the "init" function.

                  Complexity: Constant

                  Throws: Nothing.

                3. -
                  static void init_header(const node_ptr & this_node);
                  +
                  static void init_header(const node_ptr & this_node);

                  Effects: Constructs an empty list, making this_node the only node of the circular list: NodeTraits::get_next(this_node) == NodeTraits::get_previous(this_node) == this_node.

                  Complexity: Constant

                  Throws: Nothing.

                4. -
                  static bool unique(const const_node_ptr & this_node);
                  +
                  static bool unique(const const_node_ptr & this_node);

                  Requires: this_node must be in a circular list or be an empty circular list.

                  Effects: Returns true is "this_node" is the only node of a circular list: return NodeTraits::get_next(this_node) == this_node

                  Complexity: Constant

                  Throws: Nothing.

                5. -
                  static std::size_t count(const const_node_ptr & this_node);
                  +
                  static std::size_t count(const const_node_ptr & this_node);

                  Requires: this_node must be in a circular list or be an empty circular list.

                  Effects: Returns the number of nodes in a circular list. If the circular list is empty, returns 1.

                  Complexity: Linear

                  Throws: Nothing.

                6. -
                  static node_ptr unlink(const node_ptr & this_node);
                  +
                  static node_ptr unlink(const node_ptr & this_node);

                  Requires: this_node must be in a circular list or be an empty circular list.

                  Effects: Unlinks the node from the circular list.

                  Complexity: Constant

                  Throws: Nothing.

                7. -
                  static void unlink(const node_ptr & b, const node_ptr & e);
                  +
                  static void unlink(const node_ptr & b, const node_ptr & e);

                  Requires: b and e must be nodes of the same circular list or an empty range.

                  Effects: Unlinks the node [b, e) from the circular list.

                  Complexity: Constant

                  Throws: Nothing.

                8. -
                  static void link_before(const node_ptr & nxt_node, const node_ptr & this_node);
                  +
                  static void link_before(const node_ptr & nxt_node, const node_ptr & this_node);

                  Requires: nxt_node must be a node of a circular list.

                  Effects: Links this_node before nxt_node in the circular list.

                  Complexity: Constant

                  Throws: Nothing.

                9. -
                  static void link_after(const node_ptr & prev_node, const node_ptr & this_node);
                  +
                  static void link_after(const node_ptr & prev_node, const node_ptr & this_node);

                  Requires: prev_node must be a node of a circular list.

                  Effects: Links this_node after prev_node in the circular list.

                  Complexity: Constant

                  Throws: Nothing.

                10. -
                  static void swap_nodes(const node_ptr & this_node, 
                  +
                  static void swap_nodes(const node_ptr & this_node, 
                                          const node_ptr & other_node);

                  Requires: this_node and other_node must be nodes inserted in circular lists or be empty circular lists.

                  Effects: Swaps the position of the nodes: this_node is inserted in other_nodes position in the second circular list and the other_node is inserted in this_node's position in the first circular list.

                  @@ -162,56 +162,56 @@

                  Throws: Nothing.

                11. -
                  static void transfer(const node_ptr & p, const node_ptr & b, 
                  +
                  static void transfer(const node_ptr & p, const node_ptr & b, 
                                        const node_ptr & e);

                  Requires: b and e must be nodes of the same circular list or an empty range. and p must be a node of a different circular list or may not be an iterator in Effects: Removes the nodes from [b, e) range from their circular list and inserts them before p in p's circular list.

                  Complexity: Constant

                  Throws: Nothing.

                12. -
                  static void transfer(const node_ptr & p, const node_ptr & i);
                  +
                  static void transfer(const node_ptr & p, const node_ptr & i);

                  Requires: i must a node of a circular list and p must be a node of a different circular list.

                  Effects: Removes the node i from its circular list and inserts it before p in p's circular list. If p == i or p == NodeTraits::get_next(i), this function is a null operation.

                  Complexity: Constant

                  Throws: Nothing.

                13. -
                  static void reverse(const node_ptr & p);
                  +
                  static void reverse(const node_ptr & p);

                  Effects: Reverses the order of elements in the list.

                  Throws: Nothing.

                  Complexity: This function is linear time.

                14. -
                  static void move_backwards(const node_ptr & p, std::size_t n);
                  +
                  static void move_backwards(const node_ptr & p, std::size_t n);

                  Effects: Moves the node p n positions towards the end of the list.

                  Throws: Nothing.

                  Complexity: Linear to the number of moved positions.

                15. -
                  static void move_forward(const node_ptr & p, std::size_t n);
                  +
                  static void move_forward(const node_ptr & p, std::size_t n);

                  Effects: Moves the node p n positions towards the beginning of the list.

                  Throws: Nothing.

                  Complexity: Linear to the number of moved positions.

                16. static std::size_t 
                  -distance(const const_node_ptr & f, const const_node_ptr & l);
                  +distance(const const_node_ptr & f, const const_node_ptr & l);

                  Requires: f and l must be in a circular list.

                  Effects: Returns the number of nodes in the range [f, l).

                  Complexity: Linear

                  Throws: Nothing.

                17. template<typename Pred> 
                  -  static void stable_partition(node_ptr beg, const node_ptr & end, Pred pred, 
                  +  static void stable_partition(node_ptr beg, const node_ptr & end, Pred pred, 
                                                  stable_partition_info & info);

                -circular_list_algorithms private static functions

                +circular_list_algorithms private static functions
                  -
                1. static void swap_prev(const node_ptr & this_node, const node_ptr & other_node);
                2. -
                3. static void swap_next(const node_ptr & this_node, const node_ptr & other_node);
                4. +
                5. static void swap_prev(const node_ptr & this_node, const node_ptr & other_node);
                6. +
                7. static void swap_next(const node_ptr & this_node, const node_ptr & other_node);
                diff --git a/doc/html/boost/intrusive/circular_slist_algorithms.html b/doc/html/boost/intrusive/circular_slist_algorithms.html index 687afe303b..057858a53d 100644 --- a/doc/html/boost/intrusive/circular_slist_algorithms.html +++ b/doc/html/boost/intrusive/circular_slist_algorithms.html @@ -41,26 +41,26 @@ typedef NodeTraits::const_node_ptr const_node_ptr; typedef NodeTraits node_traits; - // public static functions - static void init(node_ptr); - static bool unique(const_node_ptr); - static bool inited(const_node_ptr); - static void unlink_after(node_ptr); - static void unlink_after(node_ptr, node_ptr); - static void link_after(node_ptr, node_ptr); - static void transfer_after(node_ptr, node_ptr, node_ptr); - static void init_header(const node_ptr &); - static node_ptr get_previous_node(const node_ptr &, const node_ptr &); - static node_ptr get_previous_node(const node_ptr &); - static node_ptr get_previous_previous_node(const node_ptr &); - static node_ptr get_previous_previous_node(node_ptr, const node_ptr &); - static std::size_t count(const const_node_ptr &); - static void unlink(const node_ptr &); - static void link_before(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &); - static void reverse(const node_ptr &); - static node_ptr move_backwards(const node_ptr &, std::size_t); - static node_ptr move_forward(const node_ptr &, std::size_t); + // public static functions + static void init(node_ptr); + static bool unique(const_node_ptr); + static bool inited(const_node_ptr); + static void unlink_after(node_ptr); + static void unlink_after(node_ptr, node_ptr); + static void link_after(node_ptr, node_ptr); + static void transfer_after(node_ptr, node_ptr, node_ptr); + static void init_header(const node_ptr &); + static node_ptr get_previous_node(const node_ptr &, const node_ptr &); + static node_ptr get_previous_node(const node_ptr &); + static node_ptr get_previous_previous_node(const node_ptr &); + static node_ptr get_previous_previous_node(node_ptr, const node_ptr &); + static std::size_t count(const const_node_ptr &); + static void unlink(const node_ptr &); + static void link_before(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &); + static void reverse(const node_ptr &); + static node_ptr move_backwards(const node_ptr &, std::size_t); + static node_ptr move_forward(const node_ptr &, std::size_t); };

                Description

                @@ -75,78 +75,78 @@

                static void set_next(node_ptr n, node_ptr next);

                -circular_slist_algorithms public static functions

                +circular_slist_algorithms public static functions
                1. -
                  static void init(node_ptr this_node);
                  +
                  static void init(node_ptr this_node);

                  Effects: Constructs an non-used list element, putting the next pointer to null: NodeTraits::get_next(this_node) == node_ptr()

                  Complexity: Constant

                  Throws: Nothing.

                2. -
                  static bool unique(const_node_ptr this_node);
                  +
                  static bool unique(const_node_ptr this_node);

                  Requires: this_node must be in a circular list or be an empty circular list.

                  Effects: Returns true is "this_node" is the only node of a circular list: or it's a not inserted node: return node_ptr() == NodeTraits::get_next(this_node) || NodeTraits::get_next(this_node) == this_node

                  Complexity: Constant

                  Throws: Nothing.

                3. -
                  static bool inited(const_node_ptr this_node);
                  +
                  static bool inited(const_node_ptr this_node);

                  Effects: Returns true is "this_node" has the same state as if it was inited using "init(node_ptr)"

                  Complexity: Constant

                  Throws: Nothing.

                4. -
                  static void unlink_after(node_ptr prev_node);
                  +
                  static void unlink_after(node_ptr prev_node);

                  Requires: prev_node must be in a circular list or be an empty circular list.

                  Effects: Unlinks the next node of prev_node from the circular list.

                  Complexity: Constant

                  Throws: Nothing.

                5. -
                  static void unlink_after(node_ptr prev_node, node_ptr last_node);
                  +
                  static void unlink_after(node_ptr prev_node, node_ptr last_node);

                  Requires: prev_node and last_node must be in a circular list or be an empty circular list.

                  Effects: Unlinks the range (prev_node, last_node) from the circular list.

                  Complexity: Constant

                  Throws: Nothing.

                6. -
                  static void link_after(node_ptr prev_node, node_ptr this_node);
                  +
                  static void link_after(node_ptr prev_node, node_ptr this_node);

                  Requires: prev_node must be a node of a circular list.

                  Effects: Links this_node after prev_node in the circular list.

                  Complexity: Constant

                  Throws: Nothing.

                7. -
                  static void transfer_after(node_ptr p, node_ptr b, node_ptr e);
                  +
                  static void transfer_after(node_ptr p, node_ptr b, node_ptr e);

                  Requires: b and e must be nodes of the same circular list or an empty range. and p must be a node of a different circular list.

                  Effects: Removes the nodes from (b, e] range from their circular list and inserts them after p in p's circular list.

                  Complexity: Constant

                  Throws: Nothing.

                8. -
                  static void init_header(const node_ptr & this_node);
                  +
                  static void init_header(const node_ptr & this_node);

                  Effects: Constructs an empty list, making this_node the only node of the circular list: NodeTraits::get_next(this_node) == this_node.

                  Complexity: Constant

                  Throws: Nothing.

                9. static node_ptr 
                  -get_previous_node(const node_ptr & prev_init_node, const node_ptr & this_node);
                  +get_previous_node(const node_ptr & prev_init_node, const node_ptr & this_node);

                  Requires: this_node and prev_init_node must be in the same circular list.

                  Effects: Returns the previous node of this_node in the circular list starting. the search from prev_init_node. The first node checked for equality is NodeTraits::get_next(prev_init_node).

                  Complexity: Linear to the number of elements between prev_init_node and this_node.

                  Throws: Nothing.

                10. -
                  static node_ptr get_previous_node(const node_ptr & this_node);
                  +
                  static node_ptr get_previous_node(const node_ptr & this_node);

                  Requires: this_node must be in a circular list or be an empty circular list.

                  Effects: Returns the previous node of this_node in the circular list.

                  Complexity: Linear to the number of elements in the circular list.

                  Throws: Nothing.

                11. -
                  static node_ptr get_previous_previous_node(const node_ptr & this_node);
                  +
                  static node_ptr get_previous_previous_node(const node_ptr & this_node);

                  Requires: this_node must be in a circular list or be an empty circular list.

                  Effects: Returns the previous node of the previous node of this_node in the circular list.

                  Complexity: Linear to the number of elements in the circular list.

                  @@ -154,35 +154,35 @@
                12. static node_ptr 
                  -get_previous_previous_node(node_ptr p, const node_ptr & this_node);
                  +get_previous_previous_node(node_ptr p, const node_ptr & this_node);

                  Requires: this_node and p must be in the same circular list.

                  Effects: Returns the previous node of the previous node of this_node in the circular list starting. the search from p. The first node checked for equality is NodeTraits::get_next((NodeTraits::get_next(p)).

                  Complexity: Linear to the number of elements in the circular list.

                  Throws: Nothing.

                13. -
                  static std::size_t count(const const_node_ptr & this_node);
                  +
                  static std::size_t count(const const_node_ptr & this_node);

                  Requires: this_node must be in a circular list or be an empty circular list.

                  Effects: Returns the number of nodes in a circular list. If the circular list is empty, returns 1.

                  Complexity: Linear

                  Throws: Nothing.

                14. -
                  static void unlink(const node_ptr & this_node);
                  +
                  static void unlink(const node_ptr & this_node);

                  Requires: this_node must be in a circular list, be an empty circular list or be inited.

                  Effects: Unlinks the node from the circular list.

                  Complexity: Linear to the number of elements in the circular list

                  Throws: Nothing.

                15. -
                  static void link_before(const node_ptr & nxt_node, const node_ptr & this_node);
                  +
                  static void link_before(const node_ptr & nxt_node, const node_ptr & this_node);

                  Requires: nxt_node must be a node of a circular list.

                  Effects: Links this_node before nxt_node in the circular list.

                  Complexity: Linear to the number of elements in the circular list.

                  Throws: Nothing.

                16. -
                  static void swap_nodes(const node_ptr & this_node, 
                  +
                  static void swap_nodes(const node_ptr & this_node, 
                                          const node_ptr & other_node);

                  Requires: this_node and other_node must be nodes inserted in circular lists or be empty circular lists.

                  Effects: Swaps the position of the nodes: this_node is inserted in other_nodes position in the second circular list and the other_node is inserted in this_node's position in the first circular list.

                  @@ -190,20 +190,20 @@

                  Throws: Nothing.

                17. -
                  static void reverse(const node_ptr & p);
                  +
                  static void reverse(const node_ptr & p);

                  Effects: Reverses the order of elements in the list.

                  Throws: Nothing.

                  Complexity: This function is linear to the contained elements.

                18. -
                  static node_ptr move_backwards(const node_ptr & p, std::size_t n);
                  +
                  static node_ptr move_backwards(const node_ptr & p, std::size_t n);

                  Effects: Moves the node p n positions towards the end of the list.

                  Returns: The previous node of p after the function if there has been any movement, Null if n leads to no movement.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements plus the number moved positions.

                19. -
                  static node_ptr move_forward(const node_ptr & p, std::size_t n);
                  +
                  static node_ptr move_forward(const node_ptr & p, std::size_t n);

                  Effects: Moves the node p n positions towards the beginning of the list.

                  Returns: The previous node of p after the function if there has been any movement, Null if n leads equals to no movement.

                  Throws: Nothing.

                  diff --git a/doc/html/boost/intrusive/derivation_value_traits.html b/doc/html/boost/intrusive/derivation_value_traits.html index ac523cf8ef..e36ce860ff 100644 --- a/doc/html/boost/intrusive/derivation_value_traits.html +++ b/doc/html/boost/intrusive/derivation_value_traits.html @@ -45,11 +45,11 @@ typedef boost::intrusive::pointer_traits< pointer >::reference reference; typedef boost::intrusive::pointer_traits< const_pointer >::reference const_reference; - // public static functions - static node_ptr to_node_ptr(reference); - static const_node_ptr to_node_ptr(const_reference); - static pointer to_value_ptr(const node_ptr &); - static const_pointer to_value_ptr(const const_node_ptr &); + // public static functions + static node_ptr to_node_ptr(reference); + static const_node_ptr to_node_ptr(const_reference); + static pointer to_value_ptr(const node_ptr &); + static const_pointer to_value_ptr(const const_node_ptr &); // public data members static const link_mode_type link_mode; @@ -59,12 +59,12 @@

                  This value traits template is used to create value traits from user defined node traits where value_traits::value_type will derive from node_traits::node

                  -derivation_value_traits public static functions

                  +derivation_value_traits public static functions
                    -
                  1. static node_ptr to_node_ptr(reference value);
                  2. -
                  3. static const_node_ptr to_node_ptr(const_reference value);
                  4. -
                  5. static pointer to_value_ptr(const node_ptr & n);
                  6. -
                  7. static const_pointer to_value_ptr(const const_node_ptr & n);
                  8. +
                  9. static node_ptr to_node_ptr(reference value);
                  10. +
                  11. static const_node_ptr to_node_ptr(const_reference value);
                  12. +
                  13. static pointer to_value_ptr(const node_ptr & n);
                  14. +
                  15. static const_pointer to_value_ptr(const const_node_ptr & n);
                diff --git a/doc/html/boost/intrusive/get_parent_fro_idp55114128.html b/doc/html/boost/intrusive/get_parent_fro_idp55114128.html deleted file mode 100644 index 2ea489edd0..0000000000 --- a/doc/html/boost/intrusive/get_parent_fro_idp55114128.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function template get_parent_from_member - - - - - - - - -
    - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template get_parent_from_member

    -

    boost::intrusive::get_parent_from_member

    -
    -

    Synopsis

    -
    // In header: <boost/intrusive/parent_from_member.hpp>
    -
    -
    -template<typename Parent, typename Member> 
    -  Parent * get_parent_from_member(Member * member, 
    -                                  const Member Parent::* ptr_to_member);
    -
    -

    Description

    -

    Given a pointer to a member and its corresponding pointer to data member, this function returns the pointer of the parent containing that member. Note: this function does not work with pointer to members that rely on virtual inheritance.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/intrusive/get_parent_fro_idp55118400.html b/doc/html/boost/intrusive/get_parent_fro_idp55118400.html deleted file mode 100644 index a67b4341c3..0000000000 --- a/doc/html/boost/intrusive/get_parent_fro_idp55118400.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Function template get_parent_from_member - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template get_parent_from_member

    -

    boost::intrusive::get_parent_from_member

    -
    -

    Synopsis

    -
    // In header: <boost/intrusive/parent_from_member.hpp>
    -
    -
    -template<typename Parent, typename Member> 
    -  const Parent * 
    -  get_parent_from_member(const Member * member, 
    -                         const Member Parent::* ptr_to_member);
    -
    -

    Description

    -

    Given a const pointer to a member and its corresponding const pointer to data member, this function returns the const pointer of the parent containing that member. Note: this function does not work with pointer to members that rely on virtual inheritance.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/intrusive/get_parent_fro_idp55894848.html b/doc/html/boost/intrusive/get_parent_fro_idp55894848.html new file mode 100644 index 0000000000..df9a53189e --- /dev/null +++ b/doc/html/boost/intrusive/get_parent_fro_idp55894848.html @@ -0,0 +1,57 @@ + + + + +Function template get_parent_from_member + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template get_parent_from_member

    +

    boost::intrusive::get_parent_from_member

    +
    +

    Synopsis

    +
    // In header: <boost/intrusive/parent_from_member.hpp>
    +
    +
    +template<typename Parent, typename Member> 
    +  Parent * get_parent_from_member(Member * member, 
    +                                  const Member Parent::* ptr_to_member);
    +
    +

    Description

    +

    Given a pointer to a member and its corresponding pointer to data member, this function returns the pointer of the parent containing that member. Note: this function does not work with pointer to members that rely on virtual inheritance.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/intrusive/get_parent_fro_idp55899120.html b/doc/html/boost/intrusive/get_parent_fro_idp55899120.html new file mode 100644 index 0000000000..110694d499 --- /dev/null +++ b/doc/html/boost/intrusive/get_parent_fro_idp55899120.html @@ -0,0 +1,58 @@ + + + + +Function template get_parent_from_member + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template get_parent_from_member

    +

    boost::intrusive::get_parent_from_member

    +
    +

    Synopsis

    +
    // In header: <boost/intrusive/parent_from_member.hpp>
    +
    +
    +template<typename Parent, typename Member> 
    +  const Parent * 
    +  get_parent_from_member(const Member * member, 
    +                         const Member Parent::* ptr_to_member);
    +
    +

    Description

    +

    Given a const pointer to a member and its corresponding const pointer to data member, this function returns the const pointer of the parent containing that member. Note: this function does not work with pointer to members that rely on virtual inheritance.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/intrusive/hashtable.html b/doc/html/boost/intrusive/hashtable.html index efde303c26..d2aaf4481d 100644 --- a/doc/html/boost/intrusive/hashtable.html +++ b/doc/html/boost/intrusive/hashtable.html @@ -67,105 +67,105 @@ typedef unspecified insert_commit_data; // construct/copy/destruct - explicit hashtable(const bucket_traits &, const hasher & = hasher(), + explicit hashtable(const bucket_traits &, const hasher & = hasher(), const key_equal & = key_equal(), const value_traits & = value_traits()); template<typename Iterator> - hashtable(bool, Iterator, Iterator, const bucket_traits &, + hashtable(bool, Iterator, Iterator, const bucket_traits &, const hasher & = hasher(), const key_equal & = key_equal(), const value_traits & = value_traits()); - hashtable(hashtable &&); - hashtable & operator=(hashtable &&); - ~hashtable(); + hashtable(hashtable &&); + hashtable & operator=(hashtable &&); + ~hashtable(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - hasher hash_function() const; - key_equal key_eq() const; - bool empty() const; - size_type size() const; - void swap(hashtable &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + hasher hash_function() const; + key_equal key_eq() const; + bool empty() const; + size_type size() const; + void swap(hashtable &); template<typename Cloner, typename Disposer> - void clone_from(const hashtable &, Cloner, Disposer); + void clone_from(const hashtable &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(hashtable &&, Cloner, Disposer); - iterator insert_equal(reference); - template<typename Iterator> void insert_equal(Iterator, Iterator); - std::pair< iterator, bool > insert_unique(reference); - template<typename Iterator> void insert_unique(Iterator, Iterator); + void clone_from(hashtable &&, Cloner, Disposer); + iterator insert_equal(reference); + template<typename Iterator> void insert_equal(Iterator, Iterator); + std::pair< iterator, bool > insert_unique(reference); + template<typename Iterator> void insert_unique(Iterator, Iterator); template<typename KeyType, typename KeyHasher, typename KeyEqual> std::pair< iterator, bool > - insert_unique_check(const KeyType &, KeyHasher, KeyEqual, + insert_unique_check(const KeyType &, KeyHasher, KeyEqual, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const key_type &, insert_commit_data &); - iterator insert_unique_commit(reference, const insert_commit_data &); - void erase(const_iterator); - void erase(const_iterator, const_iterator); - size_type erase(const key_type &); + insert_unique_check(const key_type &, insert_commit_data &); + iterator insert_unique_commit(reference, const insert_commit_data &); + void erase(const_iterator); + void erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> - size_type erase(const KeyType &, KeyHasher, KeyEqual); - template<typename Disposer> void erase_and_dispose(const_iterator, Disposer); + size_type erase(const KeyType &, KeyHasher, KeyEqual); + template<typename Disposer> void erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - void erase_and_dispose(const_iterator, const_iterator, Disposer); + void erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyHasher, typename KeyEqual, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyHasher, KeyEqual, + size_type erase_and_dispose(const KeyType &, KeyHasher, KeyEqual, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> - size_type count(const KeyType &, KeyHasher, KeyEqual) const; - iterator find(const key_type &); + size_type count(const KeyType &, KeyHasher, KeyEqual) const; + iterator find(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> - iterator find(const KeyType &, KeyHasher, KeyEqual); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyHasher, KeyEqual); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> - const_iterator find(const KeyType &, KeyHasher, KeyEqual) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyHasher, KeyEqual) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyHasher, KeyEqual); + equal_range(const KeyType &, KeyHasher, KeyEqual); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyHasher, KeyEqual) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - local_iterator local_iterator_to(reference); - const_local_iterator local_iterator_to(const_reference) const; - size_type bucket_count() const; - size_type bucket_size(size_type) const; - size_type bucket(const key_type &) const; + equal_range(const KeyType &, KeyHasher, KeyEqual) const; + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + local_iterator local_iterator_to(reference); + const_local_iterator local_iterator_to(const_reference) const; + size_type bucket_count() const; + size_type bucket_size(size_type) const; + size_type bucket(const key_type &) const; template<typename KeyType, typename KeyHasher> - size_type bucket(const KeyType &, KeyHasher) const; - bucket_ptr bucket_pointer() const; - local_iterator begin(size_type); - const_local_iterator begin(size_type) const; - const_local_iterator cbegin(size_type) const; - local_iterator end(size_type); - const_local_iterator end(size_type) const; - const_local_iterator cend(size_type) const; - void rehash(const bucket_traits &); - void full_rehash(); - bool incremental_rehash(bool = true); - bool incremental_rehash(const bucket_traits &); - size_type split_count() const; + size_type bucket(const KeyType &, KeyHasher) const; + bucket_ptr bucket_pointer() const; + local_iterator begin(size_type); + const_local_iterator begin(size_type) const; + const_local_iterator cbegin(size_type) const; + local_iterator end(size_type); + const_local_iterator end(size_type) const; + const_local_iterator cend(size_type) const; + void rehash(const bucket_traits &); + void full_rehash(); + bool incremental_rehash(bool = true); + bool incremental_rehash(const bucket_traits &); + size_type split_count() const; - // public static functions - static local_iterator s_local_iterator_to(reference); - static const_local_iterator s_local_iterator_to(const_reference); - static size_type suggested_upper_bucket_count(size_type); - static size_type suggested_lower_bucket_count(size_type); + // public static functions + static local_iterator s_local_iterator_to(reference); + static const_local_iterator s_local_iterator_to(const_reference); + static size_type suggested_upper_bucket_count(size_type); + static size_type suggested_lower_bucket_count(size_type); // public data members static const bool stateful_value_traits; @@ -195,7 +195,7 @@ construct/copy/destruct
    1. -
      explicit hashtable(const bucket_traits & b_traits, 
      +
      explicit hashtable(const bucket_traits & b_traits, 
                          const hasher & hash_func = hasher(), 
                          const key_equal & equal_func = key_equal(), 
                          const value_traits & v_traits = value_traits());
      @@ -207,7 +207,7 @@
    2. template<typename Iterator> 
      -  hashtable(bool unique, Iterator b, Iterator e, 
      +  hashtable(bool unique, Iterator b, Iterator e, 
                   const bucket_traits & b_traits, 
                   const hasher & hash_func = hasher(), 
                   const key_equal & equal_func = key_equal(), 
      @@ -219,17 +219,17 @@
       

      Notes: buckets array must be disposed only after *this is disposed.

    3. -
      hashtable(hashtable && x);
      +
      hashtable(hashtable && x);

      Effects: Constructs a container moving resources from another container. Internal value traits, bucket traits, hasher and comparison are move constructed and nodes belonging to x are linked to *this.

      Complexity: Constant.

      Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of value traits, bucket traits, hasher or comparison throws.

    4. -
      hashtable & operator=(hashtable && x);
      +
      hashtable & operator=(hashtable && x);

      Effects: Equivalent to swap.

    5. -
      ~hashtable();
      +
      ~hashtable();

      Effects: Detaches all elements from this. The objects in the unordered_set are not deleted (i.e. no destructors are called).

      Complexity: Linear to the number of elements in the unordered_set, if it's a safe-mode or auto-unlink value. Otherwise constant.

      Throws: Nothing.

      @@ -238,70 +238,70 @@

    -hashtable public member functions

    +hashtable public member functions
    1. -
      iterator begin();
      +
      iterator begin();

      Effects: Returns an iterator pointing to the beginning of the unordered_set.

      Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

      Throws: Nothing.

    2. -
      const_iterator begin() const;
      +
      const_iterator begin() const;

      Effects: Returns a const_iterator pointing to the beginning of the unordered_set.

      Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

      Throws: Nothing.

    3. -
      const_iterator cbegin() const;
      +
      const_iterator cbegin() const;

      Effects: Returns a const_iterator pointing to the beginning of the unordered_set.

      Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

      Throws: Nothing.

    4. -
      iterator end();
      +
      iterator end();

      Effects: Returns an iterator pointing to the end of the unordered_set.

      Complexity: Constant.

      Throws: Nothing.

    5. -
      const_iterator end() const;
      +
      const_iterator end() const;

      Effects: Returns a const_iterator pointing to the end of the unordered_set.

      Complexity: Constant.

      Throws: Nothing.

    6. -
      const_iterator cend() const;
      +
      const_iterator cend() const;

      Effects: Returns a const_iterator pointing to the end of the unordered_set.

      Complexity: Constant.

      Throws: Nothing.

    7. -
      hasher hash_function() const;
      +
      hasher hash_function() const;

      Effects: Returns the hasher object used by the unordered_set.

      Complexity: Constant.

      Throws: If hasher copy-constructor throws.

    8. -
      key_equal key_eq() const;
      +
      key_equal key_eq() const;

      Effects: Returns the key_equal object used by the unordered_set.

      Complexity: Constant.

      Throws: If key_equal copy-constructor throws.

    9. -
      bool empty() const;
      +
      bool empty() const;

      Effects: Returns true if the container is empty.

      Complexity: if constant-time size and cache_begin options are disabled, average constant time (worst case, with empty() == true: O(this->bucket_count()). Otherwise constant.

      Throws: Nothing.

    10. -
      size_type size() const;
      +
      size_type size() const;

      Effects: Returns the number of elements stored in the unordered_set.

      Complexity: Linear to elements contained in *this if constant_time_size is false. Constant-time otherwise.

      Throws: Nothing.

    11. -
      void swap(hashtable & other);
      +
      void swap(hashtable & other);

      Requires: the hasher and the equality function unqualified swap call should not throw.

      Effects: Swaps the contents of two unordered_sets. Swaps also the contained bucket array and equality and hasher functors.

      Complexity: Constant.

      @@ -309,7 +309,7 @@
    12. template<typename Cloner, typename Disposer> 
      -  void clone_from(const hashtable & src, Cloner cloner, Disposer disposer);
      + void clone_from(const hashtable & src, Cloner cloner, Disposer disposer);

      Requires: Disposer::operator()(pointer) shouldn't throw Cloner should yield to nodes that compare equal and produce the same hash than the original node.

      Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. The hash function and the equality predicate are copied from the source.

      If store_hash option is true, this method does not use the hash function.

      @@ -319,7 +319,7 @@
    13. template<typename Cloner, typename Disposer> 
      -  void clone_from(hashtable && src, Cloner cloner, Disposer disposer);
      + void clone_from(hashtable && src, Cloner cloner, Disposer disposer);

      Requires: Disposer::operator()(pointer) shouldn't throw Cloner should yield to nodes that compare equal and produce the same hash than the original node.

      Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. The hash function and the equality predicate are copied from the source.

      If store_hash option is true, this method does not use the hash function.

      @@ -328,7 +328,7 @@

      Throws: If cloner or hasher throw or hash or equality predicate copying throws. Basic guarantee.

    14. -
      iterator insert_equal(reference value);
      +
      iterator insert_equal(reference value);

      Requires: value must be an lvalue

      Effects: Inserts the value into the unordered_set.

      Returns: An iterator to the inserted value.

      @@ -337,7 +337,7 @@

      Note: Does not affect the validity of iterators and references. No copy-constructors are called.

    15. -
      template<typename Iterator> void insert_equal(Iterator b, Iterator e);
      +
      template<typename Iterator> void insert_equal(Iterator b, Iterator e);

      Requires: Dereferencing iterator must yield an lvalue of type value_type.

      Effects: Equivalent to this->insert_equal(t) for each element in [b, e).

      Complexity: Average case O(N), where N is distance(b, e). Worst case O(N*this->size()).

      @@ -345,7 +345,7 @@

      Note: Does not affect the validity of iterators and references. No copy-constructors are called.

    16. -
      std::pair< iterator, bool > insert_unique(reference value);
      +
      std::pair< iterator, bool > insert_unique(reference value);

      Requires: value must be an lvalue

      Effects: Tries to inserts value into the unordered_set.

      Returns: If the value is not already present inserts it and returns a pair containing the iterator to the new value and true. If there is an equivalent value returns a pair containing an iterator to the already present value and false.

      @@ -354,7 +354,7 @@

      Note: Does not affect the validity of iterators and references. No copy-constructors are called.

    17. -
      template<typename Iterator> void insert_unique(Iterator b, Iterator e);
      +
      template<typename Iterator> void insert_unique(Iterator b, Iterator e);

      Requires: Dereferencing iterator must yield an lvalue of type value_type.

      Effects: Equivalent to this->insert_unique(t) for each element in [b, e).

      Complexity: Average case O(N), where N is distance(b, e). Worst case O(N*this->size()).

      @@ -364,7 +364,7 @@
    18. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
         std::pair< iterator, bool > 
      -  insert_unique_check(const KeyType & key, KeyHasher hash_func, 
      +  insert_unique_check(const KeyType & key, KeyHasher hash_func, 
                             KeyEqual equal_func, insert_commit_data & commit_data);

      Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

      "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

      @@ -379,7 +379,7 @@
    19. std::pair< iterator, bool > 
      -insert_unique_check(const key_type & key, insert_commit_data & commit_data);
      +insert_unique_check(const key_type & key, insert_commit_data & commit_data);

      Effects: Checks if a value can be inserted in the unordered_set, using a user provided key instead of the value itself.

      Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

      Complexity: Average case O(1), worst case O(this->size()).

      @@ -390,7 +390,7 @@

      After a successful rehashing insert_commit_data remains valid.

    20. -
      iterator insert_unique_commit(reference value, 
      +
      iterator insert_unique_commit(reference value, 
                                     const insert_commit_data & commit_data);

      Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the unordered_set between the "insert_check" that filled "commit_data" and the call to "insert_commit".

      Effects: Inserts the value in the unordered_set using the information obtained from the "commit_data" that a previous "insert_check" filled.

      @@ -401,21 +401,21 @@

      After a successful rehashing insert_commit_data remains valid.

    21. -
      void erase(const_iterator i);
      +
      void erase(const_iterator i);

      Effects: Erases the element pointed to by i.

      Complexity: Average case O(1), worst case O(this->size()).

      Throws: Nothing.

      Note: Invalidates the iterators (but not the references) to the erased element. No destructors are called.

    22. -
      void erase(const_iterator b, const_iterator e);
      +
      void erase(const_iterator b, const_iterator e);

      Effects: Erases the range pointed to by b end e.

      Complexity: Average case O(distance(b, e)), worst case O(this->size()).

      Throws: Nothing.

      Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

    23. -
      size_type erase(const key_type & key);
      +
      size_type erase(const key_type & key);

      Effects: Erases all the elements with the given value.

      Returns: The number of erased elements.

      Complexity: Average case O(this->count(value)). Worst case O(this->size()).

      @@ -424,7 +424,7 @@
    24. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
      -  size_type erase(const KeyType & key, KeyHasher hash_func, 
      +  size_type erase(const KeyType & key, KeyHasher hash_func, 
                         KeyEqual equal_func);

      Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

      "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

      @@ -436,7 +436,7 @@
    25. template<typename Disposer> 
      -  void erase_and_dispose(const_iterator i, Disposer disposer);
      + void erase_and_dispose(const_iterator i, Disposer disposer);

      Requires: Disposer::operator()(pointer) shouldn't throw.

      Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

      Complexity: Average case O(1), worst case O(this->size()).

      @@ -445,7 +445,7 @@
    26. template<typename Disposer> 
      -  void erase_and_dispose(const_iterator b, const_iterator e, 
      +  void erase_and_dispose(const_iterator b, const_iterator e, 
                                Disposer disposer);

      Requires: Disposer::operator()(pointer) shouldn't throw.

      Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

      @@ -455,7 +455,7 @@
    27. template<typename Disposer> 
      -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
      + size_type erase_and_dispose(const key_type & key, Disposer disposer);

      Requires: Disposer::operator()(pointer) shouldn't throw.

      Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

      Returns: The number of erased elements.

      @@ -466,7 +466,7 @@
    28. template<typename KeyType, typename KeyHasher, typename KeyEqual, 
                typename Disposer> 
      -  size_type erase_and_dispose(const KeyType & key, KeyHasher hash_func, 
      +  size_type erase_and_dispose(const KeyType & key, KeyHasher hash_func, 
                                     KeyEqual equal_func, Disposer disposer);

      Requires: Disposer::operator()(pointer) shouldn't throw.

      Effects: Erases all the elements with the given key. according to the comparison functor "equal_func". Disposer::operator()(pointer) is called for the removed elements.

      @@ -476,14 +476,14 @@

      Note: Invalidates the iterators to the erased elements.

    29. -
      void clear();
      +
      void clear();

      Effects: Erases all of the elements.

      Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

      Throws: Nothing.

      Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

    30. -
      template<typename Disposer> void clear_and_dispose(Disposer disposer);
      +
      template<typename Disposer> void clear_and_dispose(Disposer disposer);

      Requires: Disposer::operator()(pointer) shouldn't throw.

      Effects: Erases all of the elements.

      Complexity: Linear to the number of elements on the container. Disposer::operator()(pointer) is called for the removed elements.

      @@ -491,14 +491,14 @@

      Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

    31. -
      size_type count(const key_type & key) const;
      +
      size_type count(const key_type & key) const;

      Effects: Returns the number of contained elements with the given value

      Complexity: Average case O(1), worst case O(this->size()).

      Throws: If the internal hasher or the equality functor throws.

    32. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
      -  size_type count(const KeyType & key, KeyHasher hash_func, 
      +  size_type count(const KeyType & key, KeyHasher hash_func, 
                         KeyEqual equal_func) const;

      Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

      "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

      @@ -507,14 +507,14 @@

      Throws: If hash_func or equal throw.

    33. -
      iterator find(const key_type & key);
      +
      iterator find(const key_type & key);

      Effects: Finds an iterator to the first element is equal to "value" or end() if that element does not exist.

      Complexity: Average case O(1), worst case O(this->size()).

      Throws: If the internal hasher or the equality functor throws.

    34. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
      -  iterator find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);
      + iterator find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);

      Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

      "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

      Effects: Finds an iterator to the first element whose key is "key" according to the given hash and equality functor or end() if that element does not exist.

      @@ -523,7 +523,7 @@

      Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

    35. -
      const_iterator find(const key_type & key) const;
      +
      const_iterator find(const key_type & key) const;

      Effects: Finds a const_iterator to the first element whose key is "key" or end() if that element does not exist.

      Complexity: Average case O(1), worst case O(this->size()).

      Throws: If the internal hasher or the equality functor throws.

      @@ -531,7 +531,7 @@
    36. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
         const_iterator 
      -  find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;
      + find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;

      Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

      "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

      Effects: Finds an iterator to the first element whose key is "key" according to the given hasher and equality functor or end() if that element does not exist.

      @@ -540,7 +540,7 @@

      Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

    37. -
      std::pair< iterator, iterator > equal_range(const key_type & key);
      +
      std::pair< iterator, iterator > equal_range(const key_type & key);

      Effects: Returns a range containing all elements with values equivalent to value. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

      Complexity: Average case O(this->count(value)). Worst case O(this->size()).

      Throws: If the internal hasher or the equality functor throws.

      @@ -548,7 +548,7 @@
    38. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
         std::pair< iterator, iterator > 
      -  equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);
      + equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);

      Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

      "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

      Effects: Returns a range containing all elements with equivalent keys. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

      @@ -558,7 +558,7 @@
    39. std::pair< const_iterator, const_iterator > 
      -equal_range(const key_type & key) const;
      +equal_range(const key_type & key) const;

      Effects: Returns a range containing all elements with values equivalent to value. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

      Complexity: Average case O(this->count(value)). Worst case O(this->size()).

      Throws: If the internal hasher or the equality functor throws.

      @@ -566,7 +566,7 @@
    40. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
         std::pair< const_iterator, const_iterator > 
      -  equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;
      + equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;

      Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

      "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

      Effects: Returns a range containing all elements with equivalent keys. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

      @@ -575,48 +575,48 @@

      Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

    41. -
      iterator iterator_to(reference value);
      +
      iterator iterator_to(reference value);

      Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

      Effects: Returns: a valid iterator belonging to the unordered_set that points to the value

      Complexity: Constant.

      Throws: If the internal hash function throws.

    42. -
      const_iterator iterator_to(const_reference value) const;
      +
      const_iterator iterator_to(const_reference value) const;

      Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

      Effects: Returns: a valid const_iterator belonging to the unordered_set that points to the value

      Complexity: Constant.

      Throws: If the internal hash function throws.

    43. -
      local_iterator local_iterator_to(reference value);
      +
      local_iterator local_iterator_to(reference value);

      Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

      Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

      Complexity: Constant.

      Throws: Nothing.

    44. -
      const_local_iterator local_iterator_to(const_reference value) const;
      +
      const_local_iterator local_iterator_to(const_reference value) const;

      Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

      Effects: Returns: a valid const_local_iterator belonging to the unordered_set that points to the value

      Complexity: Constant.

      Throws: Nothing.

    45. -
      size_type bucket_count() const;
      +
      size_type bucket_count() const;

      Effects: Returns the number of buckets passed in the constructor or the last rehash function.

      Complexity: Constant.

      Throws: Nothing.

    46. -
      size_type bucket_size(size_type n) const;
      +
      size_type bucket_size(size_type n) const;

      Requires: n is in the range [0, this->bucket_count()).

      Effects: Returns the number of elements in the nth bucket.

      Complexity: Constant.

      Throws: Nothing.

    47. -
      size_type bucket(const key_type & k) const;
      +
      size_type bucket(const key_type & k) const;

      Effects: Returns the index of the bucket in which elements with keys equivalent to k would be found, if any such element existed.

      Complexity: Constant.

      Throws: If the hash functor throws.

      @@ -624,7 +624,7 @@
    48. template<typename KeyType, typename KeyHasher> 
      -  size_type bucket(const KeyType & k, KeyHasher hash_func) const;
      + size_type bucket(const KeyType & k, KeyHasher hash_func) const;

      Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

      Effects: Returns the index of the bucket in which elements with keys equivalent to k would be found, if any such element existed.

      Complexity: Constant.

      @@ -632,13 +632,13 @@

      Note: the return value is in the range [0, this->bucket_count()).

    49. -
      bucket_ptr bucket_pointer() const;
      +
      bucket_ptr bucket_pointer() const;

      Effects: Returns the bucket array pointer passed in the constructor or the last rehash function.

      Complexity: Constant.

      Throws: Nothing.

    50. -
      local_iterator begin(size_type n);
      +
      local_iterator begin(size_type n);

      Requires: n is in the range [0, this->bucket_count()).

      Effects: Returns a local_iterator pointing to the beginning of the sequence stored in the bucket n.

      Complexity: Constant.

      @@ -646,7 +646,7 @@

      Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

    51. -
      const_local_iterator begin(size_type n) const;
      +
      const_local_iterator begin(size_type n) const;

      Requires: n is in the range [0, this->bucket_count()).

      Effects: Returns a const_local_iterator pointing to the beginning of the sequence stored in the bucket n.

      Complexity: Constant.

      @@ -654,7 +654,7 @@

      Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

    52. -
      const_local_iterator cbegin(size_type n) const;
      +
      const_local_iterator cbegin(size_type n) const;

      Requires: n is in the range [0, this->bucket_count()).

      Effects: Returns a const_local_iterator pointing to the beginning of the sequence stored in the bucket n.

      Complexity: Constant.

      @@ -662,7 +662,7 @@

      Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

    53. -
      local_iterator end(size_type n);
      +
      local_iterator end(size_type n);

      Requires: n is in the range [0, this->bucket_count()).

      Effects: Returns a local_iterator pointing to the end of the sequence stored in the bucket n.

      Complexity: Constant.

      @@ -670,7 +670,7 @@

      Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

    54. -
      const_local_iterator end(size_type n) const;
      +
      const_local_iterator end(size_type n) const;

      Requires: n is in the range [0, this->bucket_count()).

      Effects: Returns a const_local_iterator pointing to the end of the sequence stored in the bucket n.

      Complexity: Constant.

      @@ -678,7 +678,7 @@

      Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

    55. -
      const_local_iterator cend(size_type n) const;
      +
      const_local_iterator cend(size_type n) const;

      Requires: n is in the range [0, this->bucket_count()).

      Effects: Returns a const_local_iterator pointing to the end of the sequence stored in the bucket n.

      Complexity: Constant.

      @@ -686,7 +686,7 @@

      Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

    56. -
      void rehash(const bucket_traits & new_bucket_traits);
      +
      void rehash(const bucket_traits & new_bucket_traits);

      Requires: new_bucket_traits can hold a pointer to a new bucket array or the same as the old bucket array with a different length. new_size is the length of the the array pointed by new_buckets. If new_bucket_traits.bucket_begin() == this->bucket_pointer() new_bucket_traits.bucket_count() can be bigger or smaller than this->bucket_count(). 'new_bucket_traits' copy constructor should not throw.

      Effects: If new_bucket_traits.bucket_begin() == this->bucket_pointer() is false, unlinks values from the old bucket and inserts then in the new one according to the hash value of values.

      If new_bucket_traits.bucket_begin() == this->bucket_pointer() is true, the implementations avoids moving values as much as possible.

      @@ -697,7 +697,7 @@

      Throws: If the hasher functor throws. Basic guarantee.

    57. -
      void full_rehash();
      +
      void full_rehash();

      Note: This function is used when keys from inserted elements are changed (e.g. a language change when key is a string) but uniqueness and hash properties are preserved so a fast full rehash recovers invariants for *this without extracting and reinserting all elements again.

      Requires: Calls produced to the hash function should not alter the value uniqueness properties of already inserted elements. If hasher(key1) == hasher(key2) was true when elements were inserted, it shall be true during calls produced in the execution of this function.

      key_equal is not called inside this function so it is assumed that key_equal(value1, value2) should produce the same results as before for inserted elements.

      @@ -707,7 +707,7 @@

      Throws: If the hasher functor throws. Basic guarantee.

    58. -
      bool incremental_rehash(bool grow = true);
      +
      bool incremental_rehash(bool grow = true);

      Requires:

      Effects:

      Complexity:

      @@ -716,7 +716,7 @@

      grow

    59. -
      bool incremental_rehash(const bucket_traits & new_bucket_traits);
      +
      bool incremental_rehash(const bucket_traits & new_bucket_traits);

      Effects: If new_bucket_traits.bucket_count() is not this->bucket_count()/2 or this->bucket_count()*2, or this->split_bucket() != new_bucket_traits.bucket_count() returns false and does nothing.

      Otherwise, copy assigns new_bucket_traits to the internal bucket_traits and transfers all the objects from old buckets to the new ones.

      Complexity: Linear to size().

      @@ -724,7 +724,7 @@

      Note: this method is only available if incremental<true> option is activated.

    60. -
      size_type split_count() const;
      +
      size_type split_count() const;

      Requires: incremental<> option must be set

      Effects: returns the current split count

      Complexity: Constant

      @@ -734,10 +734,10 @@

    -hashtable public static functions

    +hashtable public static functions
    1. -
      static local_iterator s_local_iterator_to(reference value);
      +
      static local_iterator s_local_iterator_to(reference value);

      Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

      Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

      Complexity: Constant.

      @@ -745,7 +745,7 @@

      Note: This static function is available only if the value traits is stateless.

    2. -
      static const_local_iterator s_local_iterator_to(const_reference value);
      +
      static const_local_iterator s_local_iterator_to(const_reference value);

      Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

      Effects: Returns: a valid const_local_iterator belonging to the unordered_set that points to the value

      Complexity: Constant.

      @@ -753,13 +753,13 @@

      Note: This static function is available only if the value traits is stateless.

    3. -
      static size_type suggested_upper_bucket_count(size_type n);
      +
      static size_type suggested_upper_bucket_count(size_type n);

      Effects: Returns the nearest new bucket count optimized for the container that is bigger or equal than n. This suggestion can be used to create bucket arrays with a size that will usually improve container's performance. If such value does not exist, the higher possible value is returned.

      Complexity: Amortized constant time.

      Throws: Nothing.

    4. -
      static size_type suggested_lower_bucket_count(size_type n);
      +
      static size_type suggested_lower_bucket_count(size_type n);

      Effects: Returns the nearest new bucket count optimized for the container that is smaller or equal than n. This suggestion can be used to create bucket arrays with a size that will usually improve container's performance. If such value does not exist, the lowest possible value is returned.

      Complexity: Amortized constant time.

      Throws: Nothing.

      diff --git a/doc/html/boost/intrusive/linear_slist_algorithms.html b/doc/html/boost/intrusive/linear_slist_algorithms.html index a3ecbc1eba..a247b61dc0 100644 --- a/doc/html/boost/intrusive/linear_slist_algorithms.html +++ b/doc/html/boost/intrusive/linear_slist_algorithms.html @@ -41,24 +41,24 @@ typedef NodeTraits::const_node_ptr const_node_ptr; typedef NodeTraits node_traits; - // public static functions - static void init(const node_ptr &); - static bool unique(const_node_ptr); - static bool inited(const_node_ptr); - static void unlink_after(const node_ptr &); - static void unlink_after(const node_ptr &, const node_ptr &); - static void link_after(const node_ptr &, const node_ptr &); - static void transfer_after(const node_ptr &, const node_ptr &, + // public static functions + static void init(const node_ptr &); + static bool unique(const_node_ptr); + static bool inited(const_node_ptr); + static void unlink_after(const node_ptr &); + static void unlink_after(const node_ptr &, const node_ptr &); + static void link_after(const node_ptr &, const node_ptr &); + static void transfer_after(const node_ptr &, const node_ptr &, const node_ptr &); - static void init_header(const node_ptr &); - static node_ptr get_previous_node(const node_ptr &, const node_ptr &); - static std::size_t count(const const_node_ptr &); - static void swap_trailing_nodes(const node_ptr &, const node_ptr &); - static node_ptr reverse(const node_ptr &); + static void init_header(const node_ptr &); + static node_ptr get_previous_node(const node_ptr &, const node_ptr &); + static std::size_t count(const const_node_ptr &); + static void swap_trailing_nodes(const node_ptr &, const node_ptr &); + static node_ptr reverse(const node_ptr &); static std::pair< node_ptr, node_ptr > - move_first_n_backwards(const node_ptr &, std::size_t); + move_first_n_backwards(const node_ptr &, std::size_t); static std::pair< node_ptr, node_ptr > - move_first_n_forward(const node_ptr &, std::size_t); + move_first_n_forward(const node_ptr &, std::size_t); };

    Description

    @@ -73,36 +73,36 @@

    static void set_next(node_ptr n, node_ptr next);

    -linear_slist_algorithms public static functions

    +linear_slist_algorithms public static functions
    1. -
      static void init(const node_ptr & this_node);
      +
      static void init(const node_ptr & this_node);

      Effects: Constructs an non-used list element, putting the next pointer to null: NodeTraits::get_next(this_node) == node_ptr()

      Complexity: Constant

      Throws: Nothing.

    2. -
      static bool unique(const_node_ptr this_node);
      +
      static bool unique(const_node_ptr this_node);

      Requires: this_node must be in a circular list or be an empty circular list.

      Effects: Returns true is "this_node" is the only node of a circular list: or it's a not inserted node: return node_ptr() == NodeTraits::get_next(this_node) || NodeTraits::get_next(this_node) == this_node

      Complexity: Constant

      Throws: Nothing.

    3. -
      static bool inited(const_node_ptr this_node);
      +
      static bool inited(const_node_ptr this_node);

      Effects: Returns true is "this_node" has the same state as if it was inited using "init(node_ptr)"

      Complexity: Constant

      Throws: Nothing.

    4. -
      static void unlink_after(const node_ptr & prev_node);
      +
      static void unlink_after(const node_ptr & prev_node);

      Requires: prev_node must be in a circular list or be an empty circular list.

      Effects: Unlinks the next node of prev_node from the circular list.

      Complexity: Constant

      Throws: Nothing.

    5. -
      static void unlink_after(const node_ptr & prev_node, 
      +
      static void unlink_after(const node_ptr & prev_node, 
                                const node_ptr & last_node);

      Requires: prev_node and last_node must be in a circular list or be an empty circular list.

      Effects: Unlinks the range (prev_node, last_node) from the linear list.

      @@ -110,14 +110,14 @@

      Throws: Nothing.

    6. -
      static void link_after(const node_ptr & prev_node, const node_ptr & this_node);
      +
      static void link_after(const node_ptr & prev_node, const node_ptr & this_node);

      Requires: prev_node must be a node of a linear list.

      Effects: Links this_node after prev_node in the linear list.

      Complexity: Constant

      Throws: Nothing.

    7. -
      static void transfer_after(const node_ptr & p, const node_ptr & b, 
      +
      static void transfer_after(const node_ptr & p, const node_ptr & b, 
                                  const node_ptr & e);

      Requires: b and e must be nodes of the same linear list or an empty range. and p must be a node of a different linear list.

      Effects: Removes the nodes from (b, e] range from their linear list and inserts them after p in p's linear list.

      @@ -125,28 +125,28 @@

      Throws: Nothing.

    8. -
      static void init_header(const node_ptr & this_node);
      +
      static void init_header(const node_ptr & this_node);

      Effects: Constructs an empty list, making this_node the only node of the circular list: NodeTraits::get_next(this_node) == this_node.

      Complexity: Constant

      Throws: Nothing.

    9. static node_ptr 
      -get_previous_node(const node_ptr & prev_init_node, const node_ptr & this_node);
      +get_previous_node(const node_ptr & prev_init_node, const node_ptr & this_node);

      Requires: this_node and prev_init_node must be in the same linear list.

      Effects: Returns the previous node of this_node in the linear list starting. the search from prev_init_node. The first node checked for equality is NodeTraits::get_next(prev_init_node).

      Complexity: Linear to the number of elements between prev_init_node and this_node.

      Throws: Nothing.

    10. -
      static std::size_t count(const const_node_ptr & this_node);
      +
      static std::size_t count(const const_node_ptr & this_node);

      Requires: this_node must be in a linear list or be an empty linear list.

      Effects: Returns the number of nodes in a linear list. If the linear list is empty, returns 1.

      Complexity: Linear

      Throws: Nothing.

    11. -
      static void swap_trailing_nodes(const node_ptr & this_node, 
      +
      static void swap_trailing_nodes(const node_ptr & this_node, 
                                       const node_ptr & other_node);

      Requires: this_node and other_node must be nodes inserted in linear lists or be empty linear lists.

      Effects: Moves all the nodes previously chained after this_node after other_node and vice-versa.

      @@ -154,7 +154,7 @@

      Throws: Nothing.

    12. -
      static node_ptr reverse(const node_ptr & p);
      +
      static node_ptr reverse(const node_ptr & p);

      Effects: Reverses the order of elements in the list.

      Returns: The new first node of the list.

      Throws: Nothing.

      @@ -162,7 +162,7 @@
    13. static std::pair< node_ptr, node_ptr > 
      -move_first_n_backwards(const node_ptr & p, std::size_t n);
      +move_first_n_backwards(const node_ptr & p, std::size_t n);

      Effects: Moves the first n nodes starting at p to the end of the list.

      Returns: A pair containing the new first and last node of the list or if there has been any movement, a null pair if n leads to no movement.

      Throws: Nothing.

      @@ -170,7 +170,7 @@
    14. static std::pair< node_ptr, node_ptr > 
      -move_first_n_forward(const node_ptr & p, std::size_t n);
      +move_first_n_forward(const node_ptr & p, std::size_t n);

      Effects: Moves the first n nodes starting at p to the beginning of the list.

      Returns: A pair containing the new first and last node of the list or if there has been any movement, a null pair if n leads to no movement.

      Throws: Nothing.

      diff --git a/doc/html/boost/intrusive/list.html b/doc/html/boost/intrusive/list.html index b8c735c97a..853aa5abe3 100644 --- a/doc/html/boost/intrusive/list.html +++ b/doc/html/boost/intrusive/list.html @@ -56,90 +56,90 @@ typedef unspecified header_holder_type; // construct/copy/destruct - list(); - explicit list(const value_traits &); + list(); + explicit list(const value_traits &); template<typename Iterator> - list(Iterator, Iterator, const value_traits & = value_traits()); - list(list &&); - list & operator=(list &&); - ~list(); + list(Iterator, Iterator, const value_traits & = value_traits()); + list(list &&); + list & operator=(list &&); + ~list(); - // public member functions - void push_back(reference); - void push_front(reference); - void pop_back(); - template<typename Disposer> void pop_back_and_dispose(Disposer); - void pop_front(); - template<typename Disposer> void pop_front_and_dispose(Disposer); - reference front(); - const_reference front() const; - reference back(); - const_reference back() const; - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - size_type size() const; - bool empty() const; - void swap(list &); - void shift_backwards(size_type = 1); - void shift_forward(size_type = 1); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - iterator erase(const_iterator, const_iterator, size_type); + // public member functions + void push_back(reference); + void push_front(reference); + void pop_back(); + template<typename Disposer> void pop_back_and_dispose(Disposer); + void pop_front(); + template<typename Disposer> void pop_front_and_dispose(Disposer); + reference front(); + const_reference front() const; + reference back(); + const_reference back() const; + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + size_type size() const; + bool empty() const; + void swap(list &); + void shift_backwards(size_type = 1); + void shift_forward(size_type = 1); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + iterator erase(const_iterator, const_iterator, size_type); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); template<typename Cloner, typename Disposer> - void clone_from(const list &, Cloner, Disposer); + void clone_from(const list &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(list &&, Cloner, Disposer); - iterator insert(const_iterator, reference); - template<typename Iterator> void insert(const_iterator, Iterator, Iterator); - template<typename Iterator> void assign(Iterator, Iterator); + void clone_from(list &&, Cloner, Disposer); + iterator insert(const_iterator, reference); + template<typename Iterator> void insert(const_iterator, Iterator, Iterator); + template<typename Iterator> void assign(Iterator, Iterator); template<typename Iterator, typename Disposer> - void dispose_and_assign(Disposer, Iterator, Iterator); - void splice(const_iterator, list &); - void splice(const_iterator, list &, const_iterator); - void splice(const_iterator, list &, const_iterator, const_iterator); - void splice(const_iterator, list &, const_iterator, const_iterator, + void dispose_and_assign(Disposer, Iterator, Iterator); + void splice(const_iterator, list &); + void splice(const_iterator, list &, const_iterator); + void splice(const_iterator, list &, const_iterator, const_iterator); + void splice(const_iterator, list &, const_iterator, const_iterator, size_type); - void sort(); - template<typename Predicate> void sort(Predicate); - void merge(list &); - template<typename Predicate> void merge(list &, Predicate); - void reverse(); - void remove(const_reference); + void sort(); + template<typename Predicate> void sort(Predicate); + void merge(list &); + template<typename Predicate> void merge(list &, Predicate); + void reverse(); + void remove(const_reference); template<typename Disposer> - void remove_and_dispose(const_reference, Disposer); - template<typename Pred> void remove_if(Pred); + void remove_and_dispose(const_reference, Disposer); + template<typename Pred> void remove_if(Pred); template<typename Pred, typename Disposer> - void remove_and_dispose_if(Pred, Disposer); - void unique(); - template<typename BinaryPredicate> void unique(BinaryPredicate); - template<typename Disposer> void unique_and_dispose(Disposer); + void remove_and_dispose_if(Pred, Disposer); + void unique(); + template<typename BinaryPredicate> void unique(BinaryPredicate); + template<typename Disposer> void unique_and_dispose(Disposer); template<typename BinaryPredicate, typename Disposer> - void unique_and_dispose(BinaryPredicate, Disposer); - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - void check() const; + void unique_and_dispose(BinaryPredicate, Disposer); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + void check() const; - // public static functions - static list & container_from_end_iterator(iterator); - static const list & container_from_end_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); + // public static functions + static list & container_from_end_iterator(iterator); + static const list & container_from_end_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); // public data members static const bool constant_time_size; @@ -158,37 +158,37 @@ construct/copy/destruct
      1. -
        list();
        +
        list();

        Effects: constructs an empty list.

        Complexity: Constant

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks).

      2. -
        explicit list(const value_traits & v_traits);
        +
        explicit list(const value_traits & v_traits);

        Effects: constructs an empty list.

        Complexity: Constant

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks).

      3. template<typename Iterator> 
        -  list(Iterator b, Iterator e, const value_traits & v_traits = value_traits());
        + list(Iterator b, Iterator e, const value_traits & v_traits = value_traits());

        Requires: Dereferencing iterator must yield an lvalue of type value_type.

        Effects: Constructs a list equal to the range [first,last).

        Complexity: Linear in distance(b, e). No copy constructors are called.

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks).

      4. -
        list(list && x);
        +
        list(list && x);

        Effects: Constructs a container moving resources from another container. Internal value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

        Complexity: Constant.

        Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of value traits throws.

      5. -
        list & operator=(list && x);
        +
        list & operator=(list && x);

        Effects: Equivalent to swap

      6. -
        ~list();
        +
        ~list();

        Effects: If it's not a safe-mode or an auto-unlink value_type the destructor does nothing (ie. no code is generated). Otherwise it detaches all elements from this. In this case the objects in the list are not deleted (i.e. no destructors are called), but the hooks according to the ValueTraits template parameter are set to their default value.

        Complexity: Linear to the number of elements in the list, if it's a safe-mode or auto-unlink value . Otherwise constant.

      7. @@ -196,10 +196,10 @@

      -list public member functions

      +list public member functions
      1. -
        void push_back(reference value);
        +
        void push_back(reference value);

        Requires: value must be an lvalue.

        Effects: Inserts the value in the back of the list. No copy constructors are called.

        Throws: Nothing.

        @@ -207,7 +207,7 @@

        Note: Does not affect the validity of iterators and references.

      2. -
        void push_front(reference value);
        +
        void push_front(reference value);

        Requires: value must be an lvalue.

        Effects: Inserts the value in the front of the list. No copy constructors are called.

        Throws: Nothing.

        @@ -215,14 +215,14 @@

        Note: Does not affect the validity of iterators and references.

      3. -
        void pop_back();
        +
        void pop_back();

        Effects: Erases the last element of the list. No destructors are called.

        Throws: Nothing.

        Complexity: Constant.

        Note: Invalidates the iterators (but not the references) to the erased element.

      4. -
        template<typename Disposer> void pop_back_and_dispose(Disposer disposer);
        +
        template<typename Disposer> void pop_back_and_dispose(Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases the last element of the list. No destructors are called. Disposer::operator()(pointer) is called for the removed element.

        Throws: Nothing.

        @@ -230,14 +230,14 @@

        Note: Invalidates the iterators to the erased element.

      5. -
        void pop_front();
        +
        void pop_front();

        Effects: Erases the first element of the list. No destructors are called.

        Throws: Nothing.

        Complexity: Constant.

        Note: Invalidates the iterators (but not the references) to the erased element.

      6. -
        template<typename Disposer> void pop_front_and_dispose(Disposer disposer);
        +
        template<typename Disposer> void pop_front_and_dispose(Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases the first element of the list. No destructors are called. Disposer::operator()(pointer) is called for the removed element.

        Throws: Nothing.

        @@ -245,138 +245,138 @@

        Note: Invalidates the iterators to the erased element.

      7. -
        reference front();
        +
        reference front();

        Effects: Returns a reference to the first element of the list.

        Throws: Nothing.

        Complexity: Constant.

      8. -
        const_reference front() const;
        +
        const_reference front() const;

        Effects: Returns a const_reference to the first element of the list.

        Throws: Nothing.

        Complexity: Constant.

      9. -
        reference back();
        +
        reference back();

        Effects: Returns a reference to the last element of the list.

        Throws: Nothing.

        Complexity: Constant.

      10. -
        const_reference back() const;
        +
        const_reference back() const;

        Effects: Returns a const_reference to the last element of the list.

        Throws: Nothing.

        Complexity: Constant.

      11. -
        iterator begin();
        +
        iterator begin();

        Effects: Returns an iterator to the first element contained in the list.

        Throws: Nothing.

        Complexity: Constant.

      12. -
        const_iterator begin() const;
        +
        const_iterator begin() const;

        Effects: Returns a const_iterator to the first element contained in the list.

        Throws: Nothing.

        Complexity: Constant.

      13. -
        const_iterator cbegin() const;
        +
        const_iterator cbegin() const;

        Effects: Returns a const_iterator to the first element contained in the list.

        Throws: Nothing.

        Complexity: Constant.

      14. -
        iterator end();
        +
        iterator end();

        Effects: Returns an iterator to the end of the list.

        Throws: Nothing.

        Complexity: Constant.

      15. -
        const_iterator end() const;
        +
        const_iterator end() const;

        Effects: Returns a const_iterator to the end of the list.

        Throws: Nothing.

        Complexity: Constant.

      16. -
        const_iterator cend() const;
        +
        const_iterator cend() const;

        Effects: Returns a constant iterator to the end of the list.

        Throws: Nothing.

        Complexity: Constant.

      17. -
        reverse_iterator rbegin();
        +
        reverse_iterator rbegin();

        Effects: Returns a reverse_iterator pointing to the beginning of the reversed list.

        Throws: Nothing.

        Complexity: Constant.

      18. -
        const_reverse_iterator rbegin() const;
        +
        const_reverse_iterator rbegin() const;

        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed list.

        Throws: Nothing.

        Complexity: Constant.

      19. -
        const_reverse_iterator crbegin() const;
        +
        const_reverse_iterator crbegin() const;

        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed list.

        Throws: Nothing.

        Complexity: Constant.

      20. -
        reverse_iterator rend();
        +
        reverse_iterator rend();

        Effects: Returns a reverse_iterator pointing to the end of the reversed list.

        Throws: Nothing.

        Complexity: Constant.

      21. -
        const_reverse_iterator rend() const;
        +
        const_reverse_iterator rend() const;

        Effects: Returns a const_reverse_iterator pointing to the end of the reversed list.

        Throws: Nothing.

        Complexity: Constant.

      22. -
        const_reverse_iterator crend() const;
        +
        const_reverse_iterator crend() const;

        Effects: Returns a const_reverse_iterator pointing to the end of the reversed list.

        Throws: Nothing.

        Complexity: Constant.

      23. -
        size_type size() const;
        +
        size_type size() const;

        Effects: Returns the number of the elements contained in the list.

        Throws: Nothing.

        Complexity: Linear to the number of elements contained in the list. if constant-time size option is disabled. Constant time otherwise.

        Note: Does not affect the validity of iterators and references.

      24. -
        bool empty() const;
        +
        bool empty() const;

        Effects: Returns true if the list contains no elements.

        Throws: Nothing.

        Complexity: Constant.

        Note: Does not affect the validity of iterators and references.

      25. -
        void swap(list & other);
        +
        void swap(list & other);

        Effects: Swaps the elements of x and *this.

        Throws: Nothing.

        Complexity: Constant.

        Note: Does not affect the validity of iterators and references.

      26. -
        void shift_backwards(size_type n = 1);
        +
        void shift_backwards(size_type n = 1);

        Effects: Moves backwards all the elements, so that the first element becomes the second, the second becomes the third... the last element becomes the first one.

        Throws: Nothing.

        Complexity: Linear to the number of shifts.

        Note: Does not affect the validity of iterators and references.

      27. -
        void shift_forward(size_type n = 1);
        +
        void shift_forward(size_type n = 1);

        Effects: Moves forward all the elements, so that the second element becomes the first, the third becomes the second... the first element becomes the last one.

        Throws: Nothing.

        Complexity: Linear to the number of shifts.

        Note: Does not affect the validity of iterators and references.

      28. -
        iterator erase(const_iterator i);
        +
        iterator erase(const_iterator i);

        Effects: Erases the element pointed by i of the list. No destructors are called.

        Returns: the first element remaining beyond the removed element, or end() if no such element exists.

        Throws: Nothing.

        @@ -384,7 +384,7 @@

        Note: Invalidates the iterators (but not the references) to the erased element.

      29. -
        iterator erase(const_iterator b, const_iterator e);
        +
        iterator erase(const_iterator b, const_iterator e);

        Requires: b and e must be valid iterators to elements in *this.

        Effects: Erases the element range pointed by b and e No destructors are called.

        Returns: the first element remaining beyond the removed elements, or end() if no such element exists.

        @@ -393,7 +393,7 @@

        Note: Invalidates the iterators (but not the references) to the erased elements.

      30. -
        iterator erase(const_iterator b, const_iterator e, size_type n);
        +
        iterator erase(const_iterator b, const_iterator e, size_type n);

        Requires: b and e must be valid iterators to elements in *this. n must be distance(b, e).

        Effects: Erases the element range pointed by b and e No destructors are called.

        Returns: the first element remaining beyond the removed elements, or end() if no such element exists.

        @@ -403,7 +403,7 @@
      31. template<typename Disposer> 
        -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
        + iterator erase_and_dispose(const_iterator i, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases the element pointed by i of the list. No destructors are called. Disposer::operator()(pointer) is called for the removed element.

        Returns: the first element remaining beyond the removed element, or end() if no such element exists.

        @@ -413,7 +413,7 @@
      32. template<typename Disposer> 
        -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
        +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                      Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases the element range pointed by b and e No destructors are called. Disposer::operator()(pointer) is called for the removed elements.

        @@ -423,14 +423,14 @@

        Note: Invalidates the iterators to the erased elements.

      33. -
        void clear();
        +
        void clear();

        Effects: Erases all the elements of the container. No destructors are called.

        Throws: Nothing.

        Complexity: Linear to the number of elements of the list. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

        Note: Invalidates the iterators (but not the references) to the erased elements.

      34. -
        template<typename Disposer> void clear_and_dispose(Disposer disposer);
        +
        template<typename Disposer> void clear_and_dispose(Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases all the elements of the container. No destructors are called. Disposer::operator()(pointer) is called for the removed elements.

        Throws: Nothing.

        @@ -439,7 +439,7 @@
      35. template<typename Cloner, typename Disposer> 
        -  void clone_from(const list & src, Cloner cloner, Disposer disposer);
        + void clone_from(const list & src, Cloner cloner, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this.

        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

        @@ -448,7 +448,7 @@
      36. template<typename Cloner, typename Disposer> 
        -  void clone_from(list && src, Cloner cloner, Disposer disposer);
        + void clone_from(list && src, Cloner cloner, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this.

        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

        @@ -456,7 +456,7 @@

        Throws: If cloner throws. Basic guarantee.

      37. -
        iterator insert(const_iterator p, reference value);
        +
        iterator insert(const_iterator p, reference value);

        Requires: value must be an lvalue and p must be a valid iterator of *this.

        Effects: Inserts the value before the position pointed by p.

        Returns: An iterator to the inserted element.

        @@ -466,7 +466,7 @@
      38. template<typename Iterator> 
        -  void insert(const_iterator p, Iterator b, Iterator e);
        + void insert(const_iterator p, Iterator b, Iterator e);

        Requires: Dereferencing iterator must yield an lvalue of type value_type and p must be a valid iterator of *this.

        Effects: Inserts the range pointed by b and e before the position p. No copy constructors are called.

        Throws: Nothing.

        @@ -474,7 +474,7 @@

        Note: Does not affect the validity of iterators and references.

      39. -
        template<typename Iterator> void assign(Iterator b, Iterator e);
        +
        template<typename Iterator> void assign(Iterator b, Iterator e);

        Requires: Dereferencing iterator must yield an lvalue of type value_type.

        Effects: Clears the list and inserts the range pointed by b and e. No destructors or copy constructors are called.

        Throws: Nothing.

        @@ -483,7 +483,7 @@
      40. template<typename Iterator, typename Disposer> 
        -  void dispose_and_assign(Disposer disposer, Iterator b, Iterator e);
        + void dispose_and_assign(Disposer disposer, Iterator b, Iterator e);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Requires: Dereferencing iterator must yield an lvalue of type value_type.

        Effects: Clears the list and inserts the range pointed by b and e. No destructors or copy constructors are called. Disposer::operator()(pointer) is called for the removed elements.

        @@ -492,7 +492,7 @@

        Note: Invalidates the iterators (but not the references) to the erased elements.

      41. -
        void splice(const_iterator p, list & x);
        +
        void splice(const_iterator p, list & x);

        Requires: p must be a valid iterator of *this.

        Effects: Transfers all the elements of list x to this list, before the the element pointed by p. No destructors or copy constructors are called.

        Throws: Nothing.

        @@ -500,7 +500,7 @@

        Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

      42. -
        void splice(const_iterator p, list & x, const_iterator new_ele);
        +
        void splice(const_iterator p, list & x, const_iterator new_ele);

        Requires: p must be a valid iterator of *this. new_ele must point to an element contained in list x.

        Effects: Transfers the value pointed by new_ele, from list x to this list, before the element pointed by p. No destructors or copy constructors are called. If p == new_ele or p == ++new_ele, this function is a null operation.

        Throws: Nothing.

        @@ -508,7 +508,7 @@

        Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

      43. -
        void splice(const_iterator p, list & x, const_iterator f, const_iterator e);
        +
        void splice(const_iterator p, list & x, const_iterator f, const_iterator e);

        Requires: p must be a valid iterator of *this. f and e must point to elements contained in list x.

        Effects: Transfers the range pointed by f and e from list x to this list, before the element pointed by p. No destructors or copy constructors are called.

        Throws: Nothing.

        @@ -516,7 +516,7 @@

        Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

      44. -
        void splice(const_iterator p, list & x, const_iterator f, const_iterator e, 
        +
        void splice(const_iterator p, list & x, const_iterator f, const_iterator e, 
                     size_type n);

        Requires: p must be a valid iterator of *this. f and e must point to elements contained in list x. n == distance(f, e)

        Effects: Transfers the range pointed by f and e from list x to this list, before the element pointed by p. No destructors or copy constructors are called.

        @@ -525,14 +525,14 @@

        Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

      45. -
        void sort();
        +
        void sort();

        Effects: This function sorts the list *this according to std::less<value_type>. The sort is stable, that is, the relative order of equivalent elements is preserved.

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or std::less<value_type> throws. Basic guarantee.

        Notes: Iterators and references are not invalidated.

        Complexity: The number of comparisons is approximately N log N, where N is the list's size.

      46. -
        template<typename Predicate> void sort(Predicate p);
        +
        template<typename Predicate> void sort(Predicate p);

        Requires: p must be a comparison function that induces a strict weak ordering

        Effects: This function sorts the list *this according to p. The sort is stable, that is, the relative order of equivalent elements is preserved.

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the predicate throws. Basic guarantee.

        @@ -540,14 +540,14 @@

        Complexity: The number of comparisons is approximately N log N, where N is the list's size.

      47. -
        void merge(list & x);
        +
        void merge(list & x);

        Effects: This function removes all of x's elements and inserts them in order into *this according to std::less<value_type>. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.

        Throws: If std::less<value_type> throws. Basic guarantee.

        Complexity: This function is linear time: it performs at most size() + x.size() - 1 comparisons.

        Note: Iterators and references are not invalidated

      48. -
        template<typename Predicate> void merge(list & x, Predicate p);
        +
        template<typename Predicate> void merge(list & x, Predicate p);

        Requires: p must be a comparison function that induces a strict weak ordering and both *this and x must be sorted according to that ordering The lists x and *this must be distinct.

        Effects: This function removes all of x's elements and inserts them in order into *this. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.

        Throws: If the predicate throws. Basic guarantee.

        @@ -555,14 +555,14 @@

        Note: Iterators and references are not invalidated.

      49. -
        void reverse();
        +
        void reverse();

        Effects: Reverses the order of elements in the list.

        Throws: Nothing.

        Complexity: This function is linear time.

        Note: Iterators and references are not invalidated

      50. -
        void remove(const_reference value);
        +
        void remove(const_reference value);

        Effects: Removes all the elements that compare equal to value. No destructors are called.

        Throws: If std::equal_to<value_type> throws. Basic guarantee.

        Complexity: Linear time. It performs exactly size() comparisons for equality.

        @@ -570,7 +570,7 @@
      51. template<typename Disposer> 
        -  void remove_and_dispose(const_reference value, Disposer disposer);
        + void remove_and_dispose(const_reference value, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Removes all the elements that compare equal to value. Disposer::operator()(pointer) is called for every removed element.

        Throws: If std::equal_to<value_type> throws. Basic guarantee.

        @@ -578,7 +578,7 @@

        Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

      52. -
        template<typename Pred> void remove_if(Pred pred);
        +
        template<typename Pred> void remove_if(Pred pred);

        Effects: Removes all the elements for which a specified predicate is satisfied. No destructors are called.

        Throws: If pred throws. Basic guarantee.

        Complexity: Linear time. It performs exactly size() calls to the predicate.

        @@ -586,7 +586,7 @@
      53. template<typename Pred, typename Disposer> 
        -  void remove_and_dispose_if(Pred pred, Disposer disposer);
        + void remove_and_dispose_if(Pred pred, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Removes all the elements for which a specified predicate is satisfied. Disposer::operator()(pointer) is called for every removed element.

        Throws: If pred throws. Basic guarantee.

        @@ -594,21 +594,21 @@

        Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

      54. -
        void unique();
        +
        void unique();

        Effects: Removes adjacent duplicate elements or adjacent elements that are equal from the list. No destructors are called.

        Throws: If std::equal_to<value_type throws. Basic guarantee.

        Complexity: Linear time (size()-1 comparisons calls to pred()).

        Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

      55. -
        template<typename BinaryPredicate> void unique(BinaryPredicate pred);
        +
        template<typename BinaryPredicate> void unique(BinaryPredicate pred);

        Effects: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. No destructors are called.

        Throws: If pred throws. Basic guarantee.

        Complexity: Linear time (size()-1 comparisons equality comparisons).

        Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

      56. -
        template<typename Disposer> void unique_and_dispose(Disposer disposer);
        +
        template<typename Disposer> void unique_and_dispose(Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Removes adjacent duplicate elements or adjacent elements that are equal from the list. Disposer::operator()(pointer) is called for every removed element.

        Throws: If std::equal_to<value_type throws. Basic guarantee.

        @@ -617,7 +617,7 @@
      57. template<typename BinaryPredicate, typename Disposer> 
        -  void unique_and_dispose(BinaryPredicate pred, Disposer disposer);
        + void unique_and_dispose(BinaryPredicate pred, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. Disposer::operator()(pointer) is called for every removed element.

        Throws: If pred throws. Basic guarantee.

        @@ -625,7 +625,7 @@

        Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

      58. -
        iterator iterator_to(reference value);
        +
        iterator iterator_to(reference value);

        Requires: value must be a reference to a value inserted in a list.

        Effects: This function returns a const_iterator pointing to the element

        Throws: Nothing.

        @@ -633,7 +633,7 @@

        Note: Iterators and references are not invalidated.

      59. -
        const_iterator iterator_to(const_reference value) const;
        +
        const_iterator iterator_to(const_reference value) const;

        Requires: value must be a const reference to a value inserted in a list.

        Effects: This function returns an iterator pointing to the element.

        Throws: Nothing.

        @@ -641,7 +641,7 @@

        Note: Iterators and references are not invalidated.

      60. -
        void check() const;
        +
        void check() const;

        Effects: Asserts the integrity of the container.

        Complexity: Linear time.

        Note: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions.

        @@ -650,24 +650,24 @@

      -list public static functions

      +list public static functions
      1. -
        static list & container_from_end_iterator(iterator end_iterator);
        +
        static list & container_from_end_iterator(iterator end_iterator);

        Precondition: end_iterator must be a valid end iterator of list.

        Effects: Returns a const reference to the list associated to the end iterator

        Throws: Nothing.

        Complexity: Constant.

      2. -
        static const list & container_from_end_iterator(const_iterator end_iterator);
        +
        static const list & container_from_end_iterator(const_iterator end_iterator);

        Precondition: end_iterator must be a valid end const_iterator of list.

        Effects: Returns a const reference to the list associated to the end iterator

        Throws: Nothing.

        Complexity: Constant.

      3. -
        static iterator s_iterator_to(reference value);
        +
        static iterator s_iterator_to(reference value);

        Requires: value must be a reference to a value inserted in a list.

        Effects: This function returns a const_iterator pointing to the element

        Throws: Nothing.

        @@ -675,7 +675,7 @@

        Note: Iterators and references are not invalidated. This static function is available only if the value traits is stateless.

      4. -
        static const_iterator s_iterator_to(const_reference value);
        +
        static const_iterator s_iterator_to(const_reference value);

        Requires: value must be a const reference to a value inserted in a list.

        Effects: This function returns an iterator pointing to the element.

        Throws: Nothing.

        diff --git a/doc/html/boost/intrusive/list_base_hook.html b/doc/html/boost/intrusive/list_base_hook.html index 0965a20f08..523304a57f 100644 --- a/doc/html/boost/intrusive/list_base_hook.html +++ b/doc/html/boost/intrusive/list_base_hook.html @@ -36,15 +36,15 @@ class list_base_hook : public make_list_base_hook::type< O1, O2, O3 > { public: // construct/copy/destruct - list_base_hook(); - list_base_hook(const list_base_hook &); - list_base_hook & operator=(const list_base_hook &); - ~list_base_hook(); + list_base_hook(); + list_base_hook(const list_base_hook &); + list_base_hook & operator=(const list_base_hook &); + ~list_base_hook(); - // public member functions - void swap_nodes(list_base_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(list_base_hook &); + bool is_linked() const; + void unlink(); };

      Description

      @@ -60,24 +60,24 @@ construct/copy/destruct
      1. -
        list_base_hook();
        +
        list_base_hook();

        Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

        Throws: Nothing.

      2. -
        list_base_hook(const list_base_hook &);
        +
        list_base_hook(const list_base_hook &);

        Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

        Throws: Nothing.

        Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

      3. -
        list_base_hook & operator=(const list_base_hook &);
        +
        list_base_hook & operator=(const list_base_hook &);

        Effects: Empty function. The argument is ignored.

        Throws: Nothing.

        Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

      4. -
        ~list_base_hook();
        +
        ~list_base_hook();

        Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in an list an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

        Throws: Nothing.

      5. @@ -85,22 +85,22 @@

      -list_base_hook public member functions

      +list_base_hook public member functions
      1. -
        void swap_nodes(list_base_hook & other);
        +
        void swap_nodes(list_base_hook & other);

        Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

        Complexity: Constant

        Throws: Nothing.

      2. -
        bool is_linked() const;
        +
        bool is_linked() const;

        Precondition: link_mode must be safe_link or auto_unlink.

        Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether list::iterator_to will return a valid iterator.

        Complexity: Constant

      3. -
        void unlink();
        +
        void unlink();

        Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

        Throws: Nothing.

      4. diff --git a/doc/html/boost/intrusive/list_member_hook.html b/doc/html/boost/intrusive/list_member_hook.html index 2a2dcba123..0018ddacaf 100644 --- a/doc/html/boost/intrusive/list_member_hook.html +++ b/doc/html/boost/intrusive/list_member_hook.html @@ -36,15 +36,15 @@ class list_member_hook : public make_list_member_hook::type< O1, O2, O3 > { public: // construct/copy/destruct - list_member_hook(); - list_member_hook(const list_member_hook &); - list_member_hook & operator=(const list_member_hook &); - ~list_member_hook(); + list_member_hook(); + list_member_hook(const list_member_hook &); + list_member_hook & operator=(const list_member_hook &); + ~list_member_hook(); - // public member functions - void swap_nodes(list_member_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(list_member_hook &); + bool is_linked() const; + void unlink(); };

      Description

      @@ -59,24 +59,24 @@ construct/copy/destruct
      1. -
        list_member_hook();
        +
        list_member_hook();

        Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

        Throws: Nothing.

      2. -
        list_member_hook(const list_member_hook &);
        +
        list_member_hook(const list_member_hook &);

        Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

        Throws: Nothing.

        Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

      3. -
        list_member_hook & operator=(const list_member_hook &);
        +
        list_member_hook & operator=(const list_member_hook &);

        Effects: Empty function. The argument is ignored.

        Throws: Nothing.

        Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

      4. -
        ~list_member_hook();
        +
        ~list_member_hook();

        Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in an list an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

        Throws: Nothing.

      5. @@ -84,22 +84,22 @@

      -list_member_hook public member functions

      +list_member_hook public member functions
      1. -
        void swap_nodes(list_member_hook & other);
        +
        void swap_nodes(list_member_hook & other);

        Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

        Complexity: Constant

        Throws: Nothing.

      2. -
        bool is_linked() const;
        +
        bool is_linked() const;

        Precondition: link_mode must be safe_link or auto_unlink.

        Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether list::iterator_to will return a valid iterator.

        Complexity: Constant

      3. -
        void unlink();
        +
        void unlink();

        Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

        Throws: Nothing.

      4. diff --git a/doc/html/boost/intrusive/make_unordered_idp65807072.html b/doc/html/boost/intrusive/make_unordered_idp65807072.html deleted file mode 100644 index dd4856dc58..0000000000 --- a/doc/html/boost/intrusive/make_unordered_idp65807072.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Struct template make_unordered_set_base_hook - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Struct template make_unordered_set_base_hook

        -

        boost::intrusive::make_unordered_set_base_hook

        -
        -

        Synopsis

        -
        // In header: <boost/intrusive/unordered_set_hook.hpp>
        -
        -template<class... Options> 
        -struct make_unordered_set_base_hook {
        -  // types
        -  typedef implementation_defined type;
        -};
        -
        -

        Description

        -

        Helper metafunction to define a unordered_set_base_hook that yields to the same type when the same options (either explicitly or implicitly) are used.

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/intrusive/make_unordered_idp65862816.html b/doc/html/boost/intrusive/make_unordered_idp65862816.html deleted file mode 100644 index 60453e2092..0000000000 --- a/doc/html/boost/intrusive/make_unordered_idp65862816.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Struct template make_unordered_set_member_hook - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Struct template make_unordered_set_member_hook

        -

        boost::intrusive::make_unordered_set_member_hook

        -
        -

        Synopsis

        -
        // In header: <boost/intrusive/unordered_set_hook.hpp>
        -
        -template<class... Options> 
        -struct make_unordered_set_member_hook {
        -  // types
        -  typedef implementation_defined type;
        -};
        -
        -

        Description

        -

        Helper metafunction to define a unordered_set_member_hook that yields to the same type when the same options (either explicitly or implicitly) are used.

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/intrusive/make_unordered_idp66587792.html b/doc/html/boost/intrusive/make_unordered_idp66587792.html new file mode 100644 index 0000000000..2dc837cb57 --- /dev/null +++ b/doc/html/boost/intrusive/make_unordered_idp66587792.html @@ -0,0 +1,58 @@ + + + + +Struct template make_unordered_set_base_hook + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Struct template make_unordered_set_base_hook

        +

        boost::intrusive::make_unordered_set_base_hook

        +
        +

        Synopsis

        +
        // In header: <boost/intrusive/unordered_set_hook.hpp>
        +
        +template<class... Options> 
        +struct make_unordered_set_base_hook {
        +  // types
        +  typedef implementation_defined type;
        +};
        +
        +

        Description

        +

        Helper metafunction to define a unordered_set_base_hook that yields to the same type when the same options (either explicitly or implicitly) are used.

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/intrusive/make_unordered_idp66643536.html b/doc/html/boost/intrusive/make_unordered_idp66643536.html new file mode 100644 index 0000000000..332d66b2f7 --- /dev/null +++ b/doc/html/boost/intrusive/make_unordered_idp66643536.html @@ -0,0 +1,58 @@ + + + + +Struct template make_unordered_set_member_hook + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Struct template make_unordered_set_member_hook

        +

        boost::intrusive::make_unordered_set_member_hook

        +
        +

        Synopsis

        +
        // In header: <boost/intrusive/unordered_set_hook.hpp>
        +
        +template<class... Options> 
        +struct make_unordered_set_member_hook {
        +  // types
        +  typedef implementation_defined type;
        +};
        +
        +

        Description

        +

        Helper metafunction to define a unordered_set_member_hook that yields to the same type when the same options (either explicitly or implicitly) are used.

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/intrusive/make_unordered_multiset.html b/doc/html/boost/intrusive/make_unordered_multiset.html index e5a7bdd1b3..9e3ee54597 100644 --- a/doc/html/boost/intrusive/make_unordered_multiset.html +++ b/doc/html/boost/intrusive/make_unordered_multiset.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        @@ -52,7 +52,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/intrusive/max_pointer_pl_idp55128640.html b/doc/html/boost/intrusive/max_pointer_pl_idp55128640.html deleted file mode 100644 index 6d56af7813..0000000000 --- a/doc/html/boost/intrusive/max_pointer_pl_idp55128640.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - -Struct template max_pointer_plus_bits<void *, Alignment> - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Struct template max_pointer_plus_bits<void *, Alignment>

        -

        boost::intrusive::max_pointer_plus_bits<void *, Alignment>

        -
        -

        Synopsis

        -
        // In header: <boost/intrusive/pointer_plus_bits.hpp>
        -
        -template<std::size_t Alignment> 
        -struct max_pointer_plus_bits<void *, Alignment> {
        -
        -  // public data members
        -  static const std::size_t value;
        -};
        -
        -

        Description

        -

        This is a specialization for raw pointers. Raw pointers can embed extra bits in the lower bits if the alignment is multiple of 2pow(NumBits).

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/intrusive/max_pointer_pl_idp55909360.html b/doc/html/boost/intrusive/max_pointer_pl_idp55909360.html new file mode 100644 index 0000000000..a10652ccb2 --- /dev/null +++ b/doc/html/boost/intrusive/max_pointer_pl_idp55909360.html @@ -0,0 +1,59 @@ + + + + +Struct template max_pointer_plus_bits<void *, Alignment> + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Struct template max_pointer_plus_bits<void *, Alignment>

        +

        boost::intrusive::max_pointer_plus_bits<void *, Alignment>

        +
        +

        Synopsis

        +
        // In header: <boost/intrusive/pointer_plus_bits.hpp>
        +
        +template<std::size_t Alignment> 
        +struct max_pointer_plus_bits<void *, Alignment> {
        +
        +  // public data members
        +  static const std::size_t value;
        +};
        +
        +

        Description

        +

        This is a specialization for raw pointers. Raw pointers can embed extra bits in the lower bits if the alignment is multiple of 2pow(NumBits).

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/intrusive/max_pointer_plus_bits.html b/doc/html/boost/intrusive/max_pointer_plus_bits.html index abf1f532b7..d266f3d667 100644 --- a/doc/html/boost/intrusive/max_pointer_plus_bits.html +++ b/doc/html/boost/intrusive/max_pointer_plus_bits.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        @@ -53,7 +53,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/intrusive/member_value_traits.html b/doc/html/boost/intrusive/member_value_traits.html index 4cdadf4b67..caab53702b 100644 --- a/doc/html/boost/intrusive/member_value_traits.html +++ b/doc/html/boost/intrusive/member_value_traits.html @@ -48,11 +48,11 @@ typedef value_type & reference; typedef const value_type & const_reference; - // public static functions - static node_ptr to_node_ptr(reference); - static const_node_ptr to_node_ptr(const_reference); - static pointer to_value_ptr(const node_ptr &); - static const_pointer to_value_ptr(const const_node_ptr &); + // public static functions + static node_ptr to_node_ptr(reference); + static const_node_ptr to_node_ptr(const_reference); + static pointer to_value_ptr(const node_ptr &); + static const_pointer to_value_ptr(const const_node_ptr &); // public data members static const link_mode_type link_mode; @@ -62,12 +62,12 @@

        This value traits template is used to create value traits from user defined node traits where value_traits::value_type will store a node_traits::node

        -member_value_traits public static functions

        +member_value_traits public static functions
          -
        1. static node_ptr to_node_ptr(reference value);
        2. -
        3. static const_node_ptr to_node_ptr(const_reference value);
        4. -
        5. static pointer to_value_ptr(const node_ptr & n);
        6. -
        7. static const_pointer to_value_ptr(const const_node_ptr & n);
        8. +
        9. static node_ptr to_node_ptr(reference value);
        10. +
        11. static const_node_ptr to_node_ptr(const_reference value);
        12. +
        13. static pointer to_value_ptr(const node_ptr & n);
        14. +
        15. static const_pointer to_value_ptr(const const_node_ptr & n);
        diff --git a/doc/html/boost/intrusive/multiset.html b/doc/html/boost/intrusive/multiset.html index 7071be84e8..be7e4ba0ef 100644 --- a/doc/html/boost/intrusive/multiset.html +++ b/doc/html/boost/intrusive/multiset.html @@ -60,120 +60,120 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - multiset(); - explicit multiset(const key_compare &, + multiset(); + explicit multiset(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - multiset(Iterator, Iterator, const key_compare & = key_compare(), + multiset(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - multiset(multiset &&); - multiset & operator=(multiset &&); - ~multiset(); + multiset(multiset &&); + multiset & operator=(multiset &&); + ~multiset(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(multiset &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(multiset &); template<typename Cloner, typename Disposer> - void clone_from(const multiset &, Cloner, Disposer); + void clone_from(const multiset &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(multiset &&, Cloner, Disposer); - iterator insert(reference); - iterator insert(const_iterator, reference); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + void clone_from(multiset &&, Cloner, Disposer); + iterator insert(reference); + iterator insert(const_iterator, reference); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - template<class... Options2> void merge(multiset< T, Options2...> &); - template<class... Options2> void merge(set< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + template<class... Options2> void merge(multiset< T, Options2...> &); + template<class... Options2> void merge(set< T, Options2...> &); - // public static functions - static multiset & container_from_end_iterator(iterator); - static const multiset & container_from_end_iterator(const_iterator); - static multiset & container_from_iterator(iterator); - static const multiset & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static multiset & container_from_end_iterator(iterator); + static const multiset & container_from_end_iterator(const_iterator); + static multiset & container_from_iterator(iterator); + static const multiset & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -190,13 +190,13 @@ construct/copy/destruct
        1. -
          multiset();
          +
          multiset();

          Effects: Constructs an empty container.

          Complexity: Constant.

          Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

        2. -
          explicit multiset(const key_compare & cmp, 
          +
          explicit multiset(const key_compare & cmp, 
                             const value_traits & v_traits = value_traits());

          Effects: Constructs an empty container with given comparison and traits.

          Complexity: Constant.

          @@ -204,7 +204,7 @@
        3. template<typename Iterator> 
          -  multiset(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
          +  multiset(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                      const value_traits & v_traits = value_traits());

          Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

          Effects: Constructs an empty container and inserts elements from [b, e).

          @@ -212,17 +212,17 @@

          Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

        4. -
          multiset(multiset && x);
          +
          multiset(multiset && x);

          Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

          Complexity: Constant.

          Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

        5. -
          multiset & operator=(multiset && x);
          +
          multiset & operator=(multiset && x);

          Effects: Equivalent to swap

        6. -
          ~multiset();
          +
          ~multiset();

          Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

          Complexity: Linear to elements contained in *this.

          Throws: Nothing.

          @@ -231,131 +231,131 @@

        -multiset public member functions

        +multiset public member functions
        1. -
          iterator begin();
          +
          iterator begin();

          Effects: Returns an iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        2. -
          const_iterator begin() const;
          +
          const_iterator begin() const;

          Effects: Returns a const_iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        3. -
          const_iterator cbegin() const;
          +
          const_iterator cbegin() const;

          Effects: Returns a const_iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        4. -
          iterator end();
          +
          iterator end();

          Effects: Returns an iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        5. -
          const_iterator end() const;
          +
          const_iterator end() const;

          Effects: Returns a const_iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        6. -
          const_iterator cend() const;
          +
          const_iterator cend() const;

          Effects: Returns a const_iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        7. -
          reverse_iterator rbegin();
          +
          reverse_iterator rbegin();

          Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        8. -
          const_reverse_iterator rbegin() const;
          +
          const_reverse_iterator rbegin() const;

          Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        9. -
          const_reverse_iterator crbegin() const;
          +
          const_reverse_iterator crbegin() const;

          Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        10. -
          reverse_iterator rend();
          +
          reverse_iterator rend();

          Effects: Returns a reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        11. -
          const_reverse_iterator rend() const;
          +
          const_reverse_iterator rend() const;

          Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        12. -
          const_reverse_iterator crend() const;
          +
          const_reverse_iterator crend() const;

          Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        13. -
          iterator root();
          +
          iterator root();

          Effects: Returns a iterator pointing to the root node of the container or end() if not present.

          Complexity: Constant.

          Throws: Nothing.

        14. -
          const_iterator root() const;
          +
          const_iterator root() const;

          Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

          Complexity: Constant.

          Throws: Nothing.

        15. -
          const_iterator croot() const;
          +
          const_iterator croot() const;

          Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

          Complexity: Constant.

          Throws: Nothing.

        16. -
          key_compare key_comp() const;
          +
          key_compare key_comp() const;

          Effects: Returns the key_compare object used by the container.

          Complexity: Constant.

          Throws: If key_compare copy-constructor throws.

        17. -
          value_compare value_comp() const;
          +
          value_compare value_comp() const;

          Effects: Returns the value_compare object used by the container.

          Complexity: Constant.

          Throws: If value_compare copy-constructor throws.

        18. -
          bool empty() const;
          +
          bool empty() const;

          Effects: Returns true if the container is empty.

          Complexity: Constant.

          Throws: Nothing.

        19. -
          size_type size() const;
          +
          size_type size() const;

          Effects: Returns the number of elements stored in the container.

          Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

          Throws: Nothing.

        20. -
          void swap(multiset & other);
          +
          void swap(multiset & other);

          Effects: Swaps the contents of two containers.

          Complexity: Constant.

          Throws: If the comparison functor's swap call throws.

        21. template<typename Cloner, typename Disposer> 
          -  void clone_from(const multiset & src, Cloner cloner, Disposer disposer);
          + void clone_from(const multiset & src, Cloner cloner, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

          Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

          If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

          @@ -364,7 +364,7 @@
        22. template<typename Cloner, typename Disposer> 
          -  void clone_from(multiset && src, Cloner cloner, Disposer disposer);
          + void clone_from(multiset && src, Cloner cloner, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

          Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

          If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

          @@ -373,7 +373,7 @@

          Note: This version can modify the source container, useful to implement move semantics.

        23. -
          iterator insert(reference value);
          +
          iterator insert(reference value);

          Requires: value must be an lvalue

          Effects: Inserts value into the container before the upper bound.

          Complexity: Average complexity for insert element is at most logarithmic.

          @@ -381,7 +381,7 @@

          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

        24. -
          iterator insert(const_iterator hint, reference value);
          +
          iterator insert(const_iterator hint, reference value);

          Requires: value must be an lvalue, and "hint" must be a valid iterator.

          Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

          Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

          @@ -389,7 +389,7 @@

          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

        25. -
          template<typename Iterator> void insert(Iterator b, Iterator e);
          +
          template<typename Iterator> void insert(Iterator b, Iterator e);

          Requires: Dereferencing iterator must yield an lvalue of type value_type.

          Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

          Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

          @@ -397,7 +397,7 @@

          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

        26. -
          iterator insert_before(const_iterator pos, reference value);
          +
          iterator insert_before(const_iterator pos, reference value);

          Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

          Effects: Inserts x into the container before "pos".

          Complexity: Constant time.

          @@ -405,7 +405,7 @@

          Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

        27. -
          void push_back(reference value);
          +
          void push_back(reference value);

          Requires: value must be an lvalue, and it must be no less than the greatest inserted key

          Effects: Inserts x into the container in the last position.

          Complexity: Constant time.

          @@ -413,7 +413,7 @@

          Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

        28. -
          void push_front(reference value);
          +
          void push_front(reference value);

          Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

          Effects: Inserts x into the container in the first position.

          Complexity: Constant time.

          @@ -421,21 +421,21 @@

          Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

        29. -
          iterator erase(const_iterator i);
          +
          iterator erase(const_iterator i);

          Effects: Erases the element pointed to by i.

          Complexity: Average complexity for erase element is constant time.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        30. -
          iterator erase(const_iterator b, const_iterator e);
          +
          iterator erase(const_iterator b, const_iterator e);

          Effects: Erases the range pointed to by b end e.

          Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        31. -
          size_type erase(const key_type & key);
          +
          size_type erase(const key_type & key);

          Effects: Erases all the elements with the given value.

          Returns: The number of erased elements.

          Complexity: O(log(size() + N).

          @@ -444,7 +444,7 @@
        32. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
          + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Erases all the elements with the given key. according to the comparison functor "comp".

          Returns: The number of erased elements.

          @@ -454,7 +454,7 @@
        33. template<typename Disposer> 
          -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
          + iterator erase_and_dispose(const_iterator i, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

          Complexity: Average complexity for erase element is constant time.

          @@ -463,7 +463,7 @@
        34. template<typename Disposer> 
          -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
          +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                        Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

          @@ -473,7 +473,7 @@
        35. template<typename Disposer> 
          -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
          + size_type erase_and_dispose(const key_type & key, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

          Returns: The number of erased elements.

          @@ -483,7 +483,7 @@
        36. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
          -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
          +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                         Disposer disposer);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

          Requires: Disposer::operator()(pointer) shouldn't throw.

          @@ -494,47 +494,47 @@

          Note: Invalidates the iterators to the erased elements.

        37. -
          void clear();
          +
          void clear();

          Effects: Erases all of the elements.

          Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        38. -
          template<typename Disposer> void clear_and_dispose(Disposer disposer);
          +
          template<typename Disposer> void clear_and_dispose(Disposer disposer);

          Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

        39. -
          size_type count(const key_type & key) const;
          +
          size_type count(const key_type & key) const;

          Effects: Returns the number of contained elements with the given value

          Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

          Throws: If key_compare throws.

        40. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
          + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Returns the number of contained elements with the given key

          Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

          Throws: If comp throws.

        41. -
          iterator lower_bound(const key_type & key);
          +
          iterator lower_bound(const key_type & key);

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        42. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        43. -
          const_iterator lower_bound(const key_type & key) const;
          +
          const_iterator lower_bound(const key_type & key) const;

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -542,27 +542,27 @@
        44. template<typename KeyType, typename KeyTypeKeyCompare> 
             const_iterator 
          -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
          + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        45. -
          iterator upper_bound(const key_type & key);
          +
          iterator upper_bound(const key_type & key);

          Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        46. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        47. -
          const_iterator upper_bound(const key_type & key) const;
          +
          const_iterator upper_bound(const key_type & key) const;

          Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -570,42 +570,42 @@
        48. template<typename KeyType, typename KeyTypeKeyCompare> 
             const_iterator 
          -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
          + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        49. -
          iterator find(const key_type & key);
          +
          iterator find(const key_type & key);

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        50. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        51. -
          const_iterator find(const key_type & key) const;
          +
          const_iterator find(const key_type & key) const;

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        52. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
          + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        53. -
          std::pair< iterator, iterator > equal_range(const key_type & key);
          +
          std::pair< iterator, iterator > equal_range(const key_type & key);

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -613,7 +613,7 @@
        54. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, iterator > 
          -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
          + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          @@ -621,7 +621,7 @@
        55. std::pair< const_iterator, const_iterator > 
          -equal_range(const key_type & key) const;
          +equal_range(const key_type & key) const;

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -629,7 +629,7 @@
        56. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< const_iterator, const_iterator > 
          -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
          + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          @@ -637,7 +637,7 @@
        57. std::pair< iterator, iterator > 
          -bounded_range(const key_type & lower_key, const key_type & upper_key, 
          +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                         bool left_closed, bool right_closed);

          Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

          If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

          @@ -652,7 +652,7 @@
        58. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, iterator > 
          -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
          +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                           KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

          Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

          upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

          @@ -668,7 +668,7 @@
        59. std::pair< const_iterator, const_iterator > 
          -bounded_range(const key_type & lower_key, const key_type & upper_key, 
          +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                         bool left_closed, bool right_closed) const;

          Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

          If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

          @@ -683,7 +683,7 @@
        60. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< const_iterator, const_iterator > 
          -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
          +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                           KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

          Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

          upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

          @@ -698,28 +698,28 @@

          Note: Experimental function, the interface might change in future releases.

        61. -
          iterator iterator_to(reference value);
          +
          iterator iterator_to(reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          Throws: Nothing.

        62. -
          const_iterator iterator_to(const_reference value) const;
          +
          const_iterator iterator_to(const_reference value) const;

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid const_iterator i belonging to the set that points to the value

          Complexity: Constant.

          Throws: Nothing.

        63. -
          pointer unlink_leftmost_without_rebalance();
          +
          pointer unlink_leftmost_without_rebalance();

          Effects: Unlinks the leftmost node from the container.

          Complexity: Average complexity is constant time.

          Throws: Nothing.

          Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

        64. -
          void replace_node(iterator replace_this, reference with_this);
          +
          void replace_node(iterator replace_this, reference with_this);

          Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

          Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

          Complexity: Constant.

          @@ -727,7 +727,7 @@

          Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

        65. -
          void remove_node(reference value);
          +
          void remove_node(reference value);

          Effects: removes "value" from the container.

          Throws: Nothing.

          Complexity: Logarithmic time.

          @@ -735,7 +735,7 @@

          If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

        66. -
          template<class... Options2> void merge(multiset< T, Options2...> & source);
          +
          template<class... Options2> void merge(multiset< T, Options2...> & source);

          Requires: "source" container's Options can only can differ in the comparison function from *this.

          Effects: Extracts each element in source and insert it into a using the comparison object of *this.

          Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

          @@ -743,7 +743,7 @@

          Complexity: N log(a.size() + N) (N has the value source.size())

        67. -
          template<class... Options2> void merge(set< T, Options2...> & source);
          +
          template<class... Options2> void merge(set< T, Options2...> & source);

          Requires: "source" container's Options can only can differ in the comparison function from *this.

          Effects: Extracts each element in source and insert it into a using the comparison object of *this.

          Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

          @@ -754,10 +754,10 @@

        -multiset public static functions

        +multiset public static functions
        1. -
          static multiset & container_from_end_iterator(iterator end_iterator);
          +
          static multiset & container_from_end_iterator(iterator end_iterator);

          Precondition: end_iterator must be a valid end iterator of the container.

          Effects: Returns a const reference to the container associated to the end iterator

          Throws: Nothing.

          @@ -765,28 +765,28 @@
        2. static const multiset & 
          -container_from_end_iterator(const_iterator end_iterator);
          +container_from_end_iterator(const_iterator end_iterator);

          Precondition: end_iterator must be a valid end iterator of the container.

          Effects: Returns a const reference to the container associated to the end iterator

          Throws: Nothing.

          Complexity: Constant.

        3. -
          static multiset & container_from_iterator(iterator it);
          +
          static multiset & container_from_iterator(iterator it);

          Precondition: it must be a valid iterator of the container.

          Effects: Returns a const reference to the container associated to the iterator

          Throws: Nothing.

          Complexity: Logarithmic.

        4. -
          static const multiset & container_from_iterator(const_iterator it);
          +
          static const multiset & container_from_iterator(const_iterator it);

          Precondition: it must be a valid iterator of the container.

          Effects: Returns a const reference to the container associated to the iterator

          Throws: Nothing.

          Complexity: Logarithmic.

        5. -
          static iterator s_iterator_to(reference value);
          +
          static iterator s_iterator_to(reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          @@ -794,7 +794,7 @@

          Note: This static function is available only if the value traits is stateless.

        6. -
          static const_iterator s_iterator_to(const_reference value);
          +
          static const_iterator s_iterator_to(const_reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          @@ -802,7 +802,7 @@

          Note: This static function is available only if the value traits is stateless.

        7. -
          static void init_node(reference value);
          +
          static void init_node(reference value);

          Requires: value shall not be in a container.

          Effects: init_node puts the hook of a value in a well-known default state.

          Throws: Nothing.

          diff --git a/doc/html/boost/intrusive/pack_options.html b/doc/html/boost/intrusive/pack_options.html index dc87a0280b..2c563e0572 100644 --- a/doc/html/boost/intrusive/pack_options.html +++ b/doc/html/boost/intrusive/pack_options.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

          -PrevUpHomeNext +PrevUpHomeNext
          @@ -84,7 +84,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/intrusive/pointer_has_rebind.html b/doc/html/boost/intrusive/pointer_has_rebind.html index 9026dd9b6e..62eca9e3b1 100644 --- a/doc/html/boost/intrusive/pointer_has_rebind.html +++ b/doc/html/boost/intrusive/pointer_has_rebind.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -38,13 +38,13 @@ template<typename V> struct any { // construct/copy/destruct - any(const V &); + any(const V &); }; - // public static functions + // public static functions template<typename X> - static char test(int, typename X::template rebind< U > *); - template<typename X> static int test(any< int >, void *); + static char test(int, typename X::template rebind< U > *); + template<typename X> static int test(any< int >, void *); // public data members static const bool value; @@ -53,10 +53,10 @@

          Description

          -pointer_has_rebind public static functions

          +pointer_has_rebind public static functions
            -
          1. template<typename X> static char test(int, typename X::template rebind< U > *);
          2. -
          3. template<typename X> static int test(any< int >, void *);
          4. +
          5. template<typename X> static char test(int, typename X::template rebind< U > *);
          6. +
          7. template<typename X> static int test(any< int >, void *);
          @@ -71,7 +71,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/intrusive/pointer_has_rebind/any.html b/doc/html/boost/intrusive/pointer_has_rebind/any.html index 9d54f00cf4..1bf07c5d5c 100644 --- a/doc/html/boost/intrusive/pointer_has_rebind/any.html +++ b/doc/html/boost/intrusive/pointer_has_rebind/any.html @@ -36,7 +36,7 @@ template<typename V> struct any { // construct/copy/destruct - any(const V &); + any(const V &); };

          Description

          @@ -45,7 +45,7 @@ any public construct/copy/destruct -
          1. any(const V &);
          +
          1. any(const V &);
        diff --git a/doc/html/boost/intrusive/pointer_has_rebind_other.html b/doc/html/boost/intrusive/pointer_has_rebind_other.html index 7309456e3a..3fa9a9d3d7 100644 --- a/doc/html/boost/intrusive/pointer_has_rebind_other.html +++ b/doc/html/boost/intrusive/pointer_has_rebind_other.html @@ -38,13 +38,13 @@ template<typename V> struct any { // construct/copy/destruct - any(const V &); + any(const V &); }; - // public static functions + // public static functions template<typename X> - static char test(int, typename X::template rebind< U >::other *); - template<typename X> static int test(any< int >, void *); + static char test(int, typename X::template rebind< U >::other *); + template<typename X> static int test(any< int >, void *); // public data members static const bool value; @@ -53,11 +53,11 @@

        Description

        -pointer_has_rebind_other public static functions

        +pointer_has_rebind_other public static functions
        1. template<typename X> 
          -  static char test(int, typename X::template rebind< U >::other *);
        2. -
        3. template<typename X> static int test(any< int >, void *);
        4. + static char test(int, typename X::template rebind< U >::other *); +
        5. template<typename X> static int test(any< int >, void *);
        diff --git a/doc/html/boost/intrusive/pointer_has_rebind_other/any.html b/doc/html/boost/intrusive/pointer_has_rebind_other/any.html index b97ae55f50..cae8e6943b 100644 --- a/doc/html/boost/intrusive/pointer_has_rebind_other/any.html +++ b/doc/html/boost/intrusive/pointer_has_rebind_other/any.html @@ -36,7 +36,7 @@ template<typename V> struct any { // construct/copy/destruct - any(const V &); + any(const V &); };

        Description

        @@ -45,7 +45,7 @@ any public construct/copy/destruct -
        1. any(const V &);
        +
        1. any(const V &);
      diff --git a/doc/html/boost/intrusive/pointer_plus_b_idp55135712.html b/doc/html/boost/intrusive/pointer_plus_b_idp55135712.html deleted file mode 100644 index 4f3682dd1c..0000000000 --- a/doc/html/boost/intrusive/pointer_plus_b_idp55135712.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Struct template pointer_plus_bits<T *, NumBits> - - - - - - - - - - - - - - - -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Struct template pointer_plus_bits<T *, NumBits>

      -

      boost::intrusive::pointer_plus_bits<T *, NumBits>

      -
      -

      Synopsis

      -
      // In header: <boost/intrusive/pointer_plus_bits.hpp>
      -
      -template<typename T, std::size_t NumBits> 
      -struct pointer_plus_bits<T *, NumBits> {
      -  // types
      -  typedef T * pointer;
      -
      -  // public static functions
      -  static pointer get_pointer(pointer);
      -  static void set_pointer(pointer &, pointer);
      -  static std::size_t get_bits(pointer);
      -  static void set_bits(pointer &, std::size_t);
      -
      -  // public data members
      -  static const uintptr_t Mask;
      -};
      -
      -

      Description

      -

      This is the specialization to embed extra bits of information in a raw pointer. The extra bits are stored in the lower bits of the pointer.

      -
      -

      -pointer_plus_bits public static functions

      -
        -
      1. static pointer get_pointer(pointer n);
      2. -
      3. static void set_pointer(pointer & n, pointer p);
      4. -
      5. static std::size_t get_bits(pointer n);
      6. -
      7. static void set_bits(pointer & n, std::size_t c);
      8. -
      -
      -
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/intrusive/pointer_plus_b_idp55916432.html b/doc/html/boost/intrusive/pointer_plus_b_idp55916432.html new file mode 100644 index 0000000000..9ddf485e7d --- /dev/null +++ b/doc/html/boost/intrusive/pointer_plus_b_idp55916432.html @@ -0,0 +1,77 @@ + + + + +Struct template pointer_plus_bits<T *, NumBits> + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Struct template pointer_plus_bits<T *, NumBits>

      +

      boost::intrusive::pointer_plus_bits<T *, NumBits>

      +
      +

      Synopsis

      +
      // In header: <boost/intrusive/pointer_plus_bits.hpp>
      +
      +template<typename T, std::size_t NumBits> 
      +struct pointer_plus_bits<T *, NumBits> {
      +  // types
      +  typedef T * pointer;
      +
      +  // public static functions
      +  static pointer get_pointer(pointer);
      +  static void set_pointer(pointer &, pointer);
      +  static std::size_t get_bits(pointer);
      +  static void set_bits(pointer &, std::size_t);
      +
      +  // public data members
      +  static const uintptr_t Mask;
      +};
      +
      +

      Description

      +

      This is the specialization to embed extra bits of information in a raw pointer. The extra bits are stored in the lower bits of the pointer.

      +
      +

      +pointer_plus_bits public static functions

      +
        +
      1. static pointer get_pointer(pointer n);
      2. +
      3. static void set_pointer(pointer & n, pointer p);
      4. +
      5. static std::size_t get_bits(pointer n);
      6. +
      7. static void set_bits(pointer & n, std::size_t c);
      8. +
      +
      +
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/intrusive/pointer_plus_bits.html b/doc/html/boost/intrusive/pointer_plus_bits.html index 8dae508a3e..074940e2fc 100644 --- a/doc/html/boost/intrusive/pointer_plus_bits.html +++ b/doc/html/boost/intrusive/pointer_plus_bits.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -51,7 +51,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/intrusive/pointer_rebind.html b/doc/html/boost/intrusive/pointer_rebind.html index fff73af73d..9976cdf804 100644 --- a/doc/html/boost/intrusive/pointer_rebind.html +++ b/doc/html/boost/intrusive/pointer_rebind.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -47,7 +47,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55187168.html b/doc/html/boost/intrusive/pointer_rebind_idp55187168.html deleted file mode 100644 index 63e3fd2ba6..0000000000 --- a/doc/html/boost/intrusive/pointer_rebind_idp55187168.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Struct template pointer_rebinder<Ptr, U, 2u> - - - - - - - - - - - - - - - -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Struct template pointer_rebinder<Ptr, U, 2u>

      -

      boost::intrusive::pointer_rebinder<Ptr, U, 2u>

      -
      -

      Synopsis

      -
      // In header: <boost/intrusive/pointer_rebind.hpp>
      -
      -template<typename Ptr, typename U> 
      -struct pointer_rebinder<Ptr, U, 2u> {
      -  // types
      -  typedef Ptr::template rebind< U >::other type;
      -};
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55190832.html b/doc/html/boost/intrusive/pointer_rebind_idp55190832.html deleted file mode 100644 index 8b12fd412c..0000000000 --- a/doc/html/boost/intrusive/pointer_rebind_idp55190832.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Struct template pointer_rebinder<Ptr, U, 1u> - - - - - - - - - - - - - - - -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Struct template pointer_rebinder<Ptr, U, 1u>

      -

      boost::intrusive::pointer_rebinder<Ptr, U, 1u>

      -
      -

      Synopsis

      -
      // In header: <boost/intrusive/pointer_rebind.hpp>
      -
      -template<typename Ptr, typename U> 
      -struct pointer_rebinder<Ptr, U, 1u> {
      -  // types
      -  typedef Ptr::template rebind< U > type;
      -};
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55194496.html b/doc/html/boost/intrusive/pointer_rebind_idp55194496.html deleted file mode 100644 index 9c4bc43f60..0000000000 --- a/doc/html/boost/intrusive/pointer_rebind_idp55194496.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Struct template pointer_rebinder<Ptr< A, An...>, U, 0u> - - - - - - - - - - - - - - - -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Struct template pointer_rebinder<Ptr< A, An...>, U, 0u>

      -

      boost::intrusive::pointer_rebinder<Ptr< A, An...>, U, 0u>

      -
      -

      Synopsis

      -
      // In header: <boost/intrusive/pointer_rebind.hpp>
      -
      -template<template< class, class...> class Ptr, typename A, class... An, 
      -         typename U> 
      -struct pointer_rebinder<Ptr< A, An...>, U, 0u> {
      -  // types
      -  typedef Ptr< U, An...> type;
      -};
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55200144.html b/doc/html/boost/intrusive/pointer_rebind_idp55200144.html deleted file mode 100644 index 17ceb275da..0000000000 --- a/doc/html/boost/intrusive/pointer_rebind_idp55200144.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Struct template pointer_rebinder<Ptr< A >, U, 0u> - - - - - - - - - - - - - - - -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Struct template pointer_rebinder<Ptr< A >, U, 0u>

      -

      boost::intrusive::pointer_rebinder<Ptr< A >, U, 0u>

      -
      -

      Synopsis

      -
      // In header: <boost/intrusive/pointer_rebind.hpp>
      -
      -template<template< class > class Ptr, typename A, typename U> 
      -struct pointer_rebinder<Ptr< A >, U, 0u> {
      -  // types
      -  typedef Ptr< U > type;
      -};
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55207392.html b/doc/html/boost/intrusive/pointer_rebind_idp55207392.html deleted file mode 100644 index 0e7cd33ca9..0000000000 --- a/doc/html/boost/intrusive/pointer_rebind_idp55207392.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Struct template pointer_rebind<T *, U> - - - - - - - - - - - - - - - -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Struct template pointer_rebind<T *, U>

      -

      boost::intrusive::pointer_rebind<T *, U>

      -
      -

      Synopsis

      -
      // In header: <boost/intrusive/pointer_rebind.hpp>
      -
      -template<typename T, typename U> 
      -struct pointer_rebind<T *, U> {
      -  // types
      -  typedef U * type;
      -};
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55967888.html b/doc/html/boost/intrusive/pointer_rebind_idp55967888.html new file mode 100644 index 0000000000..b86c956ad3 --- /dev/null +++ b/doc/html/boost/intrusive/pointer_rebind_idp55967888.html @@ -0,0 +1,54 @@ + + + + +Struct template pointer_rebinder<Ptr, U, 2u> + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Struct template pointer_rebinder<Ptr, U, 2u>

      +

      boost::intrusive::pointer_rebinder<Ptr, U, 2u>

      +
      +

      Synopsis

      +
      // In header: <boost/intrusive/pointer_rebind.hpp>
      +
      +template<typename Ptr, typename U> 
      +struct pointer_rebinder<Ptr, U, 2u> {
      +  // types
      +  typedef Ptr::template rebind< U >::other type;
      +};
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55971552.html b/doc/html/boost/intrusive/pointer_rebind_idp55971552.html new file mode 100644 index 0000000000..ef38c56bf0 --- /dev/null +++ b/doc/html/boost/intrusive/pointer_rebind_idp55971552.html @@ -0,0 +1,54 @@ + + + + +Struct template pointer_rebinder<Ptr, U, 1u> + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Struct template pointer_rebinder<Ptr, U, 1u>

      +

      boost::intrusive::pointer_rebinder<Ptr, U, 1u>

      +
      +

      Synopsis

      +
      // In header: <boost/intrusive/pointer_rebind.hpp>
      +
      +template<typename Ptr, typename U> 
      +struct pointer_rebinder<Ptr, U, 1u> {
      +  // types
      +  typedef Ptr::template rebind< U > type;
      +};
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55975216.html b/doc/html/boost/intrusive/pointer_rebind_idp55975216.html new file mode 100644 index 0000000000..c1011ab157 --- /dev/null +++ b/doc/html/boost/intrusive/pointer_rebind_idp55975216.html @@ -0,0 +1,55 @@ + + + + +Struct template pointer_rebinder<Ptr< A, An...>, U, 0u> + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Struct template pointer_rebinder<Ptr< A, An...>, U, 0u>

      +

      boost::intrusive::pointer_rebinder<Ptr< A, An...>, U, 0u>

      +
      +

      Synopsis

      +
      // In header: <boost/intrusive/pointer_rebind.hpp>
      +
      +template<template< class, class...> class Ptr, typename A, class... An, 
      +         typename U> 
      +struct pointer_rebinder<Ptr< A, An...>, U, 0u> {
      +  // types
      +  typedef Ptr< U, An...> type;
      +};
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55980864.html b/doc/html/boost/intrusive/pointer_rebind_idp55980864.html new file mode 100644 index 0000000000..d9911b3294 --- /dev/null +++ b/doc/html/boost/intrusive/pointer_rebind_idp55980864.html @@ -0,0 +1,54 @@ + + + + +Struct template pointer_rebinder<Ptr< A >, U, 0u> + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Struct template pointer_rebinder<Ptr< A >, U, 0u>

      +

      boost::intrusive::pointer_rebinder<Ptr< A >, U, 0u>

      +
      +

      Synopsis

      +
      // In header: <boost/intrusive/pointer_rebind.hpp>
      +
      +template<template< class > class Ptr, typename A, typename U> 
      +struct pointer_rebinder<Ptr< A >, U, 0u> {
      +  // types
      +  typedef Ptr< U > type;
      +};
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/intrusive/pointer_rebind_idp55988112.html b/doc/html/boost/intrusive/pointer_rebind_idp55988112.html new file mode 100644 index 0000000000..6d916a8d35 --- /dev/null +++ b/doc/html/boost/intrusive/pointer_rebind_idp55988112.html @@ -0,0 +1,54 @@ + + + + +Struct template pointer_rebind<T *, U> + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Struct template pointer_rebind<T *, U>

      +

      boost::intrusive::pointer_rebind<T *, U>

      +
      +

      Synopsis

      +
      // In header: <boost/intrusive/pointer_rebind.hpp>
      +
      +template<typename T, typename U> 
      +struct pointer_rebind<T *, U> {
      +  // types
      +  typedef U * type;
      +};
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/intrusive/pointer_rebinder.html b/doc/html/boost/intrusive/pointer_rebinder.html index a841326f07..a6a097eed6 100644 --- a/doc/html/boost/intrusive/pointer_rebinder.html +++ b/doc/html/boost/intrusive/pointer_rebinder.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -46,7 +46,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/intrusive/pointer_traits.html b/doc/html/boost/intrusive/pointer_traits.html index d6d0471b13..9b5bf778cc 100644 --- a/doc/html/boost/intrusive/pointer_traits.html +++ b/doc/html/boost/intrusive/pointer_traits.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -41,11 +41,11 @@ typedef unspecified rebind; typedef unspecified_type reference; - // public static functions - static pointer pointer_to(reference); - template<typename UPtr> static pointer static_cast_from(const UPtr &); - template<typename UPtr> static pointer const_cast_from(const UPtr &); - template<typename UPtr> static pointer dynamic_cast_from(const UPtr &); + // public static functions + static pointer pointer_to(reference); + template<typename UPtr> static pointer static_cast_from(const UPtr &); + template<typename UPtr> static pointer const_cast_from(const UPtr &); + template<typename UPtr> static pointer dynamic_cast_from(const UPtr &); };

      Description

      @@ -88,28 +88,28 @@

      -pointer_traits public static functions

      +pointer_traits public static functions
      1. -
        static pointer pointer_to(reference r);
        +
        static pointer pointer_to(reference r);

        Remark: If element_type is (possibly cv-qualified) void, r type is unspecified; otherwise, it is element_type &.

        Returns: A dereferenceable pointer to r obtained by calling Ptr::pointer_to(reference). Non-standard extension: If such function does not exist, returns pointer(addressof(r));

        Note: For non-conforming compilers only the existence of a member function called pointer_to is checked.

      2. -
        template<typename UPtr> static pointer static_cast_from(const UPtr & uptr);
        +
        template<typename UPtr> static pointer static_cast_from(const UPtr & uptr);

        Remark: Non-standard extension.

        Returns: A dereferenceable pointer to r obtained by calling the static template function Ptr::static_cast_from(UPpr/const UPpr &). If such function does not exist, returns pointer_to(static_cast<element_type&>(*uptr))

        Note: For non-conforming compilers only the existence of a member function called static_cast_from is checked.

      3. -
        template<typename UPtr> static pointer const_cast_from(const UPtr & uptr);
        +
        template<typename UPtr> static pointer const_cast_from(const UPtr & uptr);

        Remark: Non-standard extension.

        Returns: A dereferenceable pointer to r obtained by calling the static template function Ptr::const_cast_from<UPtr>(UPpr/const UPpr &). If such function does not exist, returns pointer_to(const_cast<element_type&>(*uptr))

        Note: For non-conforming compilers only the existence of a member function called const_cast_from is checked.

      4. -
        template<typename UPtr> static pointer dynamic_cast_from(const UPtr & uptr);
        +
        template<typename UPtr> static pointer dynamic_cast_from(const UPtr & uptr);

        Remark: Non-standard extension.

        Returns: A dereferenceable pointer to r obtained by calling the static template function Ptr::dynamic_cast_from<UPtr>(UPpr/const UPpr &). If such function does not exist, returns pointer_to(dynamic_cast<element_type>(&*uptr))

        Note: For non-conforming compilers only the existence of a member function called dynamic_cast_from is checked.

        @@ -128,7 +128,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/intrusive/pointer_traits_idp55252544.html b/doc/html/boost/intrusive/pointer_traits_idp55252544.html deleted file mode 100644 index 977a75a8d6..0000000000 --- a/doc/html/boost/intrusive/pointer_traits_idp55252544.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - -Struct template pointer_traits<T *> - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Struct template pointer_traits<T *>

        -

        boost::intrusive::pointer_traits<T *>

        -
        -

        Synopsis

        -
        // In header: <boost/intrusive/pointer_traits.hpp>
        -
        -template<typename T> 
        -struct pointer_traits<T *> {
        -  // types
        -  typedef T              element_type;   
        -  typedef T *            pointer;        
        -  typedef std::ptrdiff_t difference_type;
        -  typedef T &            reference;      
        -  typedef U *            rebind;         
        -
        -  // member classes/structs/unions
        -  template<typename U> 
        -  struct rebind_pointer {
        -    // types
        -    typedef U * type;
        -  };
        -
        -  // public static functions
        -  static pointer pointer_to(reference);
        -  template<typename U> static pointer static_cast_from(U *);
        -  template<typename U> static pointer const_cast_from(U *);
        -  template<typename U> static pointer dynamic_cast_from(U *);
        -};
        -
        -

        Description

        -

        Specialization of pointer_traits for raw pointers

        -
        -

        -pointer_traits - public - types

        -
        1. -

          -typedef U * rebind;

          -
          U *
          -
          -typename rebind_pointer<U>::type
          -
        -
        -
        -

        -pointer_traits public static functions

        -
          -
        1. -
          static pointer pointer_to(reference r);
          -

          Returns: addressof(r)

          -
        2. -
        3. -
          template<typename U> static pointer static_cast_from(U * uptr);
          -

          Returns: static_cast<pointer>(uptr)

          -
        4. -
        5. -
          template<typename U> static pointer const_cast_from(U * uptr);
          -

          Returns: const_cast<pointer>(uptr)

          -
        6. -
        7. -
          template<typename U> static pointer dynamic_cast_from(U * uptr);
          -

          Returns: dynamic_cast<pointer>(uptr)

          -
        8. -
        -
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/intrusive/pointer_traits_idp55252544/rebind_pointer.html b/doc/html/boost/intrusive/pointer_traits_idp55252544/rebind_pointer.html deleted file mode 100644 index 7346e1daa8..0000000000 --- a/doc/html/boost/intrusive/pointer_traits_idp55252544/rebind_pointer.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Struct template rebind_pointer - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Struct template rebind_pointer

        -

        boost::intrusive::pointer_traits<T *>::rebind_pointer

        -
        -

        Synopsis

        -
        // In header: <boost/intrusive/pointer_traits.hpp>
        -
        -
        -template<typename U> 
        -struct rebind_pointer {
        -  // types
        -  typedef U * type;
        -};
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/intrusive/pointer_traits_idp56033264.html b/doc/html/boost/intrusive/pointer_traits_idp56033264.html new file mode 100644 index 0000000000..76fd1f9741 --- /dev/null +++ b/doc/html/boost/intrusive/pointer_traits_idp56033264.html @@ -0,0 +1,110 @@ + + + + +Struct template pointer_traits<T *> + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Struct template pointer_traits<T *>

        +

        boost::intrusive::pointer_traits<T *>

        +
        +

        Synopsis

        +
        // In header: <boost/intrusive/pointer_traits.hpp>
        +
        +template<typename T> 
        +struct pointer_traits<T *> {
        +  // types
        +  typedef T              element_type;   
        +  typedef T *            pointer;        
        +  typedef std::ptrdiff_t difference_type;
        +  typedef T &            reference;      
        +  typedef U *            rebind;         
        +
        +  // member classes/structs/unions
        +  template<typename U> 
        +  struct rebind_pointer {
        +    // types
        +    typedef U * type;
        +  };
        +
        +  // public static functions
        +  static pointer pointer_to(reference);
        +  template<typename U> static pointer static_cast_from(U *);
        +  template<typename U> static pointer const_cast_from(U *);
        +  template<typename U> static pointer dynamic_cast_from(U *);
        +};
        +
        +

        Description

        +

        Specialization of pointer_traits for raw pointers

        +
        +

        +pointer_traits + public + types

        +
        1. +

          +typedef U * rebind;

          +
          U *
          +
          +typename rebind_pointer<U>::type
          +
        +
        +
        +

        +pointer_traits public static functions

        +
          +
        1. +
          static pointer pointer_to(reference r);
          +

          Returns: addressof(r)

          +
        2. +
        3. +
          template<typename U> static pointer static_cast_from(U * uptr);
          +

          Returns: static_cast<pointer>(uptr)

          +
        4. +
        5. +
          template<typename U> static pointer const_cast_from(U * uptr);
          +

          Returns: const_cast<pointer>(uptr)

          +
        6. +
        7. +
          template<typename U> static pointer dynamic_cast_from(U * uptr);
          +

          Returns: dynamic_cast<pointer>(uptr)

          +
        8. +
        +
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/intrusive/pointer_traits_idp56033264/rebind_pointer.html b/doc/html/boost/intrusive/pointer_traits_idp56033264/rebind_pointer.html new file mode 100644 index 0000000000..8403254c10 --- /dev/null +++ b/doc/html/boost/intrusive/pointer_traits_idp56033264/rebind_pointer.html @@ -0,0 +1,55 @@ + + + + +Struct template rebind_pointer + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Struct template rebind_pointer

        +

        boost::intrusive::pointer_traits<T *>::rebind_pointer

        +
        +

        Synopsis

        +
        // In header: <boost/intrusive/pointer_traits.hpp>
        +
        +
        +template<typename U> 
        +struct rebind_pointer {
        +  // types
        +  typedef U * type;
        +};
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/intrusive/priority_compa_idp55286240.html b/doc/html/boost/intrusive/priority_compa_idp55286240.html deleted file mode 100644 index 4ac6d4e224..0000000000 --- a/doc/html/boost/intrusive/priority_compa_idp55286240.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - -Struct priority_compare<void> - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Struct priority_compare<void>

        -

        boost::intrusive::priority_compare<void>

        -
        -

        Synopsis

        -
        // In header: <boost/intrusive/priority_compare.hpp>
        -
        -
        -struct priority_compare<void> {
        -
        -  // public member functions
        -  template<typename T, typename U> bool operator()(const T &, const U &) const;
        -};
        -
        -

        Description

        -
        -

        -priority_compare public member functions

        -
        1. template<typename T, typename U> 
          -  bool operator()(const T & t, const U & u) const;
        -
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/intrusive/priority_compa_idp56066960.html b/doc/html/boost/intrusive/priority_compa_idp56066960.html new file mode 100644 index 0000000000..570f15ed40 --- /dev/null +++ b/doc/html/boost/intrusive/priority_compa_idp56066960.html @@ -0,0 +1,64 @@ + + + + +Struct priority_compare<void> + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Struct priority_compare<void>

        +

        boost::intrusive::priority_compare<void>

        +
        +

        Synopsis

        +
        // In header: <boost/intrusive/priority_compare.hpp>
        +
        +
        +struct priority_compare<void> {
        +
        +  // public member functions
        +  template<typename T, typename U> bool operator()(const T &, const U &) const;
        +};
        +
        +

        Description

        +
        +

        +priority_compare public member functions

        +
        1. template<typename T, typename U> 
          +  bool operator()(const T & t, const U & u) const;
        +
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/intrusive/priority_compare.html b/doc/html/boost/intrusive/priority_compare.html index f8fad4b7cf..10e48d237c 100644 --- a/doc/html/boost/intrusive/priority_compare.html +++ b/doc/html/boost/intrusive/priority_compare.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        @@ -39,15 +39,15 @@ typedef T second_argument_type; typedef bool result_type; - // public member functions - bool operator()(const T &, const T &) const; + // public member functions + bool operator()(const T &, const T &) const; };

        Description

        -priority_compare public member functions

        -
        1. bool operator()(const T & val, const T & val2) const;
        +priority_compare public member functions +
        1. bool operator()(const T & val, const T & val2) const;
      @@ -61,7 +61,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/intrusive/rbtree.html b/doc/html/boost/intrusive/rbtree.html index f6552cfacc..2267b7ea70 100644 --- a/doc/html/boost/intrusive/rbtree.html +++ b/doc/html/boost/intrusive/rbtree.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      @@ -60,139 +60,139 @@ typedef implementation_defined::insert_commit_data insert_commit_data; // construct/copy/destruct - rbtree(); - explicit rbtree(const key_compare &, const value_traits & = value_traits()); + rbtree(); + explicit rbtree(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - rbtree(bool, Iterator, Iterator, const key_compare & = key_compare(), + rbtree(bool, Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - rbtree(rbtree &&); - rbtree & operator=(rbtree &&); - ~rbtree(); + rbtree(rbtree &&); + rbtree & operator=(rbtree &&); + ~rbtree(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(rbtree &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(rbtree &); template<typename Cloner, typename Disposer> - void clone_from(const rbtree &, Cloner, Disposer); + void clone_from(const rbtree &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(rbtree &&, Cloner, Disposer); + void clone_from(rbtree &&, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(rbtree &&, Cloner, Disposer); - iterator insert_equal(reference); - iterator insert_equal(const_iterator, reference); - template<typename Iterator> void insert_equal(Iterator, Iterator); - std::pair< iterator, bool > insert_unique(reference); - iterator insert_unique(const_iterator, reference); + void clone_from(rbtree &&, Cloner, Disposer); + iterator insert_equal(reference); + iterator insert_equal(const_iterator, reference); + template<typename Iterator> void insert_equal(Iterator, Iterator); + std::pair< iterator, bool > insert_unique(reference); + iterator insert_unique(const_iterator, reference); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const key_type &, insert_commit_data &); + insert_unique_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const_iterator, const key_type &, insert_commit_data &); - iterator insert_unique_commit(reference, const insert_commit_data &); - template<typename Iterator> void insert_unique(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + insert_unique_check(const_iterator, const key_type &, insert_commit_data &); + iterator insert_unique_commit(reference, const insert_commit_data &); + template<typename Iterator> void insert_unique(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); template<typename T, class... Options2> - void merge_unique(rbtree< T, Options2...> &); + void merge_unique(rbtree< T, Options2...> &); template<typename T, class... Options2> - void merge_equal(rbtree< T, Options2...> &); + void merge_equal(rbtree< T, Options2...> &); - // public static functions - static rbtree & container_from_end_iterator(iterator); - static const rbtree & container_from_end_iterator(const_iterator); - static rbtree & container_from_iterator(iterator); - static const rbtree & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static rbtree & container_from_end_iterator(iterator); + static const rbtree & container_from_end_iterator(const_iterator); + static rbtree & container_from_iterator(iterator); + static const rbtree & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -209,13 +209,13 @@ construct/copy/destruct
      1. -
        rbtree();
        +
        rbtree();

        Effects: Constructs an empty container.

        Complexity: Constant.

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

      2. -
        explicit rbtree(const key_compare & cmp, 
        +
        explicit rbtree(const key_compare & cmp, 
                         const value_traits & v_traits = value_traits());

        Effects: Constructs an empty container with given comparison and traits.

        Complexity: Constant.

        @@ -223,7 +223,7 @@
      3. template<typename Iterator> 
        -  rbtree(bool unique, Iterator b, Iterator e, 
        +  rbtree(bool unique, Iterator b, Iterator e, 
                  const key_compare & cmp = key_compare(), 
                  const value_traits & v_traits = value_traits());

        Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

        @@ -232,17 +232,17 @@

        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

      4. -
        rbtree(rbtree && x);
        +
        rbtree(rbtree && x);

        Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

        Complexity: Constant.

        Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

      5. -
        rbtree & operator=(rbtree && x);
        +
        rbtree & operator=(rbtree && x);

        Effects: Equivalent to swap

      6. -
        ~rbtree();
        +
        ~rbtree();

        Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

        Complexity: Linear to elements contained in *this.

        Throws: Nothing.

        @@ -251,131 +251,131 @@

      -rbtree public member functions

      +rbtree public member functions
      1. -
        iterator begin();
        +
        iterator begin();

        Effects: Returns an iterator pointing to the beginning of the container.

        Complexity: Constant.

        Throws: Nothing.

      2. -
        const_iterator begin() const;
        +
        const_iterator begin() const;

        Effects: Returns a const_iterator pointing to the beginning of the container.

        Complexity: Constant.

        Throws: Nothing.

      3. -
        const_iterator cbegin() const;
        +
        const_iterator cbegin() const;

        Effects: Returns a const_iterator pointing to the beginning of the container.

        Complexity: Constant.

        Throws: Nothing.

      4. -
        iterator end();
        +
        iterator end();

        Effects: Returns an iterator pointing to the end of the container.

        Complexity: Constant.

        Throws: Nothing.

      5. -
        const_iterator end() const;
        +
        const_iterator end() const;

        Effects: Returns a const_iterator pointing to the end of the container.

        Complexity: Constant.

        Throws: Nothing.

      6. -
        const_iterator cend() const;
        +
        const_iterator cend() const;

        Effects: Returns a const_iterator pointing to the end of the container.

        Complexity: Constant.

        Throws: Nothing.

      7. -
        reverse_iterator rbegin();
        +
        reverse_iterator rbegin();

        Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      8. -
        const_reverse_iterator rbegin() const;
        +
        const_reverse_iterator rbegin() const;

        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      9. -
        const_reverse_iterator crbegin() const;
        +
        const_reverse_iterator crbegin() const;

        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      10. -
        reverse_iterator rend();
        +
        reverse_iterator rend();

        Effects: Returns a reverse_iterator pointing to the end of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      11. -
        const_reverse_iterator rend() const;
        +
        const_reverse_iterator rend() const;

        Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      12. -
        const_reverse_iterator crend() const;
        +
        const_reverse_iterator crend() const;

        Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

        Complexity: Constant.

        Throws: Nothing.

      13. -
        iterator root();
        +
        iterator root();

        Effects: Returns a iterator pointing to the root node of the container or end() if not present.

        Complexity: Constant.

        Throws: Nothing.

      14. -
        const_iterator root() const;
        +
        const_iterator root() const;

        Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

        Complexity: Constant.

        Throws: Nothing.

      15. -
        const_iterator croot() const;
        +
        const_iterator croot() const;

        Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

        Complexity: Constant.

        Throws: Nothing.

      16. -
        key_compare key_comp() const;
        +
        key_compare key_comp() const;

        Effects: Returns the key_compare object used by the container.

        Complexity: Constant.

        Throws: If key_compare copy-constructor throws.

      17. -
        value_compare value_comp() const;
        +
        value_compare value_comp() const;

        Effects: Returns the value_compare object used by the container.

        Complexity: Constant.

        Throws: If value_compare copy-constructor throws.

      18. -
        bool empty() const;
        +
        bool empty() const;

        Effects: Returns true if the container is empty.

        Complexity: Constant.

        Throws: Nothing.

      19. -
        size_type size() const;
        +
        size_type size() const;

        Effects: Returns the number of elements stored in the container.

        Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

        Throws: Nothing.

      20. -
        void swap(rbtree & other);
        +
        void swap(rbtree & other);

        Effects: Swaps the contents of two containers.

        Complexity: Constant.

        Throws: If the comparison functor's swap call throws.

      21. template<typename Cloner, typename Disposer> 
        -  void clone_from(const rbtree & src, Cloner cloner, Disposer disposer);
        + void clone_from(const rbtree & src, Cloner cloner, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

        @@ -384,7 +384,7 @@
      22. template<typename Cloner, typename Disposer> 
        -  void clone_from(rbtree && src, Cloner cloner, Disposer disposer);
        + void clone_from(rbtree && src, Cloner cloner, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

        @@ -394,7 +394,7 @@
      23. template<typename Cloner, typename Disposer> 
        -  void clone_from(rbtree && src, Cloner cloner, Disposer disposer);
        + void clone_from(rbtree && src, Cloner cloner, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

        @@ -403,7 +403,7 @@

        Note: This version can modify the source container, useful to implement move semantics.

      24. -
        iterator insert_equal(reference value);
        +
        iterator insert_equal(reference value);

        Requires: value must be an lvalue

        Effects: Inserts value into the container before the upper bound.

        Complexity: Average complexity for insert element is at most logarithmic.

        @@ -411,7 +411,7 @@

        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

      25. -
        iterator insert_equal(const_iterator hint, reference value);
        +
        iterator insert_equal(const_iterator hint, reference value);

        Requires: value must be an lvalue, and "hint" must be a valid iterator.

        Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

        Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

        @@ -419,7 +419,7 @@

        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

      26. -
        template<typename Iterator> void insert_equal(Iterator b, Iterator e);
        +
        template<typename Iterator> void insert_equal(Iterator b, Iterator e);

        Requires: Dereferencing iterator must yield an lvalue of type value_type.

        Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

        Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

        @@ -427,7 +427,7 @@

        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

      27. -
        std::pair< iterator, bool > insert_unique(reference value);
        +
        std::pair< iterator, bool > insert_unique(reference value);

        Requires: value must be an lvalue

        Effects: Inserts value into the container if the value is not already present.

        Complexity: Average complexity for insert element is at most logarithmic.

        @@ -435,7 +435,7 @@

        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

      28. -
        iterator insert_unique(const_iterator hint, reference value);
        +
        iterator insert_unique(const_iterator hint, reference value);

        Requires: value must be an lvalue, and "hint" must be a valid iterator

        Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

        Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

        @@ -445,7 +445,7 @@
      29. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< iterator, bool > 
        -  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
        +  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                               insert_commit_data & commit_data);

        Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

        Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

        @@ -459,7 +459,7 @@
      30. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< iterator, bool > 
        -  insert_unique_check(const_iterator hint, const KeyType & key, 
        +  insert_unique_check(const_iterator hint, const KeyType & key, 
                               KeyTypeKeyCompare comp, 
                               insert_commit_data & commit_data);

        Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

        @@ -473,7 +473,7 @@
      31. std::pair< iterator, bool > 
        -insert_unique_check(const key_type & key, insert_commit_data & commit_data);
        +insert_unique_check(const key_type & key, insert_commit_data & commit_data);

        Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

        Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

        Complexity: Average complexity is at most logarithmic.

        @@ -481,7 +481,7 @@
      32. std::pair< iterator, bool > 
        -insert_unique_check(const_iterator hint, const key_type & key, 
        +insert_unique_check(const_iterator hint, const key_type & key, 
                             insert_commit_data & commit_data);

        Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

        Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

        @@ -489,7 +489,7 @@

        Throws: If the comp ordering function throws. Strong guarantee.

      33. -
        iterator insert_unique_commit(reference value, 
        +
        iterator insert_unique_commit(reference value, 
                                       const insert_commit_data & commit_data);

        Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

        Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

        @@ -499,7 +499,7 @@

        Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

      34. -
        template<typename Iterator> void insert_unique(Iterator b, Iterator e);
        +
        template<typename Iterator> void insert_unique(Iterator b, Iterator e);

        Requires: Dereferencing iterator must yield an lvalue of type value_type.

        Effects: Tries to insert each element of a range into the container.

        Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

        @@ -507,7 +507,7 @@

        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

      35. -
        iterator insert_before(const_iterator pos, reference value);
        +
        iterator insert_before(const_iterator pos, reference value);

        Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

        Effects: Inserts x into the container before "pos".

        Complexity: Constant time.

        @@ -515,7 +515,7 @@

        Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

      36. -
        void push_back(reference value);
        +
        void push_back(reference value);

        Requires: value must be an lvalue, and it must be no less than the greatest inserted key

        Effects: Inserts x into the container in the last position.

        Complexity: Constant time.

        @@ -523,7 +523,7 @@

        Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

      37. -
        void push_front(reference value);
        +
        void push_front(reference value);

        Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

        Effects: Inserts x into the container in the first position.

        Complexity: Constant time.

        @@ -531,21 +531,21 @@

        Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

      38. -
        iterator erase(const_iterator i);
        +
        iterator erase(const_iterator i);

        Effects: Erases the element pointed to by i.

        Complexity: Average complexity for erase element is constant time.

        Throws: Nothing.

        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

      39. -
        iterator erase(const_iterator b, const_iterator e);
        +
        iterator erase(const_iterator b, const_iterator e);

        Effects: Erases the range pointed to by b end e.

        Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

        Throws: Nothing.

        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

      40. -
        size_type erase(const key_type & key);
        +
        size_type erase(const key_type & key);

        Effects: Erases all the elements with the given value.

        Returns: The number of erased elements.

        Complexity: O(log(size() + N).

        @@ -554,7 +554,7 @@
      41. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
        + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Erases all the elements with the given key. according to the comparison functor "comp".

        Returns: The number of erased elements.

        @@ -564,7 +564,7 @@
      42. template<typename Disposer> 
        -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
        + iterator erase_and_dispose(const_iterator i, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

        Complexity: Average complexity for erase element is constant time.

        @@ -573,7 +573,7 @@
      43. template<typename Disposer> 
        -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
        +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                      Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

        @@ -583,7 +583,7 @@
      44. template<typename Disposer> 
        -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
        + size_type erase_and_dispose(const key_type & key, Disposer disposer);

        Requires: Disposer::operator()(pointer) shouldn't throw.

        Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

        Returns: The number of erased elements.

        @@ -593,7 +593,7 @@
      45. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
        -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
        +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                       Disposer disposer);

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

        Requires: Disposer::operator()(pointer) shouldn't throw.

        @@ -604,47 +604,47 @@

        Note: Invalidates the iterators to the erased elements.

      46. -
        void clear();
        +
        void clear();

        Effects: Erases all of the elements.

        Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

        Throws: Nothing.

        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

      47. -
        template<typename Disposer> void clear_and_dispose(Disposer disposer);
        +
        template<typename Disposer> void clear_and_dispose(Disposer disposer);

        Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

        Throws: Nothing.

        Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

      48. -
        size_type count(const key_type & key) const;
        +
        size_type count(const key_type & key) const;

        Effects: Returns the number of contained elements with the given value

        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

        Throws: If key_compare throws.

      49. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
        + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

        Effects: Returns the number of contained elements with the given key

        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

        Throws: If comp throws.

      50. -
        iterator lower_bound(const key_type & key);
        +
        iterator lower_bound(const key_type & key);

        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      51. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
        + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      52. -
        const_iterator lower_bound(const key_type & key) const;
        +
        const_iterator lower_bound(const key_type & key) const;

        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

        @@ -652,27 +652,27 @@
      53. template<typename KeyType, typename KeyTypeKeyCompare> 
           const_iterator 
        -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
        + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      54. -
        iterator upper_bound(const key_type & key);
        +
        iterator upper_bound(const key_type & key);

        Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      55. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
        + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

        Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If comp throws.

      56. -
        const_iterator upper_bound(const key_type & key) const;
        +
        const_iterator upper_bound(const key_type & key) const;

        Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

        @@ -680,42 +680,42 @@
      57. template<typename KeyType, typename KeyTypeKeyCompare> 
           const_iterator 
        -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
        + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

        Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If comp throws.

      58. -
        iterator find(const key_type & key);
        +
        iterator find(const key_type & key);

        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      59. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
        + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If comp throws.

      60. -
        const_iterator find(const key_type & key) const;
        +
        const_iterator find(const key_type & key) const;

        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

      61. template<typename KeyType, typename KeyTypeKeyCompare> 
        -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
        + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

        Complexity: Logarithmic.

        Throws: If comp throws.

      62. -
        std::pair< iterator, iterator > equal_range(const key_type & key);
        +
        std::pair< iterator, iterator > equal_range(const key_type & key);

        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

        @@ -723,7 +723,7 @@
      63. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< iterator, iterator > 
        -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
        + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

        Complexity: Logarithmic.

        @@ -731,7 +731,7 @@
      64. std::pair< const_iterator, const_iterator > 
        -equal_range(const key_type & key) const;
        +equal_range(const key_type & key) const;

        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

        Complexity: Logarithmic.

        Throws: If key_compare throws.

        @@ -739,7 +739,7 @@
      65. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< const_iterator, const_iterator > 
        -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
        + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

        Complexity: Logarithmic.

        @@ -747,7 +747,7 @@
      66. std::pair< iterator, iterator > 
        -bounded_range(const key_type & lower, const key_type & upper_key, 
        +bounded_range(const key_type & lower, const key_type & upper_key, 
                       bool left_closed, bool right_closed);

        Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

        If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

        @@ -762,7 +762,7 @@
      67. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< iterator, iterator > 
        -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
        +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                         KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

        Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

        upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

        @@ -778,7 +778,7 @@
      68. std::pair< const_iterator, const_iterator > 
        -bounded_range(const key_type & lower_key, const key_type & upper_key, 
        +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                       bool left_closed, bool right_closed) const;

        Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

        If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

        @@ -793,7 +793,7 @@
      69. template<typename KeyType, typename KeyTypeKeyCompare> 
           std::pair< const_iterator, const_iterator > 
        -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
        +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                         KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

        Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

        upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

        @@ -808,28 +808,28 @@

        Note: Experimental function, the interface might change in future releases.

      70. -
        iterator iterator_to(reference value);
        +
        iterator iterator_to(reference value);

        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

        Effects: Returns: a valid iterator i belonging to the set that points to the value

        Complexity: Constant.

        Throws: Nothing.

      71. -
        const_iterator iterator_to(const_reference value) const;
        +
        const_iterator iterator_to(const_reference value) const;

        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

        Effects: Returns: a valid const_iterator i belonging to the set that points to the value

        Complexity: Constant.

        Throws: Nothing.

      72. -
        pointer unlink_leftmost_without_rebalance();
        +
        pointer unlink_leftmost_without_rebalance();

        Effects: Unlinks the leftmost node from the container.

        Complexity: Average complexity is constant time.

        Throws: Nothing.

        Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

      73. -
        void replace_node(iterator replace_this, reference with_this);
        +
        void replace_node(iterator replace_this, reference with_this);

        Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

        Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

        Complexity: Constant.

        @@ -837,7 +837,7 @@

        Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

      74. -
        void remove_node(reference value);
        +
        void remove_node(reference value);

        Effects: removes "value" from the container.

        Throws: Nothing.

        Complexity: Logarithmic time.

        @@ -846,7 +846,7 @@
      75. template<typename T, class... Options2> 
        -  void merge_unique(rbtree< T, Options2...> &);
        + void merge_unique(rbtree< T, Options2...> &);

        Requires: "source" container's Options can only can differ in the comparison function from *this.

        Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

        Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

        @@ -855,7 +855,7 @@
      76. template<typename T, class... Options2> 
        -  void merge_equal(rbtree< T, Options2...> &);
        + void merge_equal(rbtree< T, Options2...> &);

        Requires: "source" container's Options can only can differ in the comparison function from *this.

        Effects: Extracts each element in source and insert it into a using the comparison object of *this.

        Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

        @@ -866,38 +866,38 @@

      -rbtree public static functions

      +rbtree public static functions
      1. -
        static rbtree & container_from_end_iterator(iterator end_iterator);
        +
        static rbtree & container_from_end_iterator(iterator end_iterator);

        Precondition: end_iterator must be a valid end iterator of the container.

        Effects: Returns a const reference to the container associated to the end iterator

        Throws: Nothing.

        Complexity: Constant.

      2. -
        static const rbtree & container_from_end_iterator(const_iterator end_iterator);
        +
        static const rbtree & container_from_end_iterator(const_iterator end_iterator);

        Precondition: end_iterator must be a valid end iterator of the container.

        Effects: Returns a const reference to the container associated to the end iterator

        Throws: Nothing.

        Complexity: Constant.

      3. -
        static rbtree & container_from_iterator(iterator it);
        +
        static rbtree & container_from_iterator(iterator it);

        Precondition: it must be a valid iterator of the container.

        Effects: Returns a const reference to the container associated to the iterator

        Throws: Nothing.

        Complexity: Logarithmic.

      4. -
        static const rbtree & container_from_iterator(const_iterator it);
        +
        static const rbtree & container_from_iterator(const_iterator it);

        Precondition: it must be a valid iterator of the container.

        Effects: Returns a const reference to the container associated to the iterator

        Throws: Nothing.

        Complexity: Logarithmic.

      5. -
        static iterator s_iterator_to(reference value);
        +
        static iterator s_iterator_to(reference value);

        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

        Effects: Returns: a valid iterator i belonging to the set that points to the value

        Complexity: Constant.

        @@ -905,7 +905,7 @@

        Note: This static function is available only if the value traits is stateless.

      6. -
        static const_iterator s_iterator_to(const_reference value);
        +
        static const_iterator s_iterator_to(const_reference value);

        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

        Effects: Returns: a valid iterator i belonging to the set that points to the value

        Complexity: Constant.

        @@ -913,7 +913,7 @@

        Note: This static function is available only if the value traits is stateless.

      7. -
        static void init_node(reference value);
        +
        static void init_node(reference value);

        Requires: value shall not be in a container.

        Effects: init_node puts the hook of a value in a well-known default state.

        Throws: Nothing.

        @@ -934,7 +934,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/intrusive/rbtree_algorithms.html b/doc/html/boost/intrusive/rbtree_algorithms.html index e9ac51a631..09aa787bc9 100644 --- a/doc/html/boost/intrusive/rbtree_algorithms.html +++ b/doc/html/boost/intrusive/rbtree_algorithms.html @@ -43,84 +43,84 @@ typedef NodeTraits::color color; typedef bstree_algo::insert_commit_data insert_commit_data; - // public static functions - static node_ptr get_header(const const_node_ptr &); - static node_ptr begin_node(const const_node_ptr &); - static node_ptr end_node(const const_node_ptr &); - static void swap_tree(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, + // public static functions + static node_ptr get_header(const const_node_ptr &); + static node_ptr begin_node(const const_node_ptr &); + static node_ptr end_node(const const_node_ptr &); + static void swap_tree(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &, + static void replace_node(const node_ptr &, const node_ptr &); + static void replace_node(const node_ptr &, const node_ptr &, const node_ptr &); - static void unlink(const node_ptr &); - static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); - static bool unique(const const_node_ptr &); - static std::size_t size(const const_node_ptr &); - static node_ptr next_node(const node_ptr &); - static node_ptr prev_node(const node_ptr &); - static void init(const node_ptr &); - static void init_header(const node_ptr &); - static node_ptr erase(const node_ptr &, const node_ptr &); + static void unlink(const node_ptr &); + static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); + static bool unique(const const_node_ptr &); + static std::size_t size(const const_node_ptr &); + static node_ptr next_node(const node_ptr &); + static node_ptr prev_node(const node_ptr &); + static void init(const node_ptr &); + static void init_header(const node_ptr &); + static node_ptr erase(const node_ptr &, const node_ptr &); template<typename NodePtrCompare> - static bool transfer_unique(const node_ptr &, NodePtrCompare, + static bool transfer_unique(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &); template<typename NodePtrCompare> - static void transfer_equal(const node_ptr &, NodePtrCompare, + static void transfer_equal(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &); template<typename Cloner, typename Disposer> - static void clone(const const_node_ptr &, const node_ptr &, Cloner, + static void clone(const const_node_ptr &, const node_ptr &, Cloner, Disposer); template<typename Disposer> - static void clear_and_dispose(const node_ptr &, Disposer); + static void clear_and_dispose(const node_ptr &, Disposer); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, + bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, KeyNodePtrCompare, bool, bool); template<typename KeyType, typename KeyNodePtrCompare> static std::size_t - count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal_upper_bound(const node_ptr &, const node_ptr &, + insert_equal_upper_bound(const node_ptr &, const node_ptr &, NodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal_lower_bound(const node_ptr &, const node_ptr &, + insert_equal_lower_bound(const node_ptr &, const node_ptr &, NodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, + insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, NodePtrCompare); static node_ptr - insert_before(const node_ptr &, const node_ptr &, const node_ptr &); - static void push_back(const node_ptr &, const node_ptr &); - static void push_front(const node_ptr &, const node_ptr &); + insert_before(const node_ptr &, const node_ptr &, const node_ptr &); + static void push_back(const node_ptr &, const node_ptr &); + static void push_front(const node_ptr &, const node_ptr &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const KeyType &, + insert_unique_check(const const_node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const node_ptr &, + insert_unique_check(const const_node_ptr &, const node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); - static void insert_unique_commit(const node_ptr &, const node_ptr &, + static void insert_unique_commit(const node_ptr &, const node_ptr &, const insert_commit_data &); - static bool is_header(const const_node_ptr &); + static bool is_header(const const_node_ptr &); };

      Description

      @@ -157,38 +157,38 @@

      -rbtree_algorithms public static functions

      +rbtree_algorithms public static functions
      1. -
        static node_ptr get_header(const const_node_ptr & n);
        +
        static node_ptr get_header(const const_node_ptr & n);

        Requires: 'node' is a node of the tree or a header node.

        Effects: Returns the header of the tree.

        Complexity: Logarithmic.

        Throws: Nothing.

      2. -
        static node_ptr begin_node(const const_node_ptr & header);
        +
        static node_ptr begin_node(const const_node_ptr & header);

        Requires: 'header' is the header node of a tree.

        Effects: Returns the first node of the tree, the header if the tree is empty.

        Complexity: Constant time.

        Throws: Nothing.

      3. -
        static node_ptr end_node(const const_node_ptr & header);
        +
        static node_ptr end_node(const const_node_ptr & header);

        Requires: 'header' is the header node of a tree.

        Effects: Returns the header of the tree.

        Complexity: Constant time.

        Throws: Nothing.

      4. -
        static void swap_tree(const node_ptr & header1, const node_ptr & header2);
        +
        static void swap_tree(const node_ptr & header1, const node_ptr & header2);

        Requires: header1 and header2 must be the header nodes of two trees.

        Effects: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.

        Complexity: Constant.

        Throws: Nothing.

      5. -
        static void swap_nodes(const node_ptr & node1, const node_ptr & node2);
        +
        static void swap_nodes(const node_ptr & node1, const node_ptr & node2);

        Requires: node1 and node2 can't be header nodes of two trees.

        Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

        Complexity: Logarithmic.

        @@ -197,7 +197,7 @@

        Experimental function

      6. -
        static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
        +
        static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                                const node_ptr & node2, const node_ptr & header2);

        Requires: node1 and node2 can't be header nodes of two trees with header header1 and header2.

        Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

        @@ -207,7 +207,7 @@

        Experimental function

      7. -
        static void replace_node(const node_ptr & node_to_be_replaced, 
        +
        static void replace_node(const node_ptr & node_to_be_replaced, 
                                  const node_ptr & new_node);

        Requires: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.

        Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

        @@ -216,7 +216,7 @@

        Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function

      8. -
        static void replace_node(const node_ptr & node_to_be_replaced, 
        +
        static void replace_node(const node_ptr & node_to_be_replaced, 
                                  const node_ptr & header, const node_ptr & new_node);

        Requires: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.

        Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

        @@ -225,14 +225,14 @@

        Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function

      9. -
        static void unlink(const node_ptr & node);
        +
        static void unlink(const node_ptr & node);

        Requires: node is a tree node but not the header.

        Effects: Unlinks the node and rebalances the tree.

        Complexity: Average complexity is constant time.

        Throws: Nothing.

      10. -
        static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);
        +
        static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);

        Requires: header is the header of a tree.

        Effects: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.

        Complexity: Average complexity is constant time.

        @@ -240,35 +240,35 @@

        Notes: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree.

      11. -
        static bool unique(const const_node_ptr & node);
        +
        static bool unique(const const_node_ptr & node);

        Requires: 'node' is a node of the tree or a node initialized by init(...) or init_node.

        Effects: Returns true if the node is initialized by init() or init_node().

        Complexity: Constant time.

        Throws: Nothing.

      12. -
        static std::size_t size(const const_node_ptr & header);
        +
        static std::size_t size(const const_node_ptr & header);

        Requires: node is a node of the tree but it's not the header.

        Effects: Returns the number of nodes of the subtree.

        Complexity: Linear time.

        Throws: Nothing.

      13. -
        static node_ptr next_node(const node_ptr & node);
        +
        static node_ptr next_node(const node_ptr & node);

        Requires: 'node' is a node from the tree except the header.

        Effects: Returns the next node of the tree.

        Complexity: Average constant time.

        Throws: Nothing.

      14. -
        static node_ptr prev_node(const node_ptr & node);
        +
        static node_ptr prev_node(const node_ptr & node);

        Requires: 'node' is a node from the tree except the leftmost node.

        Effects: Returns the previous node of the tree.

        Complexity: Average constant time.

        Throws: Nothing.

      15. -
        static void init(const node_ptr & node);
        +
        static void init(const node_ptr & node);

        Requires: 'node' must not be part of any tree.

        Effects: After the function unique(node) == true.

        Complexity: Constant.

        @@ -276,7 +276,7 @@

        Nodes: If node is inserted in a tree, this function corrupts the tree.

      16. -
        static void init_header(const node_ptr & header);
        +
        static void init_header(const node_ptr & header);

        Requires: node must not be part of any tree.

        Effects: Initializes the header to represent an empty tree. unique(header) == true.

        Complexity: Constant.

        @@ -284,7 +284,7 @@

        Nodes: If node is inserted in a tree, this function corrupts the tree.

      17. -
        static node_ptr erase(const node_ptr & header, const node_ptr & z);
        +
        static node_ptr erase(const node_ptr & header, const node_ptr & z);

        Requires: header must be the header of a tree, z a node of that tree and z != header.

        Effects: Erases node "z" from the tree with header "header".

        Complexity: Amortized constant time.

        @@ -292,7 +292,7 @@
      18. template<typename NodePtrCompare> 
        -  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
        +  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                                       const node_ptr & header2, const node_ptr & z);

        Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

        Effects: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.

        @@ -302,7 +302,7 @@
      19. template<typename NodePtrCompare> 
        -  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
        +  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                                      const node_ptr & header2, const node_ptr & z);

        Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

        Effects: Transfers node "z" from tree1 to tree2.

        @@ -311,7 +311,7 @@
      20. template<typename Cloner, typename Disposer> 
        -  static void clone(const const_node_ptr & source_header, 
        +  static void clone(const const_node_ptr & source_header, 
                             const node_ptr & target_header, Cloner cloner, 
                             Disposer disposer);

        Requires: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.

        @@ -322,7 +322,7 @@
      21. template<typename Disposer> 
        -  static void clear_and_dispose(const node_ptr & header, Disposer disposer);
        + static void clear_and_dispose(const node_ptr & header, Disposer disposer);

        Requires: "disposer" must be an object function taking a node_ptr parameter and shouldn't throw.

        Effects: Empties the target tree calling void disposer::operator()(const node_ptr &) for every node of the tree except the header.

        Complexity: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.

        @@ -331,7 +331,7 @@
      22. template<typename KeyType, typename KeyNodePtrCompare> 
           static node_ptr 
        -  lower_bound(const const_node_ptr & header, const KeyType & key, 
        +  lower_bound(const const_node_ptr & header, const KeyType & key, 
                       KeyNodePtrCompare comp);

        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

        Effects: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.

        @@ -341,7 +341,7 @@
      23. template<typename KeyType, typename KeyNodePtrCompare> 
           static node_ptr 
        -  upper_bound(const const_node_ptr & header, const KeyType & key, 
        +  upper_bound(const const_node_ptr & header, const KeyType & key, 
                       KeyNodePtrCompare comp);

        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

        Effects: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.

        @@ -351,7 +351,7 @@
      24. template<typename KeyType, typename KeyNodePtrCompare> 
           static node_ptr 
        -  find(const const_node_ptr & header, const KeyType & key, 
        +  find(const const_node_ptr & header, const KeyType & key, 
                KeyNodePtrCompare comp);

        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

        Effects: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.

        @@ -361,7 +361,7 @@
      25. template<typename KeyType, typename KeyNodePtrCompare> 
           static std::pair< node_ptr, node_ptr > 
        -  equal_range(const const_node_ptr & header, const KeyType & key, 
        +  equal_range(const const_node_ptr & header, const KeyType & key, 
                       KeyNodePtrCompare comp);

        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

        Effects: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.

        @@ -371,7 +371,7 @@
      26. template<typename KeyType, typename KeyNodePtrCompare> 
           static std::pair< node_ptr, node_ptr > 
        -  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
        +  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                         const KeyType & upper_key, KeyNodePtrCompare comp, 
                         bool left_closed, bool right_closed);

        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.

        @@ -386,7 +386,7 @@
      27. template<typename KeyType, typename KeyNodePtrCompare> 
           static std::size_t 
        -  count(const const_node_ptr & header, const KeyType & key, 
        +  count(const const_node_ptr & header, const KeyType & key, 
                 KeyNodePtrCompare comp);

        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

        Effects: Returns the number of elements with a key equivalent to "key" according to "comp".

        @@ -396,7 +396,7 @@
      28. template<typename NodePtrCompare> 
           static node_ptr 
        -  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
        +  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
                                    NodePtrCompare comp);

        Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

        Effects: Inserts new_node into the tree before the upper bound according to "comp".

        @@ -406,7 +406,7 @@
      29. template<typename NodePtrCompare> 
           static node_ptr 
        -  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
        +  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
                                    NodePtrCompare comp);

        Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

        Effects: Inserts new_node into the tree before the lower bound according to "comp".

        @@ -416,7 +416,7 @@
      30. template<typename NodePtrCompare> 
           static node_ptr 
        -  insert_equal(const node_ptr & header, const node_ptr & hint, 
        +  insert_equal(const node_ptr & header, const node_ptr & hint, 
                        const node_ptr & new_node, NodePtrCompare comp);

        Requires: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.

        Effects: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).

        @@ -425,7 +425,7 @@
      31. static node_ptr 
        -insert_before(const node_ptr & header, const node_ptr & pos, 
        +insert_before(const node_ptr & header, const node_ptr & pos, 
                       const node_ptr & new_node);

        Requires: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.

        Effects: Inserts new_node into the tree before "pos".

        @@ -434,7 +434,7 @@

        Note: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken.

      32. -
        static void push_back(const node_ptr & header, const node_ptr & new_node);
        +
        static void push_back(const node_ptr & header, const node_ptr & new_node);

        Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.

        Effects: Inserts new_node into the tree before "pos".

        Complexity: Constant-time.

        @@ -442,7 +442,7 @@

        Note: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before".

      33. -
        static void push_front(const node_ptr & header, const node_ptr & new_node);
        +
        static void push_front(const node_ptr & header, const node_ptr & new_node);

        Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.

        Effects: Inserts new_node into the tree before "pos".

        Complexity: Constant-time.

        @@ -452,7 +452,7 @@
      34. template<typename KeyType, typename KeyNodePtrCompare> 
           static std::pair< node_ptr, bool > 
        -  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
        +  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
                               KeyNodePtrCompare comp, 
                               insert_commit_data & commit_data);

        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.

        @@ -467,7 +467,7 @@
      35. template<typename KeyType, typename KeyNodePtrCompare> 
           static std::pair< node_ptr, bool > 
        -  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
        +  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
                               const KeyType & key, KeyNodePtrCompare comp, 
                               insert_commit_data & commit_data);

        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.

        @@ -480,7 +480,7 @@

        "commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set.

      36. -
        static void insert_unique_commit(const node_ptr & header, 
        +
        static void insert_unique_commit(const node_ptr & header, 
                                          const node_ptr & new_value, 
                                          const insert_commit_data & commit_data);

        Requires: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".

        @@ -490,7 +490,7 @@

        Notes: This function has only sense if a "insert_unique_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

      37. -
        static bool is_header(const const_node_ptr & p);
        +
        static bool is_header(const const_node_ptr & p);

        Requires: p is a node of a tree.

        Effects: Returns true if p is the header of the tree.

        Complexity: Constant.

        diff --git a/doc/html/boost/intrusive/set.html b/doc/html/boost/intrusive/set.html index 460e72f49f..df255a37fc 100644 --- a/doc/html/boost/intrusive/set.html +++ b/doc/html/boost/intrusive/set.html @@ -60,131 +60,131 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - set(); - explicit set(const key_compare &, const value_traits & = value_traits()); + set(); + explicit set(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - set(Iterator, Iterator, const key_compare & = key_compare(), + set(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - set(set &&); - set & operator=(set &&); - ~set(); + set(set &&); + set & operator=(set &&); + ~set(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(set &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(set &); template<typename Cloner, typename Disposer> - void clone_from(const set &, Cloner, Disposer); + void clone_from(const set &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(set &&, Cloner, Disposer); - std::pair< iterator, bool > insert(reference); - iterator insert(const_iterator, reference); + void clone_from(set &&, Cloner, Disposer); + std::pair< iterator, bool > insert(reference); + iterator insert(const_iterator, reference); std::pair< iterator, bool > - insert_check(const key_type &, insert_commit_data &); + insert_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_check(const_iterator, const key_type &, insert_commit_data &); + insert_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); + insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_commit(reference, const insert_commit_data &); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_commit(reference, const insert_commit_data &); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - template<class... Options2> void merge(set< T, Options2...> &); - template<class... Options2> void merge(multiset< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + template<class... Options2> void merge(set< T, Options2...> &); + template<class... Options2> void merge(multiset< T, Options2...> &); - // public static functions - static set & container_from_end_iterator(iterator); - static const set & container_from_end_iterator(const_iterator); - static set & container_from_iterator(iterator); - static const set & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static set & container_from_end_iterator(iterator); + static const set & container_from_end_iterator(const_iterator); + static set & container_from_iterator(iterator); + static const set & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -201,13 +201,13 @@ construct/copy/destruct
        1. -
          set();
          +
          set();

          Effects: Constructs an empty container.

          Complexity: Constant.

          Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

        2. -
          explicit set(const key_compare & cmp, 
          +
          explicit set(const key_compare & cmp, 
                        const value_traits & v_traits = value_traits());

          Effects: Constructs an empty container with given comparison and traits.

          Complexity: Constant.

          @@ -215,7 +215,7 @@
        3. template<typename Iterator> 
          -  set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
          +  set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                 const value_traits & v_traits = value_traits());

          Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

          Effects: Constructs an empty container and inserts elements from [b, e).

          @@ -223,17 +223,17 @@

          Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

        4. -
          set(set && x);
          +
          set(set && x);

          Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

          Complexity: Constant.

          Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

        5. -
          set & operator=(set && x);
          +
          set & operator=(set && x);

          Effects: Equivalent to swap

        6. -
          ~set();
          +
          ~set();

          Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

          Complexity: Linear to elements contained in *this.

          Throws: Nothing.

          @@ -242,131 +242,131 @@

        -set public member functions

        +set public member functions
        1. -
          iterator begin();
          +
          iterator begin();

          Effects: Returns an iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        2. -
          const_iterator begin() const;
          +
          const_iterator begin() const;

          Effects: Returns a const_iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        3. -
          const_iterator cbegin() const;
          +
          const_iterator cbegin() const;

          Effects: Returns a const_iterator pointing to the beginning of the container.

          Complexity: Constant.

          Throws: Nothing.

        4. -
          iterator end();
          +
          iterator end();

          Effects: Returns an iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        5. -
          const_iterator end() const;
          +
          const_iterator end() const;

          Effects: Returns a const_iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        6. -
          const_iterator cend() const;
          +
          const_iterator cend() const;

          Effects: Returns a const_iterator pointing to the end of the container.

          Complexity: Constant.

          Throws: Nothing.

        7. -
          reverse_iterator rbegin();
          +
          reverse_iterator rbegin();

          Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        8. -
          const_reverse_iterator rbegin() const;
          +
          const_reverse_iterator rbegin() const;

          Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        9. -
          const_reverse_iterator crbegin() const;
          +
          const_reverse_iterator crbegin() const;

          Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        10. -
          reverse_iterator rend();
          +
          reverse_iterator rend();

          Effects: Returns a reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        11. -
          const_reverse_iterator rend() const;
          +
          const_reverse_iterator rend() const;

          Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        12. -
          const_reverse_iterator crend() const;
          +
          const_reverse_iterator crend() const;

          Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

          Complexity: Constant.

          Throws: Nothing.

        13. -
          iterator root();
          +
          iterator root();

          Effects: Returns a iterator pointing to the root node of the container or end() if not present.

          Complexity: Constant.

          Throws: Nothing.

        14. -
          const_iterator root() const;
          +
          const_iterator root() const;

          Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

          Complexity: Constant.

          Throws: Nothing.

        15. -
          const_iterator croot() const;
          +
          const_iterator croot() const;

          Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

          Complexity: Constant.

          Throws: Nothing.

        16. -
          key_compare key_comp() const;
          +
          key_compare key_comp() const;

          Effects: Returns the key_compare object used by the container.

          Complexity: Constant.

          Throws: If key_compare copy-constructor throws.

        17. -
          value_compare value_comp() const;
          +
          value_compare value_comp() const;

          Effects: Returns the value_compare object used by the container.

          Complexity: Constant.

          Throws: If value_compare copy-constructor throws.

        18. -
          bool empty() const;
          +
          bool empty() const;

          Effects: Returns true if the container is empty.

          Complexity: Constant.

          Throws: Nothing.

        19. -
          size_type size() const;
          +
          size_type size() const;

          Effects: Returns the number of elements stored in the container.

          Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

          Throws: Nothing.

        20. -
          void swap(set & other);
          +
          void swap(set & other);

          Effects: Swaps the contents of two containers.

          Complexity: Constant.

          Throws: If the comparison functor's swap call throws.

        21. template<typename Cloner, typename Disposer> 
          -  void clone_from(const set & src, Cloner cloner, Disposer disposer);
          + void clone_from(const set & src, Cloner cloner, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

          Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

          If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

          @@ -375,7 +375,7 @@
        22. template<typename Cloner, typename Disposer> 
          -  void clone_from(set && src, Cloner cloner, Disposer disposer);
          + void clone_from(set && src, Cloner cloner, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

          Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

          If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

          @@ -384,7 +384,7 @@

          Note: This version can modify the source container, useful to implement move semantics.

        23. -
          std::pair< iterator, bool > insert(reference value);
          +
          std::pair< iterator, bool > insert(reference value);

          Requires: value must be an lvalue

          Effects: Inserts value into the container if the value is not already present.

          Complexity: Average complexity for insert element is at most logarithmic.

          @@ -392,7 +392,7 @@

          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

        24. -
          iterator insert(const_iterator hint, reference value);
          +
          iterator insert(const_iterator hint, reference value);

          Requires: value must be an lvalue, and "hint" must be a valid iterator

          Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

          Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

          @@ -401,7 +401,7 @@
        25. std::pair< iterator, bool > 
          -insert_check(const key_type & key, insert_commit_data & commit_data);
          +insert_check(const key_type & key, insert_commit_data & commit_data);

          Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

          Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

          Complexity: Average complexity is at most logarithmic.

          @@ -409,7 +409,7 @@
        26. std::pair< iterator, bool > 
          -insert_check(const_iterator hint, const key_type & key, 
          +insert_check(const_iterator hint, const key_type & key, 
                        insert_commit_data & commit_data);

          Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

          Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

          @@ -419,7 +419,7 @@
        27. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, bool > 
          -  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
          +  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                          insert_commit_data & commit_data);

          Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

          Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

          @@ -433,7 +433,7 @@
        28. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, bool > 
          -  insert_check(const_iterator hint, const KeyType & key, 
          +  insert_check(const_iterator hint, const KeyType & key, 
                          KeyTypeKeyCompare comp, insert_commit_data & commit_data);

          Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

          Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

          @@ -445,7 +445,7 @@

          "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

        29. -
          template<typename Iterator> void insert(Iterator b, Iterator e);
          +
          template<typename Iterator> void insert(Iterator b, Iterator e);

          Requires: Dereferencing iterator must yield an lvalue of type value_type.

          Effects: Tries to insert each element of a range into the container.

          Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

          @@ -453,7 +453,7 @@

          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

        30. -
          iterator insert_commit(reference value, 
          +
          iterator insert_commit(reference value, 
                                  const insert_commit_data & commit_data);

          Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

          Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

          @@ -463,7 +463,7 @@

          Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

        31. -
          iterator insert_before(const_iterator pos, reference value);
          +
          iterator insert_before(const_iterator pos, reference value);

          Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

          Effects: Inserts x into the container before "pos".

          Complexity: Constant time.

          @@ -471,7 +471,7 @@

          Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

        32. -
          void push_back(reference value);
          +
          void push_back(reference value);

          Requires: value must be an lvalue, and it must be no less than the greatest inserted key

          Effects: Inserts x into the container in the last position.

          Complexity: Constant time.

          @@ -479,7 +479,7 @@

          Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

        33. -
          void push_front(reference value);
          +
          void push_front(reference value);

          Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

          Effects: Inserts x into the container in the first position.

          Complexity: Constant time.

          @@ -487,21 +487,21 @@

          Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

        34. -
          iterator erase(const_iterator i);
          +
          iterator erase(const_iterator i);

          Effects: Erases the element pointed to by i.

          Complexity: Average complexity for erase element is constant time.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        35. -
          iterator erase(const_iterator b, const_iterator e);
          +
          iterator erase(const_iterator b, const_iterator e);

          Effects: Erases the range pointed to by b end e.

          Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        36. -
          size_type erase(const key_type & key);
          +
          size_type erase(const key_type & key);

          Effects: Erases all the elements with the given value.

          Returns: The number of erased elements.

          Complexity: O(log(size() + N).

          @@ -510,7 +510,7 @@
        37. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
          + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Erases all the elements with the given key. according to the comparison functor "comp".

          Returns: The number of erased elements.

          @@ -520,7 +520,7 @@
        38. template<typename Disposer> 
          -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
          + iterator erase_and_dispose(const_iterator i, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

          Complexity: Average complexity for erase element is constant time.

          @@ -529,7 +529,7 @@
        39. template<typename Disposer> 
          -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
          +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                        Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

          @@ -539,7 +539,7 @@
        40. template<typename Disposer> 
          -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
          + size_type erase_and_dispose(const key_type & key, Disposer disposer);

          Requires: Disposer::operator()(pointer) shouldn't throw.

          Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

          Returns: The number of erased elements.

          @@ -549,7 +549,7 @@
        41. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
          -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
          +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                         Disposer disposer);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

          Requires: Disposer::operator()(pointer) shouldn't throw.

          @@ -560,47 +560,47 @@

          Note: Invalidates the iterators to the erased elements.

        42. -
          void clear();
          +
          void clear();

          Effects: Erases all of the elements.

          Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

        43. -
          template<typename Disposer> void clear_and_dispose(Disposer disposer);
          +
          template<typename Disposer> void clear_and_dispose(Disposer disposer);

          Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

          Throws: Nothing.

          Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

        44. -
          size_type count(const key_type & key) const;
          +
          size_type count(const key_type & key) const;

          Effects: Returns the number of contained elements with the given value

          Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

          Throws: If key_compare throws.

        45. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
          + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Returns the number of contained elements with the given key

          Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

          Throws: If comp throws.

        46. -
          iterator lower_bound(const key_type & key);
          +
          iterator lower_bound(const key_type & key);

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        47. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        48. -
          const_iterator lower_bound(const key_type & key) const;
          +
          const_iterator lower_bound(const key_type & key) const;

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -608,27 +608,27 @@
        49. template<typename KeyType, typename KeyTypeKeyCompare> 
             const_iterator 
          -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
          + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        50. -
          iterator upper_bound(const key_type & key);
          +
          iterator upper_bound(const key_type & key);

          Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        51. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        52. -
          const_iterator upper_bound(const key_type & key) const;
          +
          const_iterator upper_bound(const key_type & key) const;

          Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -636,42 +636,42 @@
        53. template<typename KeyType, typename KeyTypeKeyCompare> 
             const_iterator 
          -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
          + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        54. -
          iterator find(const key_type & key);
          +
          iterator find(const key_type & key);

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        55. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
          + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        56. -
          const_iterator find(const key_type & key) const;
          +
          const_iterator find(const key_type & key) const;

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

        57. template<typename KeyType, typename KeyTypeKeyCompare> 
          -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
          + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

          Complexity: Logarithmic.

          Throws: If comp throws.

        58. -
          std::pair< iterator, iterator > equal_range(const key_type & key);
          +
          std::pair< iterator, iterator > equal_range(const key_type & key);

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -679,7 +679,7 @@
        59. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, iterator > 
          -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
          + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          @@ -687,7 +687,7 @@
        60. std::pair< const_iterator, const_iterator > 
          -equal_range(const key_type & key) const;
          +equal_range(const key_type & key) const;

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          Throws: If key_compare throws.

          @@ -695,7 +695,7 @@
        61. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< const_iterator, const_iterator > 
          -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
          + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

          Complexity: Logarithmic.

          @@ -703,7 +703,7 @@
        62. std::pair< iterator, iterator > 
          -bounded_range(const key_type & lower_key, const key_type & upper_key, 
          +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                         bool left_closed, bool right_closed);

          Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

          If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

          @@ -718,7 +718,7 @@
        63. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< iterator, iterator > 
          -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
          +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                           KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

          Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

          upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

          @@ -734,7 +734,7 @@
        64. std::pair< const_iterator, const_iterator > 
          -bounded_range(const key_type & lower_key, const key_type & upper_key, 
          +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                         bool left_closed, bool right_closed) const;

          Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

          If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

          @@ -749,7 +749,7 @@
        65. template<typename KeyType, typename KeyTypeKeyCompare> 
             std::pair< const_iterator, const_iterator > 
          -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
          +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                           KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

          Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

          upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

          @@ -764,28 +764,28 @@

          Note: Experimental function, the interface might change in future releases.

        66. -
          iterator iterator_to(reference value);
          +
          iterator iterator_to(reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          Throws: Nothing.

        67. -
          const_iterator iterator_to(const_reference value) const;
          +
          const_iterator iterator_to(const_reference value) const;

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid const_iterator i belonging to the set that points to the value

          Complexity: Constant.

          Throws: Nothing.

        68. -
          pointer unlink_leftmost_without_rebalance();
          +
          pointer unlink_leftmost_without_rebalance();

          Effects: Unlinks the leftmost node from the container.

          Complexity: Average complexity is constant time.

          Throws: Nothing.

          Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

        69. -
          void replace_node(iterator replace_this, reference with_this);
          +
          void replace_node(iterator replace_this, reference with_this);

          Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

          Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

          Complexity: Constant.

          @@ -793,7 +793,7 @@

          Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

        70. -
          void remove_node(reference value);
          +
          void remove_node(reference value);

          Effects: removes "value" from the container.

          Throws: Nothing.

          Complexity: Logarithmic time.

          @@ -801,7 +801,7 @@

          If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

        71. -
          template<class... Options2> void merge(set< T, Options2...> & source);
          +
          template<class... Options2> void merge(set< T, Options2...> & source);

          Requires: "source" container's Options can only can differ in the comparison function from *this.

          Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

          Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

          @@ -809,7 +809,7 @@

          Complexity: N log(a.size() + N) (N has the value source.size())

        72. -
          template<class... Options2> void merge(multiset< T, Options2...> & source);
          +
          template<class... Options2> void merge(multiset< T, Options2...> & source);

          Requires: "source" container's Options can only can differ in the comparison function from *this.

          Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

          Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

          @@ -820,38 +820,38 @@

        -set public static functions

        +set public static functions
        1. -
          static set & container_from_end_iterator(iterator end_iterator);
          +
          static set & container_from_end_iterator(iterator end_iterator);

          Precondition: end_iterator must be a valid end iterator of the container.

          Effects: Returns a const reference to the container associated to the end iterator

          Throws: Nothing.

          Complexity: Constant.

        2. -
          static const set & container_from_end_iterator(const_iterator end_iterator);
          +
          static const set & container_from_end_iterator(const_iterator end_iterator);

          Precondition: end_iterator must be a valid end iterator of the container.

          Effects: Returns a const reference to the container associated to the end iterator

          Throws: Nothing.

          Complexity: Constant.

        3. -
          static set & container_from_iterator(iterator it);
          +
          static set & container_from_iterator(iterator it);

          Precondition: it must be a valid iterator of the container.

          Effects: Returns a const reference to the container associated to the iterator

          Throws: Nothing.

          Complexity: Logarithmic.

        4. -
          static const set & container_from_iterator(const_iterator it);
          +
          static const set & container_from_iterator(const_iterator it);

          Precondition: it must be a valid iterator of the container.

          Effects: Returns a const reference to the container associated to the iterator

          Throws: Nothing.

          Complexity: Logarithmic.

        5. -
          static iterator s_iterator_to(reference value);
          +
          static iterator s_iterator_to(reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          @@ -859,7 +859,7 @@

          Note: This static function is available only if the value traits is stateless.

        6. -
          static const_iterator s_iterator_to(const_reference value);
          +
          static const_iterator s_iterator_to(const_reference value);

          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

          Effects: Returns: a valid iterator i belonging to the set that points to the value

          Complexity: Constant.

          @@ -867,7 +867,7 @@

          Note: This static function is available only if the value traits is stateless.

        7. -
          static void init_node(reference value);
          +
          static void init_node(reference value);

          Requires: value shall not be in a container.

          Effects: init_node puts the hook of a value in a well-known default state.

          Throws: Nothing.

          diff --git a/doc/html/boost/intrusive/set_base_hook.html b/doc/html/boost/intrusive/set_base_hook.html index 6e7991e838..d053b72140 100644 --- a/doc/html/boost/intrusive/set_base_hook.html +++ b/doc/html/boost/intrusive/set_base_hook.html @@ -36,15 +36,15 @@ class set_base_hook : public make_set_base_hook::type< O1, O2, O3, O4 > { public: // construct/copy/destruct - set_base_hook(); - set_base_hook(const set_base_hook &); - set_base_hook & operator=(const set_base_hook &); - ~set_base_hook(); + set_base_hook(); + set_base_hook(const set_base_hook &); + set_base_hook & operator=(const set_base_hook &); + ~set_base_hook(); - // public member functions - void swap_nodes(set_base_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(set_base_hook &); + bool is_linked() const; + void unlink(); };

        Description

        @@ -61,24 +61,24 @@ construct/copy/destruct
        1. -
          set_base_hook();
          +
          set_base_hook();

          Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

          Throws: Nothing.

        2. -
          set_base_hook(const set_base_hook &);
          +
          set_base_hook(const set_base_hook &);

          Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

          Throws: Nothing.

          Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

        3. -
          set_base_hook & operator=(const set_base_hook &);
          +
          set_base_hook & operator=(const set_base_hook &);

          Effects: Empty function. The argument is ignored.

          Throws: Nothing.

          Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

        4. -
          ~set_base_hook();
          +
          ~set_base_hook();

          Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in a set an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

          Throws: Nothing.

        5. @@ -86,22 +86,22 @@

        -set_base_hook public member functions

        +set_base_hook public member functions
        1. -
          void swap_nodes(set_base_hook & other);
          +
          void swap_nodes(set_base_hook & other);

          Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

          Complexity: Constant

          Throws: Nothing.

        2. -
          bool is_linked() const;
          +
          bool is_linked() const;

          Precondition: link_mode must be safe_link or auto_unlink.

          Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether set::iterator_to will return a valid iterator.

          Complexity: Constant

        3. -
          void unlink();
          +
          void unlink();

          Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

          Throws: Nothing.

        4. diff --git a/doc/html/boost/intrusive/set_member_hook.html b/doc/html/boost/intrusive/set_member_hook.html index 82aab17a66..6a31c6907d 100644 --- a/doc/html/boost/intrusive/set_member_hook.html +++ b/doc/html/boost/intrusive/set_member_hook.html @@ -36,15 +36,15 @@ class set_member_hook : public make_set_member_hook::type< O1, O2, O3, O4 > { public: // construct/copy/destruct - set_member_hook(); - set_member_hook(const set_member_hook &); - set_member_hook & operator=(const set_member_hook &); - ~set_member_hook(); + set_member_hook(); + set_member_hook(const set_member_hook &); + set_member_hook & operator=(const set_member_hook &); + ~set_member_hook(); - // public member functions - void swap_nodes(set_member_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(set_member_hook &); + bool is_linked() const; + void unlink(); };

        Description

        @@ -60,24 +60,24 @@ construct/copy/destruct
        1. -
          set_member_hook();
          +
          set_member_hook();

          Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

          Throws: Nothing.

        2. -
          set_member_hook(const set_member_hook &);
          +
          set_member_hook(const set_member_hook &);

          Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

          Throws: Nothing.

          Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

        3. -
          set_member_hook & operator=(const set_member_hook &);
          +
          set_member_hook & operator=(const set_member_hook &);

          Effects: Empty function. The argument is ignored.

          Throws: Nothing.

          Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

        4. -
          ~set_member_hook();
          +
          ~set_member_hook();

          Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in a set an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

          Throws: Nothing.

        5. @@ -85,22 +85,22 @@

        -set_member_hook public member functions

        +set_member_hook public member functions
        1. -
          void swap_nodes(set_member_hook & other);
          +
          void swap_nodes(set_member_hook & other);

          Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

          Complexity: Constant

          Throws: Nothing.

        2. -
          bool is_linked() const;
          +
          bool is_linked() const;

          Precondition: link_mode must be safe_link or auto_unlink.

          Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether set::iterator_to will return a valid iterator.

          Complexity: Constant

        3. -
          void unlink();
          +
          void unlink();

          Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

          Throws: Nothing.

        4. diff --git a/doc/html/boost/intrusive/sg_multiset.html b/doc/html/boost/intrusive/sg_multiset.html index 7b2f2cff6c..18f8fe070e 100644 --- a/doc/html/boost/intrusive/sg_multiset.html +++ b/doc/html/boost/intrusive/sg_multiset.html @@ -60,124 +60,124 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - sg_multiset(); - explicit sg_multiset(const key_compare &, + sg_multiset(); + explicit sg_multiset(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - sg_multiset(Iterator, Iterator, const key_compare & = key_compare(), + sg_multiset(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - sg_multiset(sg_multiset &&); - sg_multiset & operator=(sg_multiset &&); - ~sg_multiset(); + sg_multiset(sg_multiset &&); + sg_multiset & operator=(sg_multiset &&); + ~sg_multiset(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(sg_multiset &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(sg_multiset &); template<typename Cloner, typename Disposer> - void clone_from(const sg_multiset &, Cloner, Disposer); + void clone_from(const sg_multiset &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(sg_multiset &&, Cloner, Disposer); - iterator insert(reference); - iterator insert(const_iterator, reference); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + void clone_from(sg_multiset &&, Cloner, Disposer); + iterator insert(reference); + iterator insert(const_iterator, reference); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - void rebalance(); - iterator rebalance_subtree(iterator); - float balance_factor() const; - void balance_factor(float); - template<class... Options2> void merge(sg_multiset< T, Options2...> &); - template<class... Options2> void merge(sg_set< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + void rebalance(); + iterator rebalance_subtree(iterator); + float balance_factor() const; + void balance_factor(float); + template<class... Options2> void merge(sg_multiset< T, Options2...> &); + template<class... Options2> void merge(sg_set< T, Options2...> &); - // public static functions - static sg_multiset & container_from_end_iterator(iterator); - static const sg_multiset & container_from_end_iterator(const_iterator); - static sg_multiset & container_from_iterator(iterator); - static const sg_multiset & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static sg_multiset & container_from_end_iterator(iterator); + static const sg_multiset & container_from_end_iterator(const_iterator); + static sg_multiset & container_from_iterator(iterator); + static const sg_multiset & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -194,13 +194,13 @@ construct/copy/destruct
          1. -
            sg_multiset();
            +
            sg_multiset();

            Effects: Constructs an empty container.

            Complexity: Constant.

            Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

          2. -
            explicit sg_multiset(const key_compare & cmp, 
            +
            explicit sg_multiset(const key_compare & cmp, 
                                  const value_traits & v_traits = value_traits());

            Effects: Constructs an empty container with given comparison and traits.

            Complexity: Constant.

            @@ -208,7 +208,7 @@
          3. template<typename Iterator> 
            -  sg_multiset(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
            +  sg_multiset(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                           const value_traits & v_traits = value_traits());

            Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

            Effects: Constructs an empty container and inserts elements from [b, e).

            @@ -216,17 +216,17 @@

            Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

          4. -
            sg_multiset(sg_multiset && x);
            +
            sg_multiset(sg_multiset && x);

            Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

            Complexity: Constant.

            Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

          5. -
            sg_multiset & operator=(sg_multiset && x);
            +
            sg_multiset & operator=(sg_multiset && x);

            Effects: Equivalent to swap

          6. -
            ~sg_multiset();
            +
            ~sg_multiset();

            Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

            Complexity: Linear to elements contained in *this.

            Throws: Nothing.

            @@ -235,131 +235,131 @@

          -sg_multiset public member functions

          +sg_multiset public member functions
          1. -
            iterator begin();
            +
            iterator begin();

            Effects: Returns an iterator pointing to the beginning of the container.

            Complexity: Constant.

            Throws: Nothing.

          2. -
            const_iterator begin() const;
            +
            const_iterator begin() const;

            Effects: Returns a const_iterator pointing to the beginning of the container.

            Complexity: Constant.

            Throws: Nothing.

          3. -
            const_iterator cbegin() const;
            +
            const_iterator cbegin() const;

            Effects: Returns a const_iterator pointing to the beginning of the container.

            Complexity: Constant.

            Throws: Nothing.

          4. -
            iterator end();
            +
            iterator end();

            Effects: Returns an iterator pointing to the end of the container.

            Complexity: Constant.

            Throws: Nothing.

          5. -
            const_iterator end() const;
            +
            const_iterator end() const;

            Effects: Returns a const_iterator pointing to the end of the container.

            Complexity: Constant.

            Throws: Nothing.

          6. -
            const_iterator cend() const;
            +
            const_iterator cend() const;

            Effects: Returns a const_iterator pointing to the end of the container.

            Complexity: Constant.

            Throws: Nothing.

          7. -
            reverse_iterator rbegin();
            +
            reverse_iterator rbegin();

            Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          8. -
            const_reverse_iterator rbegin() const;
            +
            const_reverse_iterator rbegin() const;

            Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          9. -
            const_reverse_iterator crbegin() const;
            +
            const_reverse_iterator crbegin() const;

            Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          10. -
            reverse_iterator rend();
            +
            reverse_iterator rend();

            Effects: Returns a reverse_iterator pointing to the end of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          11. -
            const_reverse_iterator rend() const;
            +
            const_reverse_iterator rend() const;

            Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          12. -
            const_reverse_iterator crend() const;
            +
            const_reverse_iterator crend() const;

            Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

            Complexity: Constant.

            Throws: Nothing.

          13. -
            iterator root();
            +
            iterator root();

            Effects: Returns a iterator pointing to the root node of the container or end() if not present.

            Complexity: Constant.

            Throws: Nothing.

          14. -
            const_iterator root() const;
            +
            const_iterator root() const;

            Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

            Complexity: Constant.

            Throws: Nothing.

          15. -
            const_iterator croot() const;
            +
            const_iterator croot() const;

            Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

            Complexity: Constant.

            Throws: Nothing.

          16. -
            key_compare key_comp() const;
            +
            key_compare key_comp() const;

            Effects: Returns the key_compare object used by the container.

            Complexity: Constant.

            Throws: If key_compare copy-constructor throws.

          17. -
            value_compare value_comp() const;
            +
            value_compare value_comp() const;

            Effects: Returns the value_compare object used by the container.

            Complexity: Constant.

            Throws: If value_compare copy-constructor throws.

          18. -
            bool empty() const;
            +
            bool empty() const;

            Effects: Returns true if the container is empty.

            Complexity: Constant.

            Throws: Nothing.

          19. -
            size_type size() const;
            +
            size_type size() const;

            Effects: Returns the number of elements stored in the container.

            Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

            Throws: Nothing.

          20. -
            void swap(sg_multiset & other);
            +
            void swap(sg_multiset & other);

            Effects: Swaps the contents of two containers.

            Complexity: Constant.

            Throws: If the comparison functor's swap call throws.

          21. template<typename Cloner, typename Disposer> 
            -  void clone_from(const sg_multiset & src, Cloner cloner, Disposer disposer);
            + void clone_from(const sg_multiset & src, Cloner cloner, Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

            If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

            @@ -368,7 +368,7 @@
          22. template<typename Cloner, typename Disposer> 
            -  void clone_from(sg_multiset && src, Cloner cloner, Disposer disposer);
            + void clone_from(sg_multiset && src, Cloner cloner, Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

            If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

            @@ -377,7 +377,7 @@

            Note: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container.

          23. -
            iterator insert(reference value);
            +
            iterator insert(reference value);

            Requires: value must be an lvalue

            Effects: Inserts value into the container before the upper bound.

            Complexity: Average complexity for insert element is at most logarithmic.

            @@ -385,7 +385,7 @@

            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

          24. -
            iterator insert(const_iterator hint, reference value);
            +
            iterator insert(const_iterator hint, reference value);

            Requires: value must be an lvalue, and "hint" must be a valid iterator.

            Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

            Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

            @@ -393,7 +393,7 @@

            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

          25. -
            template<typename Iterator> void insert(Iterator b, Iterator e);
            +
            template<typename Iterator> void insert(Iterator b, Iterator e);

            Requires: Dereferencing iterator must yield an lvalue of type value_type.

            Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

            Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

            @@ -401,7 +401,7 @@

            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

          26. -
            iterator insert_before(const_iterator pos, reference value);
            +
            iterator insert_before(const_iterator pos, reference value);

            Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

            Effects: Inserts x into the container before "pos".

            Complexity: Constant time.

            @@ -409,7 +409,7 @@

            Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

          27. -
            void push_back(reference value);
            +
            void push_back(reference value);

            Requires: value must be an lvalue, and it must be no less than the greatest inserted key

            Effects: Inserts x into the container in the last position.

            Complexity: Constant time.

            @@ -417,7 +417,7 @@

            Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

          28. -
            void push_front(reference value);
            +
            void push_front(reference value);

            Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

            Effects: Inserts x into the container in the first position.

            Complexity: Constant time.

            @@ -425,21 +425,21 @@

            Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

          29. -
            iterator erase(const_iterator i);
            +
            iterator erase(const_iterator i);

            Effects: Erases the element pointed to by i.

            Complexity: Average complexity for erase element is constant time.

            Throws: Nothing.

            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

          30. -
            iterator erase(const_iterator b, const_iterator e);
            +
            iterator erase(const_iterator b, const_iterator e);

            Effects: Erases the range pointed to by b end e.

            Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

            Throws: Nothing.

            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

          31. -
            size_type erase(const key_type & key);
            +
            size_type erase(const key_type & key);

            Effects: Erases all the elements with the given value.

            Returns: The number of erased elements.

            Complexity: O(log(size() + N).

            @@ -448,7 +448,7 @@
          32. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
            + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Erases all the elements with the given key. according to the comparison functor "comp".

            Returns: The number of erased elements.

            @@ -458,7 +458,7 @@
          33. template<typename Disposer> 
            -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
            + iterator erase_and_dispose(const_iterator i, Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw.

            Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

            Complexity: Average complexity for erase element is constant time.

            @@ -467,7 +467,7 @@
          34. template<typename Disposer> 
            -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
            +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                          Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw.

            Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

            @@ -477,7 +477,7 @@
          35. template<typename Disposer> 
            -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
            + size_type erase_and_dispose(const key_type & key, Disposer disposer);

            Requires: Disposer::operator()(pointer) shouldn't throw.

            Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

            Returns: The number of erased elements.

            @@ -487,7 +487,7 @@
          36. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
            -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
            +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                           Disposer disposer);

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

            Requires: Disposer::operator()(pointer) shouldn't throw.

            @@ -498,47 +498,47 @@

            Note: Invalidates the iterators to the erased elements.

          37. -
            void clear();
            +
            void clear();

            Effects: Erases all of the elements.

            Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

            Throws: Nothing.

            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

          38. -
            template<typename Disposer> void clear_and_dispose(Disposer disposer);
            +
            template<typename Disposer> void clear_and_dispose(Disposer disposer);

            Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

            Throws: Nothing.

            Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

          39. -
            size_type count(const key_type & key) const;
            +
            size_type count(const key_type & key) const;

            Effects: Returns the number of contained elements with the given value

            Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

            Throws: If key_compare throws.

          40. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
            + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

            Effects: Returns the number of contained elements with the given key

            Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

            Throws: If comp throws.

          41. -
            iterator lower_bound(const key_type & key);
            +
            iterator lower_bound(const key_type & key);

            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          42. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
            + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          43. -
            const_iterator lower_bound(const key_type & key) const;
            +
            const_iterator lower_bound(const key_type & key) const;

            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

            @@ -546,27 +546,27 @@
          44. template<typename KeyType, typename KeyTypeKeyCompare> 
               const_iterator 
            -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
            + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          45. -
            iterator upper_bound(const key_type & key);
            +
            iterator upper_bound(const key_type & key);

            Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          46. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
            + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

            Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If comp throws.

          47. -
            const_iterator upper_bound(const key_type & key) const;
            +
            const_iterator upper_bound(const key_type & key) const;

            Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

            @@ -574,42 +574,42 @@
          48. template<typename KeyType, typename KeyTypeKeyCompare> 
               const_iterator 
            -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
            + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

            Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If comp throws.

          49. -
            iterator find(const key_type & key);
            +
            iterator find(const key_type & key);

            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          50. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
            + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If comp throws.

          51. -
            const_iterator find(const key_type & key) const;
            +
            const_iterator find(const key_type & key) const;

            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

          52. template<typename KeyType, typename KeyTypeKeyCompare> 
            -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
            + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

            Complexity: Logarithmic.

            Throws: If comp throws.

          53. -
            std::pair< iterator, iterator > equal_range(const key_type & key);
            +
            std::pair< iterator, iterator > equal_range(const key_type & key);

            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

            @@ -617,7 +617,7 @@
          54. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< iterator, iterator > 
            -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
            + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

            Complexity: Logarithmic.

            @@ -625,7 +625,7 @@
          55. std::pair< const_iterator, const_iterator > 
            -equal_range(const key_type & key) const;
            +equal_range(const key_type & key) const;

            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

            Complexity: Logarithmic.

            Throws: If key_compare throws.

            @@ -633,7 +633,7 @@
          56. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< const_iterator, const_iterator > 
            -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
            + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

            Complexity: Logarithmic.

            @@ -641,7 +641,7 @@
          57. std::pair< iterator, iterator > 
            -bounded_range(const key_type & lower_key, const key_type & upper_key, 
            +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                           bool left_closed, bool right_closed);

            Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

            If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

            @@ -656,7 +656,7 @@
          58. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< iterator, iterator > 
            -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
            +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                             KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

            Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

            upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

            @@ -672,7 +672,7 @@
          59. std::pair< const_iterator, const_iterator > 
            -bounded_range(const key_type & lower_key, const key_type & upper_key, 
            +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                           bool left_closed, bool right_closed) const;

            Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

            If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

            @@ -687,7 +687,7 @@
          60. template<typename KeyType, typename KeyTypeKeyCompare> 
               std::pair< const_iterator, const_iterator > 
            -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
            +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                             KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

            Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

            upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

            @@ -702,28 +702,28 @@

            Note: Experimental function, the interface might change in future releases.

          61. -
            iterator iterator_to(reference value);
            +
            iterator iterator_to(reference value);

            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

            Effects: Returns: a valid iterator i belonging to the set that points to the value

            Complexity: Constant.

            Throws: Nothing.

          62. -
            const_iterator iterator_to(const_reference value) const;
            +
            const_iterator iterator_to(const_reference value) const;

            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

            Effects: Returns: a valid const_iterator i belonging to the set that points to the value

            Complexity: Constant.

            Throws: Nothing.

          63. -
            pointer unlink_leftmost_without_rebalance();
            +
            pointer unlink_leftmost_without_rebalance();

            Effects: Unlinks the leftmost node from the container.

            Complexity: Average complexity is constant time.

            Throws: Nothing.

            Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

          64. -
            void replace_node(iterator replace_this, reference with_this);
            +
            void replace_node(iterator replace_this, reference with_this);

            Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

            Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

            Complexity: Constant.

            @@ -731,7 +731,7 @@

            Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

          65. -
            void remove_node(reference value);
            +
            void remove_node(reference value);

            Effects: removes "value" from the container.

            Throws: Nothing.

            Complexity: Logarithmic time.

            @@ -739,13 +739,13 @@

            If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

          66. -
            void rebalance();
            +
            void rebalance();

            Effects: Rebalances the tree.

            Throws: Nothing.

            Complexity: Linear.

          67. -
            iterator rebalance_subtree(iterator root);
            +
            iterator rebalance_subtree(iterator root);

            Requires: old_root is a node of a tree.

            Effects: Rebalances the subtree rooted at old_root.

            Returns: The new root of the subtree.

            @@ -753,20 +753,20 @@

            Complexity: Linear to the elements in the subtree.

          68. -
            float balance_factor() const;
            +
            float balance_factor() const;

            Returns: The balance factor (alpha) used in this tree

            Throws: Nothing.

            Complexity: Constant.

          69. -
            void balance_factor(float new_alpha);
            +
            void balance_factor(float new_alpha);

            Requires: new_alpha must be a value between 0.5 and 1.0

            Effects: Establishes a new balance factor (alpha) and rebalances the tree if the new balance factor is stricter (less) than the old factor.

            Throws: Nothing.

            Complexity: Linear to the elements in the subtree.

          70. -
            template<class... Options2> void merge(sg_multiset< T, Options2...> & source);
            +
            template<class... Options2> void merge(sg_multiset< T, Options2...> & source);

            Requires: "source" container's Options can only can differ in the comparison function from *this.

            Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

            Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

            @@ -774,7 +774,7 @@

            Complexity: N log(a.size() + N) (N has the value source.size())

          71. -
            template<class... Options2> void merge(sg_set< T, Options2...> & source);
            +
            template<class... Options2> void merge(sg_set< T, Options2...> & source);

            Requires: "source" container's Options can only can differ in the comparison function from *this.

            Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

            Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

            @@ -785,10 +785,10 @@

          -sg_multiset public static functions

          +sg_multiset public static functions
          1. -
            static sg_multiset & container_from_end_iterator(iterator end_iterator);
            +
            static sg_multiset & container_from_end_iterator(iterator end_iterator);

            Precondition: end_iterator must be a valid end iterator of the container.

            Effects: Returns a const reference to the container associated to the end iterator

            Throws: Nothing.

            @@ -796,28 +796,28 @@
          2. static const sg_multiset & 
            -container_from_end_iterator(const_iterator end_iterator);
            +container_from_end_iterator(const_iterator end_iterator);

            Precondition: end_iterator must be a valid end iterator of the container.

            Effects: Returns a const reference to the container associated to the end iterator

            Throws: Nothing.

            Complexity: Constant.

          3. -
            static sg_multiset & container_from_iterator(iterator it);
            +
            static sg_multiset & container_from_iterator(iterator it);

            Precondition: it must be a valid iterator of the container.

            Effects: Returns a const reference to the container associated to the iterator

            Throws: Nothing.

            Complexity: Logarithmic.

          4. -
            static const sg_multiset & container_from_iterator(const_iterator it);
            +
            static const sg_multiset & container_from_iterator(const_iterator it);

            Precondition: it must be a valid iterator of the container.

            Effects: Returns a const reference to the container associated to the iterator

            Throws: Nothing.

            Complexity: Logarithmic.

          5. -
            static iterator s_iterator_to(reference value);
            +
            static iterator s_iterator_to(reference value);

            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

            Effects: Returns: a valid iterator i belonging to the set that points to the value

            Complexity: Constant.

            @@ -825,7 +825,7 @@

            Note: This static function is available only if the value traits is stateless.

          6. -
            static const_iterator s_iterator_to(const_reference value);
            +
            static const_iterator s_iterator_to(const_reference value);

            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

            Effects: Returns: a valid iterator i belonging to the set that points to the value

            Complexity: Constant.

            @@ -833,7 +833,7 @@

            Note: This static function is available only if the value traits is stateless.

          7. -
            static void init_node(reference value);
            +
            static void init_node(reference value);

            Requires: value shall not be in a container.

            Effects: init_node puts the hook of a value in a well-known default state.

            Throws: Nothing.

            diff --git a/doc/html/boost/intrusive/sg_set.html b/doc/html/boost/intrusive/sg_set.html index 6d8b945326..64c3935a2a 100644 --- a/doc/html/boost/intrusive/sg_set.html +++ b/doc/html/boost/intrusive/sg_set.html @@ -60,135 +60,135 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - sg_set(); - explicit sg_set(const key_compare &, const value_traits & = value_traits()); + sg_set(); + explicit sg_set(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - sg_set(Iterator, Iterator, const key_compare & = key_compare(), + sg_set(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - sg_set(sg_set &&); - sg_set & operator=(sg_set &&); - ~sg_set(); + sg_set(sg_set &&); + sg_set & operator=(sg_set &&); + ~sg_set(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(sg_set &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(sg_set &); template<typename Cloner, typename Disposer> - void clone_from(const sg_set &, Cloner, Disposer); + void clone_from(const sg_set &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(sg_set &&, Cloner, Disposer); - std::pair< iterator, bool > insert(reference); - iterator insert(const_iterator, reference); + void clone_from(sg_set &&, Cloner, Disposer); + std::pair< iterator, bool > insert(reference); + iterator insert(const_iterator, reference); std::pair< iterator, bool > - insert_check(const key_type &, insert_commit_data &); + insert_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_check(const_iterator, const key_type &, insert_commit_data &); + insert_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); + insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_commit(reference, const insert_commit_data &); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_commit(reference, const insert_commit_data &); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - void rebalance(); - iterator rebalance_subtree(iterator); - float balance_factor() const; - void balance_factor(float); - template<class... Options2> void merge(sg_set< T, Options2...> &); - template<class... Options2> void merge(sg_multiset< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + void rebalance(); + iterator rebalance_subtree(iterator); + float balance_factor() const; + void balance_factor(float); + template<class... Options2> void merge(sg_set< T, Options2...> &); + template<class... Options2> void merge(sg_multiset< T, Options2...> &); - // public static functions - static sg_set & container_from_end_iterator(iterator); - static const sg_set & container_from_end_iterator(const_iterator); - static sg_set & container_from_iterator(iterator); - static const sg_set & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static sg_set & container_from_end_iterator(iterator); + static const sg_set & container_from_end_iterator(const_iterator); + static sg_set & container_from_iterator(iterator); + static const sg_set & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -205,13 +205,13 @@ construct/copy/destruct
            1. -
              sg_set();
              +
              sg_set();

              Effects: Constructs an empty container.

              Complexity: Constant.

              Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

            2. -
              explicit sg_set(const key_compare & cmp, 
              +
              explicit sg_set(const key_compare & cmp, 
                               const value_traits & v_traits = value_traits());

              Effects: Constructs an empty container with given comparison and traits.

              Complexity: Constant.

              @@ -219,7 +219,7 @@
            3. template<typename Iterator> 
              -  sg_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
              +  sg_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                        const value_traits & v_traits = value_traits());

              Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

              Effects: Constructs an empty container and inserts elements from [b, e).

              @@ -227,17 +227,17 @@

              Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

            4. -
              sg_set(sg_set && x);
              +
              sg_set(sg_set && x);

              Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

              Complexity: Constant.

              Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

            5. -
              sg_set & operator=(sg_set && x);
              +
              sg_set & operator=(sg_set && x);

              Effects: Equivalent to swap

            6. -
              ~sg_set();
              +
              ~sg_set();

              Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

              Complexity: Linear to elements contained in *this.

              Throws: Nothing.

              @@ -246,131 +246,131 @@

            -sg_set public member functions

            +sg_set public member functions
            1. -
              iterator begin();
              +
              iterator begin();

              Effects: Returns an iterator pointing to the beginning of the container.

              Complexity: Constant.

              Throws: Nothing.

            2. -
              const_iterator begin() const;
              +
              const_iterator begin() const;

              Effects: Returns a const_iterator pointing to the beginning of the container.

              Complexity: Constant.

              Throws: Nothing.

            3. -
              const_iterator cbegin() const;
              +
              const_iterator cbegin() const;

              Effects: Returns a const_iterator pointing to the beginning of the container.

              Complexity: Constant.

              Throws: Nothing.

            4. -
              iterator end();
              +
              iterator end();

              Effects: Returns an iterator pointing to the end of the container.

              Complexity: Constant.

              Throws: Nothing.

            5. -
              const_iterator end() const;
              +
              const_iterator end() const;

              Effects: Returns a const_iterator pointing to the end of the container.

              Complexity: Constant.

              Throws: Nothing.

            6. -
              const_iterator cend() const;
              +
              const_iterator cend() const;

              Effects: Returns a const_iterator pointing to the end of the container.

              Complexity: Constant.

              Throws: Nothing.

            7. -
              reverse_iterator rbegin();
              +
              reverse_iterator rbegin();

              Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            8. -
              const_reverse_iterator rbegin() const;
              +
              const_reverse_iterator rbegin() const;

              Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            9. -
              const_reverse_iterator crbegin() const;
              +
              const_reverse_iterator crbegin() const;

              Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            10. -
              reverse_iterator rend();
              +
              reverse_iterator rend();

              Effects: Returns a reverse_iterator pointing to the end of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            11. -
              const_reverse_iterator rend() const;
              +
              const_reverse_iterator rend() const;

              Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            12. -
              const_reverse_iterator crend() const;
              +
              const_reverse_iterator crend() const;

              Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

              Complexity: Constant.

              Throws: Nothing.

            13. -
              iterator root();
              +
              iterator root();

              Effects: Returns a iterator pointing to the root node of the container or end() if not present.

              Complexity: Constant.

              Throws: Nothing.

            14. -
              const_iterator root() const;
              +
              const_iterator root() const;

              Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

              Complexity: Constant.

              Throws: Nothing.

            15. -
              const_iterator croot() const;
              +
              const_iterator croot() const;

              Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

              Complexity: Constant.

              Throws: Nothing.

            16. -
              key_compare key_comp() const;
              +
              key_compare key_comp() const;

              Effects: Returns the key_compare object used by the container.

              Complexity: Constant.

              Throws: If key_compare copy-constructor throws.

            17. -
              value_compare value_comp() const;
              +
              value_compare value_comp() const;

              Effects: Returns the value_compare object used by the container.

              Complexity: Constant.

              Throws: If value_compare copy-constructor throws.

            18. -
              bool empty() const;
              +
              bool empty() const;

              Effects: Returns true if the container is empty.

              Complexity: Constant.

              Throws: Nothing.

            19. -
              size_type size() const;
              +
              size_type size() const;

              Effects: Returns the number of elements stored in the container.

              Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

              Throws: Nothing.

            20. -
              void swap(sg_set & other);
              +
              void swap(sg_set & other);

              Effects: Swaps the contents of two containers.

              Complexity: Constant.

              Throws: If the comparison functor's swap call throws.

            21. template<typename Cloner, typename Disposer> 
              -  void clone_from(const sg_set & src, Cloner cloner, Disposer disposer);
              + void clone_from(const sg_set & src, Cloner cloner, Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

              Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

              If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

              @@ -379,7 +379,7 @@
            22. template<typename Cloner, typename Disposer> 
              -  void clone_from(sg_set && src, Cloner cloner, Disposer disposer);
              + void clone_from(sg_set && src, Cloner cloner, Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

              Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

              If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

              @@ -388,7 +388,7 @@

              Note: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container.

            23. -
              std::pair< iterator, bool > insert(reference value);
              +
              std::pair< iterator, bool > insert(reference value);

              Requires: value must be an lvalue

              Effects: Inserts value into the container if the value is not already present.

              Complexity: Average complexity for insert element is at most logarithmic.

              @@ -396,7 +396,7 @@

              Note: Does not affect the validity of iterators and references. No copy-constructors are called.

            24. -
              iterator insert(const_iterator hint, reference value);
              +
              iterator insert(const_iterator hint, reference value);

              Requires: value must be an lvalue, and "hint" must be a valid iterator

              Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

              Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

              @@ -405,7 +405,7 @@
            25. std::pair< iterator, bool > 
              -insert_check(const key_type & key, insert_commit_data & commit_data);
              +insert_check(const key_type & key, insert_commit_data & commit_data);

              Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

              Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

              Complexity: Average complexity is at most logarithmic.

              @@ -413,7 +413,7 @@
            26. std::pair< iterator, bool > 
              -insert_check(const_iterator hint, const key_type & key, 
              +insert_check(const_iterator hint, const key_type & key, 
                            insert_commit_data & commit_data);

              Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

              Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

              @@ -423,7 +423,7 @@
            27. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< iterator, bool > 
              -  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
              +  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                              insert_commit_data & commit_data);

              Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

              Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

              @@ -437,7 +437,7 @@
            28. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< iterator, bool > 
              -  insert_check(const_iterator hint, const KeyType & key, 
              +  insert_check(const_iterator hint, const KeyType & key, 
                              KeyTypeKeyCompare comp, insert_commit_data & commit_data);

              Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

              Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

              @@ -449,7 +449,7 @@

              "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

            29. -
              template<typename Iterator> void insert(Iterator b, Iterator e);
              +
              template<typename Iterator> void insert(Iterator b, Iterator e);

              Requires: Dereferencing iterator must yield an lvalue of type value_type.

              Effects: Tries to insert each element of a range into the container.

              Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

              @@ -457,7 +457,7 @@

              Note: Does not affect the validity of iterators and references. No copy-constructors are called.

            30. -
              iterator insert_commit(reference value, 
              +
              iterator insert_commit(reference value, 
                                      const insert_commit_data & commit_data);

              Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

              Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

              @@ -467,7 +467,7 @@

              Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

            31. -
              iterator insert_before(const_iterator pos, reference value);
              +
              iterator insert_before(const_iterator pos, reference value);

              Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

              Effects: Inserts x into the container before "pos".

              Complexity: Constant time.

              @@ -475,7 +475,7 @@

              Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

            32. -
              void push_back(reference value);
              +
              void push_back(reference value);

              Requires: value must be an lvalue, and it must be no less than the greatest inserted key

              Effects: Inserts x into the container in the last position.

              Complexity: Constant time.

              @@ -483,7 +483,7 @@

              Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

            33. -
              void push_front(reference value);
              +
              void push_front(reference value);

              Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

              Effects: Inserts x into the container in the first position.

              Complexity: Constant time.

              @@ -491,21 +491,21 @@

              Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

            34. -
              iterator erase(const_iterator i);
              +
              iterator erase(const_iterator i);

              Effects: Erases the element pointed to by i.

              Complexity: Average complexity for erase element is constant time.

              Throws: Nothing.

              Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

            35. -
              iterator erase(const_iterator b, const_iterator e);
              +
              iterator erase(const_iterator b, const_iterator e);

              Effects: Erases the range pointed to by b end e.

              Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

              Throws: Nothing.

              Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

            36. -
              size_type erase(const key_type & key);
              +
              size_type erase(const key_type & key);

              Effects: Erases all the elements with the given value.

              Returns: The number of erased elements.

              Complexity: O(log(size() + N).

              @@ -514,7 +514,7 @@
            37. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
              + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Erases all the elements with the given key. according to the comparison functor "comp".

              Returns: The number of erased elements.

              @@ -524,7 +524,7 @@
            38. template<typename Disposer> 
              -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
              + iterator erase_and_dispose(const_iterator i, Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw.

              Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

              Complexity: Average complexity for erase element is constant time.

              @@ -533,7 +533,7 @@
            39. template<typename Disposer> 
              -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
              +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                            Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw.

              Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

              @@ -543,7 +543,7 @@
            40. template<typename Disposer> 
              -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
              + size_type erase_and_dispose(const key_type & key, Disposer disposer);

              Requires: Disposer::operator()(pointer) shouldn't throw.

              Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

              Returns: The number of erased elements.

              @@ -553,7 +553,7 @@
            41. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
              -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
              +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                             Disposer disposer);

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

              Requires: Disposer::operator()(pointer) shouldn't throw.

              @@ -564,47 +564,47 @@

              Note: Invalidates the iterators to the erased elements.

            42. -
              void clear();
              +
              void clear();

              Effects: Erases all of the elements.

              Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

              Throws: Nothing.

              Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

            43. -
              template<typename Disposer> void clear_and_dispose(Disposer disposer);
              +
              template<typename Disposer> void clear_and_dispose(Disposer disposer);

              Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

              Throws: Nothing.

              Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

            44. -
              size_type count(const key_type & key) const;
              +
              size_type count(const key_type & key) const;

              Effects: Returns the number of contained elements with the given value

              Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

              Throws: If key_compare throws.

            45. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
              + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

              Effects: Returns the number of contained elements with the given key

              Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

              Throws: If comp throws.

            46. -
              iterator lower_bound(const key_type & key);
              +
              iterator lower_bound(const key_type & key);

              Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            47. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
              + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

              Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            48. -
              const_iterator lower_bound(const key_type & key) const;
              +
              const_iterator lower_bound(const key_type & key) const;

              Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

              @@ -612,27 +612,27 @@
            49. template<typename KeyType, typename KeyTypeKeyCompare> 
                 const_iterator 
              -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
              + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

              Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            50. -
              iterator upper_bound(const key_type & key);
              +
              iterator upper_bound(const key_type & key);

              Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            51. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
              + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

              Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If comp throws.

            52. -
              const_iterator upper_bound(const key_type & key) const;
              +
              const_iterator upper_bound(const key_type & key) const;

              Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

              @@ -640,42 +640,42 @@
            53. template<typename KeyType, typename KeyTypeKeyCompare> 
                 const_iterator 
              -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
              + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

              Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If comp throws.

            54. -
              iterator find(const key_type & key);
              +
              iterator find(const key_type & key);

              Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            55. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
              + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

              Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If comp throws.

            56. -
              const_iterator find(const key_type & key) const;
              +
              const_iterator find(const key_type & key) const;

              Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

            57. template<typename KeyType, typename KeyTypeKeyCompare> 
              -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
              + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

              Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

              Complexity: Logarithmic.

              Throws: If comp throws.

            58. -
              std::pair< iterator, iterator > equal_range(const key_type & key);
              +
              std::pair< iterator, iterator > equal_range(const key_type & key);

              Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

              @@ -683,7 +683,7 @@
            59. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< iterator, iterator > 
              -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
              + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

              Complexity: Logarithmic.

              @@ -691,7 +691,7 @@
            60. std::pair< const_iterator, const_iterator > 
              -equal_range(const key_type & key) const;
              +equal_range(const key_type & key) const;

              Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

              Complexity: Logarithmic.

              Throws: If key_compare throws.

              @@ -699,7 +699,7 @@
            61. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< const_iterator, const_iterator > 
              -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
              + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

              Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

              Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

              Complexity: Logarithmic.

              @@ -707,7 +707,7 @@
            62. std::pair< iterator, iterator > 
              -bounded_range(const key_type & lower_key, const key_type & upper_key, 
              +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                             bool left_closed, bool right_closed);

              Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

              If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

              @@ -722,7 +722,7 @@
            63. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< iterator, iterator > 
              -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
              +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                               KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

              Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

              upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

              @@ -738,7 +738,7 @@
            64. std::pair< const_iterator, const_iterator > 
              -bounded_range(const key_type & lower_key, const key_type & upper_key, 
              +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                             bool left_closed, bool right_closed) const;

              Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

              If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

              @@ -753,7 +753,7 @@
            65. template<typename KeyType, typename KeyTypeKeyCompare> 
                 std::pair< const_iterator, const_iterator > 
              -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
              +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                               KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

              Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

              upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

              @@ -768,28 +768,28 @@

              Note: Experimental function, the interface might change in future releases.

            66. -
              iterator iterator_to(reference value);
              +
              iterator iterator_to(reference value);

              Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

              Effects: Returns: a valid iterator i belonging to the set that points to the value

              Complexity: Constant.

              Throws: Nothing.

            67. -
              const_iterator iterator_to(const_reference value) const;
              +
              const_iterator iterator_to(const_reference value) const;

              Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

              Effects: Returns: a valid const_iterator i belonging to the set that points to the value

              Complexity: Constant.

              Throws: Nothing.

            68. -
              pointer unlink_leftmost_without_rebalance();
              +
              pointer unlink_leftmost_without_rebalance();

              Effects: Unlinks the leftmost node from the container.

              Complexity: Average complexity is constant time.

              Throws: Nothing.

              Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

            69. -
              void replace_node(iterator replace_this, reference with_this);
              +
              void replace_node(iterator replace_this, reference with_this);

              Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

              Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

              Complexity: Constant.

              @@ -797,7 +797,7 @@

              Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

            70. -
              void remove_node(reference value);
              +
              void remove_node(reference value);

              Effects: removes "value" from the container.

              Throws: Nothing.

              Complexity: Logarithmic time.

              @@ -805,13 +805,13 @@

              If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

            71. -
              void rebalance();
              +
              void rebalance();

              Effects: Rebalances the tree.

              Throws: Nothing.

              Complexity: Linear.

            72. -
              iterator rebalance_subtree(iterator root);
              +
              iterator rebalance_subtree(iterator root);

              Requires: old_root is a node of a tree.

              Effects: Rebalances the subtree rooted at old_root.

              Returns: The new root of the subtree.

              @@ -819,20 +819,20 @@

              Complexity: Linear to the elements in the subtree.

            73. -
              float balance_factor() const;
              +
              float balance_factor() const;

              Returns: The balance factor (alpha) used in this tree

              Throws: Nothing.

              Complexity: Constant.

            74. -
              void balance_factor(float new_alpha);
              +
              void balance_factor(float new_alpha);

              Requires: new_alpha must be a value between 0.5 and 1.0

              Effects: Establishes a new balance factor (alpha) and rebalances the tree if the new balance factor is stricter (less) than the old factor.

              Throws: Nothing.

              Complexity: Linear to the elements in the subtree.

            75. -
              template<class... Options2> void merge(sg_set< T, Options2...> & source);
              +
              template<class... Options2> void merge(sg_set< T, Options2...> & source);

              Requires: "source" container's Options can only can differ in the comparison function from *this.

              Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

              Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

              @@ -840,7 +840,7 @@

              Complexity: N log(a.size() + N) (N has the value source.size())

            76. -
              template<class... Options2> void merge(sg_multiset< T, Options2...> & source);
              +
              template<class... Options2> void merge(sg_multiset< T, Options2...> & source);

              Requires: "source" container's Options can only can differ in the comparison function from *this.

              Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

              Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

              @@ -851,38 +851,38 @@

            -sg_set public static functions

            +sg_set public static functions
            1. -
              static sg_set & container_from_end_iterator(iterator end_iterator);
              +
              static sg_set & container_from_end_iterator(iterator end_iterator);

              Precondition: end_iterator must be a valid end iterator of the container.

              Effects: Returns a const reference to the container associated to the end iterator

              Throws: Nothing.

              Complexity: Constant.

            2. -
              static const sg_set & container_from_end_iterator(const_iterator end_iterator);
              +
              static const sg_set & container_from_end_iterator(const_iterator end_iterator);

              Precondition: end_iterator must be a valid end iterator of the container.

              Effects: Returns a const reference to the container associated to the end iterator

              Throws: Nothing.

              Complexity: Constant.

            3. -
              static sg_set & container_from_iterator(iterator it);
              +
              static sg_set & container_from_iterator(iterator it);

              Precondition: it must be a valid iterator of the container.

              Effects: Returns a const reference to the container associated to the iterator

              Throws: Nothing.

              Complexity: Logarithmic.

            4. -
              static const sg_set & container_from_iterator(const_iterator it);
              +
              static const sg_set & container_from_iterator(const_iterator it);

              Precondition: it must be a valid iterator of the container.

              Effects: Returns a const reference to the container associated to the iterator

              Throws: Nothing.

              Complexity: Logarithmic.

            5. -
              static iterator s_iterator_to(reference value);
              +
              static iterator s_iterator_to(reference value);

              Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

              Effects: Returns: a valid iterator i belonging to the set that points to the value

              Complexity: Constant.

              @@ -890,7 +890,7 @@

              Note: This static function is available only if the value traits is stateless.

            6. -
              static const_iterator s_iterator_to(const_reference value);
              +
              static const_iterator s_iterator_to(const_reference value);

              Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

              Effects: Returns: a valid iterator i belonging to the set that points to the value

              Complexity: Constant.

              @@ -898,7 +898,7 @@

              Note: This static function is available only if the value traits is stateless.

            7. -
              static void init_node(reference value);
              +
              static void init_node(reference value);

              Requires: value shall not be in a container.

              Effects: init_node puts the hook of a value in a well-known default state.

              Throws: Nothing.

              diff --git a/doc/html/boost/intrusive/sgtree.html b/doc/html/boost/intrusive/sgtree.html index 9e4cdabd88..4a675c49f0 100644 --- a/doc/html/boost/intrusive/sgtree.html +++ b/doc/html/boost/intrusive/sgtree.html @@ -60,143 +60,143 @@ typedef implementation_defined insert_commit_data; // construct/copy/destruct - sgtree(); - explicit sgtree(const key_compare &, const value_traits & = value_traits()); + sgtree(); + explicit sgtree(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - sgtree(bool, Iterator, Iterator, const key_compare & = key_compare(), + sgtree(bool, Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - sgtree(sgtree &&); - sgtree & operator=(sgtree &&); - ~sgtree(); + sgtree(sgtree &&); + sgtree & operator=(sgtree &&); + ~sgtree(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(sgtree &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(sgtree &); template<typename Cloner, typename Disposer> - void clone_from(const sgtree &, Cloner, Disposer); + void clone_from(const sgtree &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(sgtree &&, Cloner, Disposer); - iterator insert_equal(reference); - iterator insert_equal(const_iterator, reference); - template<typename Iterator> void insert_equal(Iterator, Iterator); - std::pair< iterator, bool > insert_unique(reference); - iterator insert_unique(const_iterator, reference); + void clone_from(sgtree &&, Cloner, Disposer); + iterator insert_equal(reference); + iterator insert_equal(const_iterator, reference); + template<typename Iterator> void insert_equal(Iterator, Iterator); + std::pair< iterator, bool > insert_unique(reference); + iterator insert_unique(const_iterator, reference); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator BOOST_INTRUSIVE_I bool > - insert_unique_check(const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const key_type &, insert_commit_data &); + insert_unique_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const_iterator, const key_type &, insert_commit_data &); - iterator insert_unique_commit(reference, const insert_commit_data &); - template<typename Iterator> void insert_unique(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + insert_unique_check(const_iterator, const key_type &, insert_commit_data &); + iterator insert_unique_commit(reference, const insert_commit_data &); + template<typename Iterator> void insert_unique(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); template<typename T, class... Options2> - void merge_unique(sgtree< T, Options2...> &); - while(it! = itend); + void merge_unique(sgtree< T, Options2...> &); + while(it! = itend); template<typename T, class... Options2> - void merge_equal(sgtree< T, Options2...> &); - while(it! = itend); - size_type count(const key_type &) const; + void merge_equal(sgtree< T, Options2...> &); + while(it! = itend); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - void rebalance(); - iterator rebalance_subtree(iterator); - float balance_factor() const; - void balance_factor(float); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + void rebalance(); + iterator rebalance_subtree(iterator); + float balance_factor() const; + void balance_factor(float); - // public static functions - static sgtree & container_from_end_iterator(iterator); - static const sgtree & container_from_end_iterator(const_iterator); - static sgtree & container_from_iterator(iterator); - static const sgtree & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static sgtree & container_from_end_iterator(iterator); + static const sgtree & container_from_end_iterator(const_iterator); + static sgtree & container_from_iterator(iterator); + static const sgtree & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -215,13 +215,13 @@ construct/copy/destruct
              1. -
                sgtree();
                +
                sgtree();

                Effects: Constructs an empty container.

                Complexity: Constant.

                Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

              2. -
                explicit sgtree(const key_compare & cmp, 
                +
                explicit sgtree(const key_compare & cmp, 
                                 const value_traits & v_traits = value_traits());

                Effects: Constructs an empty container with given comparison and traits.

                Complexity: Constant.

                @@ -229,7 +229,7 @@
              3. template<typename Iterator> 
                -  sgtree(bool unique, Iterator b, Iterator e, 
                +  sgtree(bool unique, Iterator b, Iterator e, 
                          const key_compare & cmp = key_compare(), 
                          const value_traits & v_traits = value_traits());

                Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

                @@ -238,17 +238,17 @@

                Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

              4. -
                sgtree(sgtree && x);
                +
                sgtree(sgtree && x);

                Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

                Complexity: Constant.

                Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

              5. -
                sgtree & operator=(sgtree && x);
                +
                sgtree & operator=(sgtree && x);

                Effects: Equivalent to swap

              6. -
                ~sgtree();
                +
                ~sgtree();

                Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                Complexity: Linear to elements contained in *this.

                Throws: Nothing.

                @@ -257,131 +257,131 @@

              -sgtree public member functions

              +sgtree public member functions
              1. -
                iterator begin();
                +
                iterator begin();

                Effects: Returns an iterator pointing to the beginning of the container.

                Complexity: Constant.

                Throws: Nothing.

              2. -
                const_iterator begin() const;
                +
                const_iterator begin() const;

                Effects: Returns a const_iterator pointing to the beginning of the container.

                Complexity: Constant.

                Throws: Nothing.

              3. -
                const_iterator cbegin() const;
                +
                const_iterator cbegin() const;

                Effects: Returns a const_iterator pointing to the beginning of the container.

                Complexity: Constant.

                Throws: Nothing.

              4. -
                iterator end();
                +
                iterator end();

                Effects: Returns an iterator pointing to the end of the container.

                Complexity: Constant.

                Throws: Nothing.

              5. -
                const_iterator end() const;
                +
                const_iterator end() const;

                Effects: Returns a const_iterator pointing to the end of the container.

                Complexity: Constant.

                Throws: Nothing.

              6. -
                const_iterator cend() const;
                +
                const_iterator cend() const;

                Effects: Returns a const_iterator pointing to the end of the container.

                Complexity: Constant.

                Throws: Nothing.

              7. -
                reverse_iterator rbegin();
                +
                reverse_iterator rbegin();

                Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              8. -
                const_reverse_iterator rbegin() const;
                +
                const_reverse_iterator rbegin() const;

                Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              9. -
                const_reverse_iterator crbegin() const;
                +
                const_reverse_iterator crbegin() const;

                Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              10. -
                reverse_iterator rend();
                +
                reverse_iterator rend();

                Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              11. -
                const_reverse_iterator rend() const;
                +
                const_reverse_iterator rend() const;

                Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              12. -
                const_reverse_iterator crend() const;
                +
                const_reverse_iterator crend() const;

                Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                Complexity: Constant.

                Throws: Nothing.

              13. -
                iterator root();
                +
                iterator root();

                Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                Complexity: Constant.

                Throws: Nothing.

              14. -
                const_iterator root() const;
                +
                const_iterator root() const;

                Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                Complexity: Constant.

                Throws: Nothing.

              15. -
                const_iterator croot() const;
                +
                const_iterator croot() const;

                Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                Complexity: Constant.

                Throws: Nothing.

              16. -
                key_compare key_comp() const;
                +
                key_compare key_comp() const;

                Effects: Returns the key_compare object used by the container.

                Complexity: Constant.

                Throws: If key_compare copy-constructor throws.

              17. -
                value_compare value_comp() const;
                +
                value_compare value_comp() const;

                Effects: Returns the value_compare object used by the container.

                Complexity: Constant.

                Throws: If value_compare copy-constructor throws.

              18. -
                bool empty() const;
                +
                bool empty() const;

                Effects: Returns true if the container is empty.

                Complexity: Constant.

                Throws: Nothing.

              19. -
                size_type size() const;
                +
                size_type size() const;

                Effects: Returns the number of elements stored in the container.

                Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                Throws: Nothing.

              20. -
                void swap(sgtree & other);
                +
                void swap(sgtree & other);

                Effects: Swaps the contents of two containers.

                Complexity: Constant.

                Throws: If the comparison functor's swap call throws.

              21. template<typename Cloner, typename Disposer> 
                -  void clone_from(const sgtree & src, Cloner cloner, Disposer disposer);
                + void clone_from(const sgtree & src, Cloner cloner, Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                @@ -390,7 +390,7 @@
              22. template<typename Cloner, typename Disposer> 
                -  void clone_from(sgtree && src, Cloner cloner, Disposer disposer);
                + void clone_from(sgtree && src, Cloner cloner, Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                @@ -399,7 +399,7 @@

                Note: This version can modify the source container, useful to implement move semantics. Additional notes: it also copies the alpha factor from the source container.

              23. -
                iterator insert_equal(reference value);
                +
                iterator insert_equal(reference value);

                Requires: value must be an lvalue

                Effects: Inserts value into the container before the upper bound.

                Complexity: Average complexity for insert element is at most logarithmic.

                @@ -407,7 +407,7 @@

                Note: Does not affect the validity of iterators and references. No copy-constructors are called.

              24. -
                iterator insert_equal(const_iterator hint, reference value);
                +
                iterator insert_equal(const_iterator hint, reference value);

                Requires: value must be an lvalue, and "hint" must be a valid iterator.

                Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

                Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

                @@ -415,7 +415,7 @@

                Note: Does not affect the validity of iterators and references. No copy-constructors are called.

              25. -
                template<typename Iterator> void insert_equal(Iterator b, Iterator e);
                +
                template<typename Iterator> void insert_equal(Iterator b, Iterator e);

                Requires: Dereferencing iterator must yield an lvalue of type value_type.

                Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

                Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                @@ -423,7 +423,7 @@

                Note: Does not affect the validity of iterators and references. No copy-constructors are called.

              26. -
                std::pair< iterator, bool > insert_unique(reference value);
                +
                std::pair< iterator, bool > insert_unique(reference value);

                Requires: value must be an lvalue

                Effects: Inserts value into the container if the value is not already present.

                Complexity: Average complexity for insert element is at most logarithmic.

                @@ -431,7 +431,7 @@

                Note: Does not affect the validity of iterators and references. No copy-constructors are called.

              27. -
                iterator insert_unique(const_iterator hint, reference value);
                +
                iterator insert_unique(const_iterator hint, reference value);

                Requires: value must be an lvalue, and "hint" must be a valid iterator

                Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

                Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

                @@ -441,7 +441,7 @@
              28. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< iterator BOOST_INTRUSIVE_I bool > 
                -  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                +  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                                       insert_commit_data & commit_data);

                Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                @@ -455,7 +455,7 @@
              29. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< iterator, bool > 
                -  insert_unique_check(const_iterator hint, const KeyType & key, 
                +  insert_unique_check(const_iterator hint, const KeyType & key, 
                                       KeyTypeKeyCompare comp, 
                                       insert_commit_data & commit_data);

                Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                @@ -469,7 +469,7 @@
              30. std::pair< iterator, bool > 
                -insert_unique_check(const key_type & key, insert_commit_data & commit_data);
                +insert_unique_check(const key_type & key, insert_commit_data & commit_data);

                Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                Complexity: Average complexity is at most logarithmic.

                @@ -477,7 +477,7 @@
              31. std::pair< iterator, bool > 
                -insert_unique_check(const_iterator hint, const key_type & key, 
                +insert_unique_check(const_iterator hint, const key_type & key, 
                                     insert_commit_data & commit_data);

                Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                @@ -485,7 +485,7 @@

                Throws: If the comp ordering function throws. Strong guarantee.

              32. -
                iterator insert_unique_commit(reference value, 
                +
                iterator insert_unique_commit(reference value, 
                                               const insert_commit_data & commit_data);

                Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

                Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

                @@ -495,7 +495,7 @@

                Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

              33. -
                template<typename Iterator> void insert_unique(Iterator b, Iterator e);
                +
                template<typename Iterator> void insert_unique(Iterator b, Iterator e);

                Requires: Dereferencing iterator must yield an lvalue of type value_type.

                Effects: Tries to insert each element of a range into the container.

                Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                @@ -503,7 +503,7 @@

                Note: Does not affect the validity of iterators and references. No copy-constructors are called.

              34. -
                iterator insert_before(const_iterator pos, reference value);
                +
                iterator insert_before(const_iterator pos, reference value);

                Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                Effects: Inserts x into the container before "pos".

                Complexity: Constant time.

                @@ -511,7 +511,7 @@

                Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

              35. -
                void push_back(reference value);
                +
                void push_back(reference value);

                Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                Effects: Inserts x into the container in the last position.

                Complexity: Constant time.

                @@ -519,7 +519,7 @@

                Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

              36. -
                void push_front(reference value);
                +
                void push_front(reference value);

                Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                Effects: Inserts x into the container in the first position.

                Complexity: Constant time.

                @@ -527,21 +527,21 @@

                Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

              37. -
                iterator erase(const_iterator i);
                +
                iterator erase(const_iterator i);

                Effects: Erases the element pointed to by i.

                Complexity: Average complexity for erase element is constant time.

                Throws: Nothing.

                Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

              38. -
                iterator erase(const_iterator b, const_iterator e);
                +
                iterator erase(const_iterator b, const_iterator e);

                Effects: Erases the range pointed to by b end e.

                Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                Throws: Nothing.

                Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

              39. -
                size_type erase(const key_type & key);
                +
                size_type erase(const key_type & key);

                Effects: Erases all the elements with the given value.

                Returns: The number of erased elements.

                Complexity: O(log(size() + N).

                @@ -550,7 +550,7 @@
              40. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                Returns: The number of erased elements.

                @@ -560,7 +560,7 @@
              41. template<typename Disposer> 
                -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw.

                Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                Complexity: Average complexity for erase element is constant time.

                @@ -569,7 +569,7 @@
              42. template<typename Disposer> 
                -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                              Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw.

                Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                @@ -579,7 +579,7 @@
              43. template<typename Disposer> 
                -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                Requires: Disposer::operator()(pointer) shouldn't throw.

                Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                Returns: The number of erased elements.

                @@ -589,7 +589,7 @@
              44. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                               Disposer disposer);

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

                Requires: Disposer::operator()(pointer) shouldn't throw.

                @@ -600,67 +600,67 @@

                Note: Invalidates the iterators to the erased elements.

              45. -
                void clear();
                +
                void clear();

                Effects: Erases all of the elements.

                Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                Throws: Nothing.

                Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

              46. -
                template<typename Disposer> void clear_and_dispose(Disposer disposer);
                +
                template<typename Disposer> void clear_and_dispose(Disposer disposer);

                Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                Throws: Nothing.

                Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

              47. template<typename T, class... Options2> 
                -  void merge_unique(sgtree< T, Options2...> &);
                + void merge_unique(sgtree< T, Options2...> &);

                Requires: "source" container's Options can only can differ in the comparison function from *this.

                Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                Throws: Nothing unless the comparison object throws.

                Complexity: N log(a.size() + N) (N has the value source.size())

              48. -
              49.  while(it! = itend);
              50. +
              51.  while(it! = itend);
              52. template<typename T, class... Options2> 
                -  void merge_equal(sgtree< T, Options2...> &);
                + void merge_equal(sgtree< T, Options2...> &);

                Requires: "source" container's Options can only can differ in the comparison function from *this.

                Effects: Extracts each element in source and insert it into a using the comparison object of *this.

                Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                Throws: Nothing unless the comparison object throws.

                Complexity: N log(a.size() + N) (N has the value source.size())

              53. -
              54.  while(it! = itend);
              55. +
              56.  while(it! = itend);
              57. -
                size_type count(const key_type & key) const;
                +
                size_type count(const key_type & key) const;

                Effects: Returns the number of contained elements with the given value

                Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                Throws: If key_compare throws.

              58. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                Effects: Returns the number of contained elements with the given key

                Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                Throws: If comp throws.

              59. -
                iterator lower_bound(const key_type & key);
                +
                iterator lower_bound(const key_type & key);

                Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              60. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              61. -
                const_iterator lower_bound(const key_type & key) const;
                +
                const_iterator lower_bound(const key_type & key) const;

                Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

                @@ -668,27 +668,27 @@
              62. template<typename KeyType, typename KeyTypeKeyCompare> 
                   const_iterator 
                -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              63. -
                iterator upper_bound(const key_type & key);
                +
                iterator upper_bound(const key_type & key);

                Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              64. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If comp throws.

              65. -
                const_iterator upper_bound(const key_type & key) const;
                +
                const_iterator upper_bound(const key_type & key) const;

                Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

                @@ -696,42 +696,42 @@
              66. template<typename KeyType, typename KeyTypeKeyCompare> 
                   const_iterator 
                -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If comp throws.

              67. -
                iterator find(const key_type & key);
                +
                iterator find(const key_type & key);

                Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              68. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If comp throws.

              69. -
                const_iterator find(const key_type & key) const;
                +
                const_iterator find(const key_type & key) const;

                Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

              70. template<typename KeyType, typename KeyTypeKeyCompare> 
                -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                Complexity: Logarithmic.

                Throws: If comp throws.

              71. -
                std::pair< iterator, iterator > equal_range(const key_type & key);
                +
                std::pair< iterator, iterator > equal_range(const key_type & key);

                Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

                @@ -739,7 +739,7 @@
              72. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< iterator, iterator > 
                -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                Complexity: Logarithmic.

                @@ -747,7 +747,7 @@
              73. std::pair< const_iterator, const_iterator > 
                -equal_range(const key_type & key) const;
                +equal_range(const key_type & key) const;

                Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                Complexity: Logarithmic.

                Throws: If key_compare throws.

                @@ -755,7 +755,7 @@
              74. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< const_iterator, const_iterator > 
                -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                Complexity: Logarithmic.

                @@ -763,7 +763,7 @@
              75. std::pair< iterator, iterator > 
                -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                               bool left_closed, bool right_closed);

                Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                @@ -778,7 +778,7 @@
              76. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< iterator, iterator > 
                -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                 KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                @@ -794,7 +794,7 @@
              77. std::pair< const_iterator, const_iterator > 
                -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                               bool left_closed, bool right_closed) const;

                Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                @@ -809,7 +809,7 @@
              78. template<typename KeyType, typename KeyTypeKeyCompare> 
                   std::pair< const_iterator, const_iterator > 
                -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                 KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                @@ -824,28 +824,28 @@

                Note: Experimental function, the interface might change in future releases.

              79. -
                iterator iterator_to(reference value);
                +
                iterator iterator_to(reference value);

                Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                Effects: Returns: a valid iterator i belonging to the set that points to the value

                Complexity: Constant.

                Throws: Nothing.

              80. -
                const_iterator iterator_to(const_reference value) const;
                +
                const_iterator iterator_to(const_reference value) const;

                Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                Complexity: Constant.

                Throws: Nothing.

              81. -
                pointer unlink_leftmost_without_rebalance();
                +
                pointer unlink_leftmost_without_rebalance();

                Effects: Unlinks the leftmost node from the container.

                Complexity: Average complexity is constant time.

                Throws: Nothing.

                Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

              82. -
                void replace_node(iterator replace_this, reference with_this);
                +
                void replace_node(iterator replace_this, reference with_this);

                Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                Complexity: Constant.

                @@ -853,7 +853,7 @@

                Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

              83. -
                void remove_node(reference value);
                +
                void remove_node(reference value);

                Effects: removes "value" from the container.

                Throws: Nothing.

                Complexity: Logarithmic time.

                @@ -861,13 +861,13 @@

                If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

              84. -
                void rebalance();
                +
                void rebalance();

                Effects: Rebalances the tree.

                Throws: Nothing.

                Complexity: Linear.

              85. -
                iterator rebalance_subtree(iterator root);
                +
                iterator rebalance_subtree(iterator root);

                Requires: old_root is a node of a tree.

                Effects: Rebalances the subtree rooted at old_root.

                Returns: The new root of the subtree.

                @@ -875,13 +875,13 @@

                Complexity: Linear to the elements in the subtree.

              86. -
                float balance_factor() const;
                +
                float balance_factor() const;

                Returns: The balance factor (alpha) used in this tree

                Throws: Nothing.

                Complexity: Constant.

              87. -
                void balance_factor(float new_alpha);
                +
                void balance_factor(float new_alpha);

                Requires: new_alpha must be a value between 0.5 and 1.0

                Effects: Establishes a new balance factor (alpha) and rebalances the tree if the new balance factor is stricter (less) than the old factor.

                Throws: Nothing.

                @@ -891,38 +891,38 @@

              -sgtree public static functions

              +sgtree public static functions
              1. -
                static sgtree & container_from_end_iterator(iterator end_iterator);
                +
                static sgtree & container_from_end_iterator(iterator end_iterator);

                Precondition: end_iterator must be a valid end iterator of the container.

                Effects: Returns a const reference to the container associated to the end iterator

                Throws: Nothing.

                Complexity: Constant.

              2. -
                static const sgtree & container_from_end_iterator(const_iterator end_iterator);
                +
                static const sgtree & container_from_end_iterator(const_iterator end_iterator);

                Precondition: end_iterator must be a valid end iterator of the container.

                Effects: Returns a const reference to the container associated to the end iterator

                Throws: Nothing.

                Complexity: Constant.

              3. -
                static sgtree & container_from_iterator(iterator it);
                +
                static sgtree & container_from_iterator(iterator it);

                Precondition: it must be a valid iterator of the container.

                Effects: Returns a const reference to the container associated to the iterator

                Throws: Nothing.

                Complexity: Logarithmic.

              4. -
                static const sgtree & container_from_iterator(const_iterator it);
                +
                static const sgtree & container_from_iterator(const_iterator it);

                Precondition: it must be a valid iterator of the container.

                Effects: Returns a const reference to the container associated to the iterator

                Throws: Nothing.

                Complexity: Logarithmic.

              5. -
                static iterator s_iterator_to(reference value);
                +
                static iterator s_iterator_to(reference value);

                Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                Effects: Returns: a valid iterator i belonging to the set that points to the value

                Complexity: Constant.

                @@ -930,7 +930,7 @@

                Note: This static function is available only if the value traits is stateless.

              6. -
                static const_iterator s_iterator_to(const_reference value);
                +
                static const_iterator s_iterator_to(const_reference value);

                Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                Effects: Returns: a valid iterator i belonging to the set that points to the value

                Complexity: Constant.

                @@ -938,7 +938,7 @@

                Note: This static function is available only if the value traits is stateless.

              7. -
                static void init_node(reference value);
                +
                static void init_node(reference value);

                Requires: value shall not be in a container.

                Effects: init_node puts the hook of a value in a well-known default state.

                Throws: Nothing.

                diff --git a/doc/html/boost/intrusive/sgtree_algorithms.html b/doc/html/boost/intrusive/sgtree_algorithms.html index b9c137211f..98f7e6515e 100644 --- a/doc/html/boost/intrusive/sgtree_algorithms.html +++ b/doc/html/boost/intrusive/sgtree_algorithms.html @@ -49,101 +49,101 @@ std::size_t depth; }; - // public static functions - static node_ptr get_header(const const_node_ptr &); - static node_ptr begin_node(const const_node_ptr &); - static node_ptr end_node(const const_node_ptr &); - static void swap_tree(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, + // public static functions + static node_ptr get_header(const const_node_ptr &); + static node_ptr begin_node(const const_node_ptr &); + static node_ptr end_node(const const_node_ptr &); + static void swap_tree(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &, + static void replace_node(const node_ptr &, const node_ptr &); + static void replace_node(const node_ptr &, const node_ptr &, const node_ptr &); - static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); - static bool unique(const const_node_ptr &); - static std::size_t size(const const_node_ptr &); - static node_ptr next_node(const node_ptr &); - static node_ptr prev_node(const node_ptr &); - static void init(const node_ptr &); - static void init_header(const node_ptr &); + static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); + static bool unique(const const_node_ptr &); + static std::size_t size(const const_node_ptr &); + static node_ptr next_node(const node_ptr &); + static node_ptr prev_node(const node_ptr &); + static void init(const node_ptr &); + static void init_header(const node_ptr &); template<typename AlphaByMaxSize> static node_ptr - erase(const node_ptr &, const node_ptr &, std::size_t, std::size_t &, + erase(const node_ptr &, const node_ptr &, std::size_t, std::size_t &, AlphaByMaxSize); template<typename Cloner, typename Disposer> - static void clone(const const_node_ptr &, const node_ptr &, Cloner, + static void clone(const const_node_ptr &, const node_ptr &, Cloner, Disposer); template<typename Disposer> - static void clear_and_dispose(const node_ptr &, Disposer); + static void clear_and_dispose(const node_ptr &, Disposer); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, + bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, KeyNodePtrCompare, bool, bool); template<typename KeyType, typename KeyNodePtrCompare> static std::size_t - count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename NodePtrCompare, typename H_Alpha> static node_ptr - insert_equal_upper_bound(const node_ptr &, const node_ptr &, + insert_equal_upper_bound(const node_ptr &, const node_ptr &, NodePtrCompare, std::size_t, H_Alpha, std::size_t &); template<typename NodePtrCompare, typename H_Alpha> static node_ptr - insert_equal_lower_bound(const node_ptr &, const node_ptr &, + insert_equal_lower_bound(const node_ptr &, const node_ptr &, NodePtrCompare, std::size_t, H_Alpha, std::size_t &); template<typename NodePtrCompare, typename H_Alpha> static node_ptr - insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, + insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, NodePtrCompare, std::size_t, H_Alpha, std::size_t &); template<typename H_Alpha> static node_ptr - insert_before(const node_ptr &, const node_ptr &, const node_ptr &, + insert_before(const node_ptr &, const node_ptr &, const node_ptr &, std::size_t, H_Alpha, std::size_t &); template<typename H_Alpha> - static void push_back(const node_ptr &, const node_ptr &, std::size_t, + static void push_back(const node_ptr &, const node_ptr &, std::size_t, H_Alpha, std::size_t &); template<typename H_Alpha> - static void push_front(const node_ptr &, const node_ptr &, std::size_t, + static void push_front(const node_ptr &, const node_ptr &, std::size_t, H_Alpha, std::size_t &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const KeyType &, + insert_unique_check(const const_node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const node_ptr &, + insert_unique_check(const const_node_ptr &, const node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); template<typename H_Alpha> - static void insert_unique_commit(const node_ptr &, const node_ptr &, + static void insert_unique_commit(const node_ptr &, const node_ptr &, const insert_commit_data &, std::size_t, H_Alpha, std::size_t &); template<typename NodePtrCompare, typename H_Alpha, typename AlphaByMaxSize> - static bool transfer_unique(const node_ptr &, NodePtrCompare, std::size_t, + static bool transfer_unique(const node_ptr &, NodePtrCompare, std::size_t, std::size_t &, const node_ptr &, const node_ptr &, std::size_t, std::size_t &, H_Alpha, AlphaByMaxSize); template<typename NodePtrCompare, typename H_Alpha, typename AlphaByMaxSize> - static void transfer_equal(const node_ptr &, NodePtrCompare, std::size_t, + static void transfer_equal(const node_ptr &, NodePtrCompare, std::size_t, std::size_t &, const node_ptr &, const node_ptr &, std::size_t, std::size_t &, H_Alpha, AlphaByMaxSize); - static bool is_header(const const_node_ptr &); - static void rebalance(const node_ptr &); + static bool is_header(const const_node_ptr &); + static void rebalance(const node_ptr &); };

              Description

              @@ -161,38 +161,38 @@

              static void set_right(node_ptr n, node_ptr right);

              -sgtree_algorithms public static functions

              +sgtree_algorithms public static functions
              1. -
                static node_ptr get_header(const const_node_ptr & n);
                +
                static node_ptr get_header(const const_node_ptr & n);

                Requires: 'node' is a node of the tree or a header node.

                Effects: Returns the header of the tree.

                Complexity: Logarithmic.

                Throws: Nothing.

              2. -
                static node_ptr begin_node(const const_node_ptr & header);
                +
                static node_ptr begin_node(const const_node_ptr & header);

                Requires: 'header' is the header node of a tree.

                Effects: Returns the first node of the tree, the header if the tree is empty.

                Complexity: Constant time.

                Throws: Nothing.

              3. -
                static node_ptr end_node(const const_node_ptr & header);
                +
                static node_ptr end_node(const const_node_ptr & header);

                Requires: 'header' is the header node of a tree.

                Effects: Returns the header of the tree.

                Complexity: Constant time.

                Throws: Nothing.

              4. -
                static void swap_tree(const node_ptr & header1, const node_ptr & header2);
                +
                static void swap_tree(const node_ptr & header1, const node_ptr & header2);

                Requires: header1 and header2 must be the header nodes of two trees.

                Effects: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.

                Complexity: Constant.

                Throws: Nothing.

              5. -
                static void swap_nodes(const node_ptr & node1, const node_ptr & node2);
                +
                static void swap_nodes(const node_ptr & node1, const node_ptr & node2);

                Requires: node1 and node2 can't be header nodes of two trees.

                Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

                Complexity: Logarithmic.

                @@ -201,7 +201,7 @@

                Experimental function

              6. -
                static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                +
                static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                                        const node_ptr & node2, const node_ptr & header2);

                Requires: node1 and node2 can't be header nodes of two trees with header header1 and header2.

                Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

                @@ -211,7 +211,7 @@

                Experimental function

              7. -
                static void replace_node(const node_ptr & node_to_be_replaced, 
                +
                static void replace_node(const node_ptr & node_to_be_replaced, 
                                          const node_ptr & new_node);

                Requires: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.

                Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

                @@ -220,7 +220,7 @@

                Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function

              8. -
                static void replace_node(const node_ptr & node_to_be_replaced, 
                +
                static void replace_node(const node_ptr & node_to_be_replaced, 
                                          const node_ptr & header, const node_ptr & new_node);

                Requires: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.

                Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

                @@ -229,42 +229,42 @@

                Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function

              9. -
                static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);
                static void unlink(const node_ptr & node);

                Requires: header is the header of a tree.

                +
                static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);
                static void unlink(const node_ptr & node);

                Requires: header is the header of a tree.

                Effects: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.

                Complexity: Average complexity is constant time.

                Throws: Nothing.

                Notes: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree.

              10. -
                static bool unique(const const_node_ptr & node);
                +
                static bool unique(const const_node_ptr & node);

                Requires: 'node' is a node of the tree or a node initialized by init(...) or init_node.

                Effects: Returns true if the node is initialized by init() or init_node().

                Complexity: Constant time.

                Throws: Nothing.

              11. -
                static std::size_t size(const const_node_ptr & header);
                +
                static std::size_t size(const const_node_ptr & header);

                Requires: node is a node of the tree but it's not the header.

                Effects: Returns the number of nodes of the subtree.

                Complexity: Linear time.

                Throws: Nothing.

              12. -
                static node_ptr next_node(const node_ptr & node);
                +
                static node_ptr next_node(const node_ptr & node);

                Requires: 'node' is a node from the tree except the header.

                Effects: Returns the next node of the tree.

                Complexity: Average constant time.

                Throws: Nothing.

              13. -
                static node_ptr prev_node(const node_ptr & node);
                +
                static node_ptr prev_node(const node_ptr & node);

                Requires: 'node' is a node from the tree except the leftmost node.

                Effects: Returns the previous node of the tree.

                Complexity: Average constant time.

                Throws: Nothing.

              14. -
                static void init(const node_ptr & node);
                +
                static void init(const node_ptr & node);

                Requires: 'node' must not be part of any tree.

                Effects: After the function unique(node) == true.

                Complexity: Constant.

                @@ -272,7 +272,7 @@

                Nodes: If node is inserted in a tree, this function corrupts the tree.

              15. -
                static void init_header(const node_ptr & header);
                +
                static void init_header(const node_ptr & header);

                Requires: node must not be part of any tree.

                Effects: Initializes the header to represent an empty tree. unique(header) == true.

                Complexity: Constant.

                @@ -282,7 +282,7 @@
              16. template<typename AlphaByMaxSize> 
                   static node_ptr 
                -  erase(const node_ptr & header, const node_ptr & z, std::size_t tree_size, 
                +  erase(const node_ptr & header, const node_ptr & z, std::size_t tree_size, 
                         std::size_t & max_tree_size, AlphaByMaxSize alpha_by_maxsize);

                Requires: header must be the header of a tree, z a node of that tree and z != header.

                Effects: Erases node "z" from the tree with header "header".

                @@ -291,7 +291,7 @@
              17. template<typename Cloner, typename Disposer> 
                -  static void clone(const const_node_ptr & source_header, 
                +  static void clone(const const_node_ptr & source_header, 
                                     const node_ptr & target_header, Cloner cloner, 
                                     Disposer disposer);

                Requires: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.

                @@ -302,7 +302,7 @@
              18. template<typename Disposer> 
                -  static void clear_and_dispose(const node_ptr & header, Disposer disposer);
                + static void clear_and_dispose(const node_ptr & header, Disposer disposer);

                Requires: "disposer" must be an object function taking a node_ptr parameter and shouldn't throw.

                Effects: Empties the target tree calling void disposer::operator()(const node_ptr &) for every node of the tree except the header.

                Complexity: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.

                @@ -311,7 +311,7 @@
              19. template<typename KeyType, typename KeyNodePtrCompare> 
                   static node_ptr 
                -  lower_bound(const const_node_ptr & header, const KeyType & key, 
                +  lower_bound(const const_node_ptr & header, const KeyType & key, 
                               KeyNodePtrCompare comp);

                Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                Effects: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.

                @@ -321,7 +321,7 @@
              20. template<typename KeyType, typename KeyNodePtrCompare> 
                   static node_ptr 
                -  upper_bound(const const_node_ptr & header, const KeyType & key, 
                +  upper_bound(const const_node_ptr & header, const KeyType & key, 
                               KeyNodePtrCompare comp);

                Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                Effects: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.

                @@ -331,7 +331,7 @@
              21. template<typename KeyType, typename KeyNodePtrCompare> 
                   static node_ptr 
                -  find(const const_node_ptr & header, const KeyType & key, 
                +  find(const const_node_ptr & header, const KeyType & key, 
                        KeyNodePtrCompare comp);

                Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                Effects: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.

                @@ -341,7 +341,7 @@
              22. template<typename KeyType, typename KeyNodePtrCompare> 
                   static std::pair< node_ptr, node_ptr > 
                -  equal_range(const const_node_ptr & header, const KeyType & key, 
                +  equal_range(const const_node_ptr & header, const KeyType & key, 
                               KeyNodePtrCompare comp);

                Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                Effects: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.

                @@ -351,7 +351,7 @@
              23. template<typename KeyType, typename KeyNodePtrCompare> 
                   static std::pair< node_ptr, node_ptr > 
                -  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                +  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                                 const KeyType & upper_key, KeyNodePtrCompare comp, 
                                 bool left_closed, bool right_closed);

                Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.

                @@ -366,7 +366,7 @@
              24. template<typename KeyType, typename KeyNodePtrCompare> 
                   static std::size_t 
                -  count(const const_node_ptr & header, const KeyType & key, 
                +  count(const const_node_ptr & header, const KeyType & key, 
                         KeyNodePtrCompare comp);

                Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                Effects: Returns the number of elements with a key equivalent to "key" according to "comp".

                @@ -376,7 +376,7 @@
              25. template<typename NodePtrCompare, typename H_Alpha> 
                   static node_ptr 
                -  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
                +  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
                                            NodePtrCompare comp, std::size_t tree_size, 
                                            H_Alpha h_alpha, std::size_t & max_tree_size);

                Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

                @@ -387,7 +387,7 @@
              26. template<typename NodePtrCompare, typename H_Alpha> 
                   static node_ptr 
                -  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
                +  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
                                            NodePtrCompare comp, std::size_t tree_size, 
                                            H_Alpha h_alpha, std::size_t & max_tree_size);

                Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

                @@ -398,7 +398,7 @@
              27. template<typename NodePtrCompare, typename H_Alpha> 
                   static node_ptr 
                -  insert_equal(const node_ptr & header, const node_ptr & hint, 
                +  insert_equal(const node_ptr & header, const node_ptr & hint, 
                                const node_ptr & new_node, NodePtrCompare comp, 
                                std::size_t tree_size, H_Alpha h_alpha, 
                                std::size_t & max_tree_size);
                @@ -410,7 +410,7 @@
              28. template<typename H_Alpha> 
                   static node_ptr 
                -  insert_before(const node_ptr & header, const node_ptr & pos, 
                +  insert_before(const node_ptr & header, const node_ptr & pos, 
                                 const node_ptr & new_node, std::size_t tree_size, 
                                 H_Alpha h_alpha, std::size_t & max_tree_size);

                Requires: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.

                @@ -421,7 +421,7 @@
              29. template<typename H_Alpha> 
                -  static void push_back(const node_ptr & header, const node_ptr & new_node, 
                +  static void push_back(const node_ptr & header, const node_ptr & new_node, 
                                         std::size_t tree_size, H_Alpha h_alpha, 
                                         std::size_t & max_tree_size);

                Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.

                @@ -432,7 +432,7 @@
              30. template<typename H_Alpha> 
                -  static void push_front(const node_ptr & header, const node_ptr & new_node, 
                +  static void push_front(const node_ptr & header, const node_ptr & new_node, 
                                          std::size_t tree_size, H_Alpha h_alpha, 
                                          std::size_t & max_tree_size);

                Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.

                @@ -444,7 +444,7 @@
              31. template<typename KeyType, typename KeyNodePtrCompare> 
                   static std::pair< node_ptr, bool > 
                -  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
                +  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp, 
                                       insert_commit_data & commit_data);

                Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.

                @@ -459,7 +459,7 @@
              32. template<typename KeyType, typename KeyNodePtrCompare> 
                   static std::pair< node_ptr, bool > 
                -  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
                +  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
                                       const KeyType & key, KeyNodePtrCompare comp, 
                                       insert_commit_data & commit_data);

                Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.

                @@ -473,7 +473,7 @@
              33. template<typename H_Alpha> 
                -  static void insert_unique_commit(const node_ptr & header, 
                +  static void insert_unique_commit(const node_ptr & header, 
                                                    const node_ptr & new_value, 
                                                    const insert_commit_data & commit_data, 
                                                    std::size_t tree_size, H_Alpha h_alpha, 
                @@ -486,7 +486,7 @@
                 
              34. template<typename NodePtrCompare, typename H_Alpha, typename AlphaByMaxSize> 
                -  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                +  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                                               std::size_t tree1_size, 
                                               std::size_t & max_tree1_size, 
                                               const node_ptr & header2, const node_ptr & z, 
                @@ -501,7 +501,7 @@
                 
              35. template<typename NodePtrCompare, typename H_Alpha, typename AlphaByMaxSize> 
                -  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                +  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                                              std::size_t tree1_size, 
                                              std::size_t & max_tree1_size, 
                                              const node_ptr & header2, const node_ptr & z, 
                @@ -514,14 +514,14 @@
                 

                Throws: If the comparison throws.

              36. -
                static bool is_header(const const_node_ptr & p);
                +
                static bool is_header(const const_node_ptr & p);

                Requires: p is a node of a tree.

                Effects: Returns true if p is the header of the tree.

                Complexity: Constant.

                Throws: Nothing.

              37. -
                static void rebalance(const node_ptr & header);
                +
                static void rebalance(const node_ptr & header);

                Requires: p is a node of a tree.

                Effects: Returns true if p is the header of the tree.

                Complexity: Constant.

                diff --git a/doc/html/boost/intrusive/slist.html b/doc/html/boost/intrusive/slist.html index fdd8240294..a03a98e405 100644 --- a/doc/html/boost/intrusive/slist.html +++ b/doc/html/boost/intrusive/slist.html @@ -54,126 +54,126 @@ typedef unspecified node_algorithms; // construct/copy/destruct - slist(); - explicit slist(const value_traits &); + slist(); + explicit slist(const value_traits &); template<typename Iterator> - slist(Iterator, Iterator, const value_traits & = value_traits()); - slist(slist &&); - slist & operator=(slist &&); - ~slist(); + slist(Iterator, Iterator, const value_traits & = value_traits()); + slist(slist &&); + slist & operator=(slist &&); + ~slist(); - // public member functions - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - void push_front(reference); - void push_back(reference); - void pop_front(); - template<typename Disposer> void pop_front_and_dispose(Disposer); - reference front(); - const_reference front() const; - reference back(); - const_reference back() const; - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - iterator before_begin(); - const_iterator before_begin() const; - const_iterator cbefore_begin() const; - iterator last(); - const_iterator last() const; - const_iterator clast() const; - size_type size() const; - bool empty() const; - void swap(slist &); - void shift_backwards(size_type = 1); - void shift_forward(size_type = 1); + // public member functions + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + void push_front(reference); + void push_back(reference); + void pop_front(); + template<typename Disposer> void pop_front_and_dispose(Disposer); + reference front(); + const_reference front() const; + reference back(); + const_reference back() const; + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + iterator before_begin(); + const_iterator before_begin() const; + const_iterator cbefore_begin() const; + iterator last(); + const_iterator last() const; + const_iterator clast() const; + size_type size() const; + bool empty() const; + void swap(slist &); + void shift_backwards(size_type = 1); + void shift_forward(size_type = 1); template<typename Cloner, typename Disposer> - void clone_from(const slist &, Cloner, Disposer); + void clone_from(const slist &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(slist &&, Cloner, Disposer); - iterator insert_after(const_iterator, reference); + void clone_from(slist &&, Cloner, Disposer); + iterator insert_after(const_iterator, reference); template<typename Iterator> - void insert_after(const_iterator, Iterator, Iterator); - iterator insert(const_iterator, reference); - template<typename Iterator> void insert(const_iterator, Iterator, Iterator); - iterator erase_after(const_iterator); - iterator erase_after(const_iterator, const_iterator); - iterator erase_after(const_iterator, const_iterator, size_type); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - iterator erase(const_iterator, const_iterator, size_type); + void insert_after(const_iterator, Iterator, Iterator); + iterator insert(const_iterator, reference); + template<typename Iterator> void insert(const_iterator, Iterator, Iterator); + iterator erase_after(const_iterator); + iterator erase_after(const_iterator, const_iterator); + iterator erase_after(const_iterator, const_iterator, size_type); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + iterator erase(const_iterator, const_iterator, size_type); template<typename Disposer> - iterator erase_after_and_dispose(const_iterator, Disposer); + iterator erase_after_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_after_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_after_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); - template<typename Iterator> void assign(Iterator, Iterator); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + template<typename Iterator> void assign(Iterator, Iterator); template<typename Iterator, typename Disposer> - void dispose_and_assign(Disposer, Iterator, Iterator); - void splice_after(const_iterator, slist &, const_iterator * = 0); - void splice_after(const_iterator, slist &, const_iterator); - void splice_after(const_iterator, slist &, const_iterator, const_iterator); - void splice_after(const_iterator, slist &, const_iterator, const_iterator, + void dispose_and_assign(Disposer, Iterator, Iterator); + void splice_after(const_iterator, slist &, const_iterator * = 0); + void splice_after(const_iterator, slist &, const_iterator); + void splice_after(const_iterator, slist &, const_iterator, const_iterator); + void splice_after(const_iterator, slist &, const_iterator, const_iterator, size_type); - void splice(const_iterator, slist &, const_iterator * = 0); - void splice(const_iterator, slist &, const_iterator); - void splice(const_iterator, slist &, const_iterator, const_iterator); - void splice(const_iterator, slist &, const_iterator, const_iterator, + void splice(const_iterator, slist &, const_iterator * = 0); + void splice(const_iterator, slist &, const_iterator); + void splice(const_iterator, slist &, const_iterator, const_iterator); + void splice(const_iterator, slist &, const_iterator, const_iterator, size_type); - template<typename Predicate> void sort(Predicate); - void sort(); + template<typename Predicate> void sort(Predicate); + void sort(); template<typename Predicate> - void merge(slist &, Predicate, const_iterator * = 0); - void merge(slist &); - void reverse(); - void remove(const_reference); + void merge(slist &, Predicate, const_iterator * = 0); + void merge(slist &); + void reverse(); + void remove(const_reference); template<typename Disposer> - void remove_and_dispose(const_reference, Disposer); - template<typename Pred> void remove_if(Pred); + void remove_and_dispose(const_reference, Disposer); + template<typename Pred> void remove_if(Pred); template<typename Pred, typename Disposer> - void remove_and_dispose_if(Pred, Disposer); - void unique(); - template<typename BinaryPredicate> void unique(BinaryPredicate); - template<typename Disposer> void unique_and_dispose(Disposer); + void remove_and_dispose_if(Pred, Disposer); + void unique(); + template<typename BinaryPredicate> void unique(BinaryPredicate); + template<typename Disposer> void unique_and_dispose(Disposer); template<typename BinaryPredicate, typename Disposer> - void unique_and_dispose(BinaryPredicate, Disposer); - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - iterator previous(iterator); - const_iterator previous(const_iterator) const; - iterator previous(const_iterator, iterator); - const_iterator previous(const_iterator, const_iterator) const; - void check() const; + void unique_and_dispose(BinaryPredicate, Disposer); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + iterator previous(iterator); + const_iterator previous(const_iterator) const; + iterator previous(const_iterator, iterator); + const_iterator previous(const_iterator, const_iterator) const; + void check() const; - // public static functions - static slist & container_from_end_iterator(iterator); - static const slist & container_from_end_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); + // public static functions + static slist & container_from_end_iterator(iterator); + static const slist & container_from_end_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); - // private member functions - void priv_splice_after(const node_ptr &, slist &, const node_ptr &, + // private member functions + void priv_splice_after(const node_ptr &, slist &, const node_ptr &, const node_ptr &); - void priv_incorporate_after(const node_ptr &, const node_ptr &, + void priv_incorporate_after(const node_ptr &, const node_ptr &, const node_ptr &); - void priv_reverse(unspecified); - void priv_reverse(unspecified); - void priv_shift_backwards(size_type, unspecified); - void priv_shift_backwards(size_type, unspecified); - void priv_shift_forward(size_type, unspecified); - void priv_shift_forward(size_type, unspecified); + void priv_reverse(unspecified); + void priv_reverse(unspecified); + void priv_shift_backwards(size_type, unspecified); + void priv_shift_backwards(size_type, unspecified); + void priv_shift_forward(size_type, unspecified); + void priv_shift_forward(size_type, unspecified); - // private static functions - static void priv_swap_cache_last(slist *, slist *); - static void priv_swap_lists(const node_ptr &, const node_ptr &, unspecified); - static void priv_swap_lists(const node_ptr &, const node_ptr &, unspecified); - static slist & priv_container_from_end_iterator(const const_iterator &); + // private static functions + static void priv_swap_cache_last(slist *, slist *); + static void priv_swap_lists(const node_ptr &, const node_ptr &, unspecified); + static void priv_swap_lists(const node_ptr &, const node_ptr &, unspecified); + static slist & priv_container_from_end_iterator(const const_iterator &); // public data members static const bool constant_time_size; @@ -195,20 +195,20 @@ construct/copy/destruct
                1. -
                  slist();
                  +
                  slist();

                  Effects: constructs an empty list.

                  Complexity: Constant

                  Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks).

                2. -
                  explicit slist(const value_traits & v_traits);
                  +
                  explicit slist(const value_traits & v_traits);

                  Effects: constructs an empty list.

                  Complexity: Constant

                  Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks).

                3. template<typename Iterator> 
                  -  slist(Iterator b, Iterator e, 
                  +  slist(Iterator b, Iterator e, 
                           const value_traits & v_traits = value_traits());

                  Requires: Dereferencing iterator must yield an lvalue of type value_type.

                  Effects: Constructs a list equal to [b ,e).

                  @@ -216,17 +216,17 @@

                  Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks).

                4. -
                  slist(slist && x);
                  +
                  slist(slist && x);

                  Effects: Constructs a container moving resources from another container. Internal value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

                  Complexity: Constant.

                  Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of value traits throws.

                5. -
                  slist & operator=(slist && x);
                  +
                  slist & operator=(slist && x);

                  Effects: Equivalent to swap

                6. -
                  ~slist();
                  +
                  ~slist();

                  Effects: If it's a safe-mode or auto-unlink value, the destructor does nothing (ie. no code is generated). Otherwise it detaches all elements from this. In this case the objects in the list are not deleted (i.e. no destructors are called), but the hooks according to the value_traits template parameter are set to their default value.

                  Complexity: Linear to the number of elements in the list, if it's a safe-mode or auto-unlink value. Otherwise constant.

                7. @@ -234,17 +234,17 @@

                -slist public member functions

                +slist public member functions
                1. -
                  void clear();
                  +
                  void clear();

                  Effects: Erases all the elements of the container.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements of the list. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                  Note: Invalidates the iterators (but not the references) to the erased elements.

                2. -
                  template<typename Disposer> void clear_and_dispose(Disposer disposer);
                  +
                  template<typename Disposer> void clear_and_dispose(Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases all the elements of the container Disposer::operator()(pointer) is called for the removed elements.

                  Throws: Nothing.

                  @@ -252,7 +252,7 @@

                  Note: Invalidates the iterators to the erased elements.

                3. -
                  void push_front(reference value);
                  +
                  void push_front(reference value);

                  Requires: value must be an lvalue.

                  Effects: Inserts the value in the front of the list. No copy constructors are called.

                  Throws: Nothing.

                  @@ -260,7 +260,7 @@

                  Note: Does not affect the validity of iterators and references.

                4. -
                  void push_back(reference value);
                  +
                  void push_back(reference value);

                  Requires: value must be an lvalue.

                  Effects: Inserts the value in the back of the list. No copy constructors are called.

                  Throws: Nothing.

                  @@ -268,14 +268,14 @@

                  Note: Does not affect the validity of iterators and references. This function is only available is cache_last<> is true.

                5. -
                  void pop_front();
                  +
                  void pop_front();

                  Effects: Erases the first element of the list. No destructors are called.

                  Throws: Nothing.

                  Complexity: Constant.

                  Note: Invalidates the iterators (but not the references) to the erased element.

                6. -
                  template<typename Disposer> void pop_front_and_dispose(Disposer disposer);
                  +
                  template<typename Disposer> void pop_front_and_dispose(Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases the first element of the list. Disposer::operator()(pointer) is called for the removed element.

                  Throws: Nothing.

                  @@ -283,136 +283,136 @@

                  Note: Invalidates the iterators to the erased element.

                7. -
                  reference front();
                  +
                  reference front();

                  Effects: Returns a reference to the first element of the list.

                  Throws: Nothing.

                  Complexity: Constant.

                8. -
                  const_reference front() const;
                  +
                  const_reference front() const;

                  Effects: Returns a const_reference to the first element of the list.

                  Throws: Nothing.

                  Complexity: Constant.

                9. -
                  reference back();
                  +
                  reference back();

                  Effects: Returns a reference to the last element of the list.

                  Throws: Nothing.

                  Complexity: Constant.

                  Note: Does not affect the validity of iterators and references. This function is only available is cache_last<> is true.

                10. -
                  const_reference back() const;
                  +
                  const_reference back() const;

                  Effects: Returns a const_reference to the last element of the list.

                  Throws: Nothing.

                  Complexity: Constant.

                  Note: Does not affect the validity of iterators and references. This function is only available is cache_last<> is true.

                11. -
                  iterator begin();
                  +
                  iterator begin();

                  Effects: Returns an iterator to the first element contained in the list.

                  Throws: Nothing.

                  Complexity: Constant.

                12. -
                  const_iterator begin() const;
                  +
                  const_iterator begin() const;

                  Effects: Returns a const_iterator to the first element contained in the list.

                  Throws: Nothing.

                  Complexity: Constant.

                13. -
                  const_iterator cbegin() const;
                  +
                  const_iterator cbegin() const;

                  Effects: Returns a const_iterator to the first element contained in the list.

                  Throws: Nothing.

                  Complexity: Constant.

                14. -
                  iterator end();
                  +
                  iterator end();

                  Effects: Returns an iterator to the end of the list.

                  Throws: Nothing.

                  Complexity: Constant.

                15. -
                  const_iterator end() const;
                  +
                  const_iterator end() const;

                  Effects: Returns a const_iterator to the end of the list.

                  Throws: Nothing.

                  Complexity: Constant.

                16. -
                  const_iterator cend() const;
                  +
                  const_iterator cend() const;

                  Effects: Returns a const_iterator to the end of the list.

                  Throws: Nothing.

                  Complexity: Constant.

                17. -
                  iterator before_begin();
                  +
                  iterator before_begin();

                  Effects: Returns an iterator that points to a position before the first element. Equivalent to "end()"

                  Throws: Nothing.

                  Complexity: Constant.

                18. -
                  const_iterator before_begin() const;
                  +
                  const_iterator before_begin() const;

                  Effects: Returns an iterator that points to a position before the first element. Equivalent to "end()"

                  Throws: Nothing.

                  Complexity: Constant.

                19. -
                  const_iterator cbefore_begin() const;
                  +
                  const_iterator cbefore_begin() const;

                  Effects: Returns an iterator that points to a position before the first element. Equivalent to "end()"

                  Throws: Nothing.

                  Complexity: Constant.

                20. -
                  iterator last();
                  +
                  iterator last();

                  Effects: Returns an iterator to the last element contained in the list.

                  Throws: Nothing.

                  Complexity: Constant.

                  Note: This function is present only if cached_last<> option is true.

                21. -
                  const_iterator last() const;
                  +
                  const_iterator last() const;

                  Effects: Returns a const_iterator to the last element contained in the list.

                  Throws: Nothing.

                  Complexity: Constant.

                  Note: This function is present only if cached_last<> option is true.

                22. -
                  const_iterator clast() const;
                  +
                  const_iterator clast() const;

                  Effects: Returns a const_iterator to the last element contained in the list.

                  Throws: Nothing.

                  Complexity: Constant.

                  Note: This function is present only if cached_last<> option is true.

                23. -
                  size_type size() const;
                  +
                  size_type size() const;

                  Effects: Returns the number of the elements contained in the list.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements contained in the list. if constant_time_size is false. Constant time otherwise.

                  Note: Does not affect the validity of iterators and references.

                24. -
                  bool empty() const;
                  +
                  bool empty() const;

                  Effects: Returns true if the list contains no elements.

                  Throws: Nothing.

                  Complexity: Constant.

                  Note: Does not affect the validity of iterators and references.

                25. -
                  void swap(slist & other);
                  +
                  void swap(slist & other);

                  Effects: Swaps the elements of x and *this.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements of both lists. Constant-time if linear<> and/or cache_last<> options are used.

                  Note: Does not affect the validity of iterators and references.

                26. -
                  void shift_backwards(size_type n = 1);
                  +
                  void shift_backwards(size_type n = 1);

                  Effects: Moves backwards all the elements, so that the first element becomes the second, the second becomes the third... the last element becomes the first one.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements plus the number shifts.

                  Note: Iterators Does not affect the validity of iterators and references.

                27. -
                  void shift_forward(size_type n = 1);
                  +
                  void shift_forward(size_type n = 1);

                  Effects: Moves forward all the elements, so that the second element becomes the first, the third becomes the second... the first element becomes the last one.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements plus the number shifts.

                  @@ -420,7 +420,7 @@
                28. template<typename Cloner, typename Disposer> 
                  -  void clone_from(const slist & src, Cloner cloner, Disposer disposer);
                  + void clone_from(const slist & src, Cloner cloner, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                  Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this.

                  If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                  @@ -429,7 +429,7 @@
                29. template<typename Cloner, typename Disposer> 
                  -  void clone_from(slist && src, Cloner cloner, Disposer disposer);
                  + void clone_from(slist && src, Cloner cloner, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                  Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this.

                  If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                  @@ -437,7 +437,7 @@

                  Throws: If cloner throws.

                30. -
                  iterator insert_after(const_iterator prev_p, reference value);
                  +
                  iterator insert_after(const_iterator prev_p, reference value);

                  Requires: value must be an lvalue and prev_p must point to an element contained by the list or to end().

                  Effects: Inserts the value after the position pointed by prev_p. No copy constructor is called.

                  Returns: An iterator to the inserted element.

                  @@ -447,7 +447,7 @@
                31. template<typename Iterator> 
                  -  void insert_after(const_iterator prev_p, Iterator f, Iterator l);
                  + void insert_after(const_iterator prev_p, Iterator f, Iterator l);

                  Requires: Dereferencing iterator must yield an lvalue of type value_type and prev_p must point to an element contained by the list or to the end node.

                  Effects: Inserts the [f, l) after the position prev_p.

                  Throws: Nothing.

                  @@ -455,7 +455,7 @@

                  Note: Does not affect the validity of iterators and references.

                32. -
                  iterator insert(const_iterator p, reference value);
                  +
                  iterator insert(const_iterator p, reference value);

                  Requires: value must be an lvalue and p must point to an element contained by the list or to end().

                  Effects: Inserts the value before the position pointed by p. No copy constructor is called.

                  Throws: Nothing.

                  @@ -464,7 +464,7 @@
                33. template<typename Iterator> 
                  -  void insert(const_iterator p, Iterator b, Iterator e);
                  + void insert(const_iterator p, Iterator b, Iterator e);

                  Requires: Dereferencing iterator must yield an lvalue of type value_type and p must point to an element contained by the list or to the end node.

                  Effects: Inserts the pointed by b and e before the position p. No copy constructors are called.

                  Throws: Nothing.

                  @@ -472,7 +472,7 @@

                  Note: Does not affect the validity of iterators and references.

                34. -
                  iterator erase_after(const_iterator prev);
                  +
                  iterator erase_after(const_iterator prev);

                  Effects: Erases the element after the element pointed by prev of the list. No destructors are called.

                  Returns: the first element remaining beyond the removed elements, or end() if no such element exists.

                  Throws: Nothing.

                  @@ -480,7 +480,7 @@

                  Note: Invalidates the iterators (but not the references) to the erased element.

                35. -
                  iterator erase_after(const_iterator before_f, const_iterator l);
                  +
                  iterator erase_after(const_iterator before_f, const_iterator l);

                  Effects: Erases the range (before_f, l) from the list. No destructors are called.

                  Returns: the first element remaining beyond the removed elements, or end() if no such element exists.

                  Throws: Nothing.

                  @@ -488,7 +488,7 @@

                  Note: Invalidates the iterators (but not the references) to the erased element.

                36. -
                  iterator erase_after(const_iterator before_f, const_iterator l, size_type n);
                  +
                  iterator erase_after(const_iterator before_f, const_iterator l, size_type n);

                  Effects: Erases the range (before_f, l) from the list. n must be distance(before_f, l) - 1. No destructors are called.

                  Returns: the first element remaining beyond the removed elements, or end() if no such element exists.

                  Throws: Nothing.

                  @@ -496,7 +496,7 @@

                  Note: Invalidates the iterators (but not the references) to the erased element.

                37. -
                  iterator erase(const_iterator i);
                  +
                  iterator erase(const_iterator i);

                  Effects: Erases the element pointed by i of the list. No destructors are called.

                  Returns: the first element remaining beyond the removed element, or end() if no such element exists.

                  Throws: Nothing.

                  @@ -504,7 +504,7 @@

                  Note: Invalidates the iterators (but not the references) to the erased element.

                38. -
                  iterator erase(const_iterator f, const_iterator l);
                  +
                  iterator erase(const_iterator f, const_iterator l);

                  Requires: f and l must be valid iterator to elements in *this.

                  Effects: Erases the range pointed by b and e. No destructors are called.

                  Returns: the first element remaining beyond the removed elements, or end() if no such element exists.

                  @@ -513,7 +513,7 @@

                  Note: Invalidates the iterators (but not the references) to the erased elements.

                39. -
                  iterator erase(const_iterator f, const_iterator l, size_type n);
                  +
                  iterator erase(const_iterator f, const_iterator l, size_type n);

                  Effects: Erases the range [f, l) from the list. n must be distance(f, l). No destructors are called.

                  Returns: the first element remaining beyond the removed elements, or end() if no such element exists.

                  Throws: Nothing.

                  @@ -522,7 +522,7 @@
                40. template<typename Disposer> 
                  -  iterator erase_after_and_dispose(const_iterator prev, Disposer disposer);
                  + iterator erase_after_and_dispose(const_iterator prev, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases the element after the element pointed by prev of the list. Disposer::operator()(pointer) is called for the removed element.

                  Returns: the first element remaining beyond the removed elements, or end() if no such element exists.

                  @@ -532,7 +532,7 @@
                41. template<typename Disposer> 
                  -  iterator erase_after_and_dispose(const_iterator before_f, const_iterator l, 
                  +  iterator erase_after_and_dispose(const_iterator before_f, const_iterator l, 
                                                      Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases the range (before_f, l) from the list. Disposer::operator()(pointer) is called for the removed elements.

                  @@ -543,7 +543,7 @@
                42. template<typename Disposer> 
                  -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                  + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases the element pointed by i of the list. No destructors are called. Disposer::operator()(pointer) is called for the removed element.

                  Returns: the first element remaining beyond the removed element, or end() if no such element exists.

                  @@ -553,7 +553,7 @@
                43. template<typename Disposer> 
                  -  iterator erase_and_dispose(const_iterator f, const_iterator l, 
                  +  iterator erase_and_dispose(const_iterator f, const_iterator l, 
                                                Disposer disposer);

                  Requires: f and l must be valid iterator to elements in *this. Disposer::operator()(pointer) shouldn't throw.

                  Effects: Erases the range pointed by b and e. No destructors are called. Disposer::operator()(pointer) is called for the removed elements.

                  @@ -563,7 +563,7 @@

                  Note: Invalidates the iterators (but not the references) to the erased elements.

                44. -
                  template<typename Iterator> void assign(Iterator b, Iterator e);
                  +
                  template<typename Iterator> void assign(Iterator b, Iterator e);

                  Requires: Dereferencing iterator must yield an lvalue of type value_type.

                  Effects: Clears the list and inserts the range pointed by b and e. No destructors or copy constructors are called.

                  Throws: Nothing.

                  @@ -572,7 +572,7 @@
                45. template<typename Iterator, typename Disposer> 
                  -  void dispose_and_assign(Disposer disposer, Iterator b, Iterator e);
                  + void dispose_and_assign(Disposer disposer, Iterator b, Iterator e);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Requires: Dereferencing iterator must yield an lvalue of type value_type.

                  Effects: Clears the list and inserts the range pointed by b and e. No destructors or copy constructors are called. Disposer::operator()(pointer) is called for the removed elements.

                  @@ -581,7 +581,7 @@

                  Note: Invalidates the iterators (but not the references) to the erased elements.

                46. -
                  void splice_after(const_iterator prev, slist & x, const_iterator * l = 0);
                  +
                  void splice_after(const_iterator prev, slist & x, const_iterator * l = 0);

                  Requires: prev must point to an element contained by this list or to the before_begin() element

                  Effects: Transfers all the elements of list x to this list, after the the element pointed by prev. No destructors or copy constructors are called.

                  Returns: Nothing.

                  @@ -591,7 +591,7 @@

                  Additional note: If the optional parameter "l" is provided, it will be assigned to the last spliced element or prev if x is empty. This iterator can be used as new "prev" iterator for a new splice_after call. that will splice new values after the previously spliced values.

                47. -
                  void splice_after(const_iterator prev_pos, slist & x, const_iterator prev_ele);
                  +
                  void splice_after(const_iterator prev_pos, slist & x, const_iterator prev_ele);

                  Requires: prev must point to an element contained by this list or to the before_begin() element. prev_ele must point to an element contained in list x or must be x.before_begin().

                  Effects: Transfers the element after prev_ele, from list x to this list, after the element pointed by prev. No destructors or copy constructors are called.

                  Throws: Nothing.

                  @@ -599,7 +599,7 @@

                  Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

                48. -
                  void splice_after(const_iterator prev_pos, slist & x, const_iterator before_f, 
                  +
                  void splice_after(const_iterator prev_pos, slist & x, const_iterator before_f, 
                                     const_iterator before_l);

                  Requires: prev_pos must be a dereferenceable iterator in *this or be before_begin(), and before_f and before_l belong to x and ++before_f != x.end() && before_l != x.end().

                  Effects: Transfers the range (before_f, before_l] from list x to this list, after the element pointed by prev_pos. No destructors or copy constructors are called.

                  @@ -608,7 +608,7 @@

                  Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

                49. -
                  void splice_after(const_iterator prev_pos, slist & x, const_iterator before_f, 
                  +
                  void splice_after(const_iterator prev_pos, slist & x, const_iterator before_f, 
                                     const_iterator before_l, size_type n);

                  Requires: prev_pos must be a dereferenceable iterator in *this or be before_begin(), and before_f and before_l belong to x and ++before_f != x.end() && before_l != x.end() and n == distance(before_f, before_l).

                  Effects: Transfers the range (before_f, before_l] from list x to this list, after the element pointed by p. No destructors or copy constructors are called.

                  @@ -617,7 +617,7 @@

                  Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

                50. -
                  void splice(const_iterator it, slist & x, const_iterator * l = 0);
                  +
                  void splice(const_iterator it, slist & x, const_iterator * l = 0);

                  Requires: it is an iterator to an element in *this.

                  Effects: Transfers all the elements of list x to this list, before the the element pointed by it. No destructors or copy constructors are called.

                  Returns: Nothing.

                  @@ -627,7 +627,7 @@

                  Additional note: If the optional parameter "l" is provided, it will be assigned to the last spliced element or prev if x is empty. This iterator can be used as new "prev" iterator for a new splice_after call. that will splice new values after the previously spliced values.

                51. -
                  void splice(const_iterator pos, slist & x, const_iterator elem);
                  +
                  void splice(const_iterator pos, slist & x, const_iterator elem);

                  Requires: it p must be a valid iterator of *this. elem must point to an element contained in list x.

                  Effects: Transfers the element elem, from list x to this list, before the element pointed by pos. No destructors or copy constructors are called.

                  Throws: Nothing.

                  @@ -635,7 +635,7 @@

                  Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

                52. -
                  void splice(const_iterator pos, slist & x, const_iterator f, const_iterator l);
                  +
                  void splice(const_iterator pos, slist & x, const_iterator f, const_iterator l);

                  Requires: pos must be a dereferenceable iterator in *this and f and f belong to x and f and f a valid range on x.

                  Effects: Transfers the range [f, l) from list x to this list, before the element pointed by pos. No destructors or copy constructors are called.

                  Throws: Nothing.

                  @@ -643,7 +643,7 @@

                  Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

                53. -
                  void splice(const_iterator pos, slist & x, const_iterator f, const_iterator l, 
                  +
                  void splice(const_iterator pos, slist & x, const_iterator f, const_iterator l, 
                               size_type n);

                  Requires: pos must be a dereferenceable iterator in *this and f and l belong to x and f and l a valid range on x. n == distance(f, l).

                  Effects: Transfers the range [f, l) from list x to this list, before the element pointed by pos. No destructors or copy constructors are called.

                  @@ -652,14 +652,14 @@

                  Note: Iterators of values obtained from list x now point to elements of this list. Iterators of this list and all the references are not invalidated.

                54. -
                  template<typename Predicate> void sort(Predicate p);
                  +
                  template<typename Predicate> void sort(Predicate p);

                  Effects: This function sorts the list *this according to std::less<value_type>. The sort is stable, that is, the relative order of equivalent elements is preserved.

                  Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the predicate throws. Basic guarantee.

                  Complexity: The number of comparisons is approximately N log N, where N is the list's size.

                  Note: Iterators and references are not invalidated

                55. -
                  void sort();
                  +
                  void sort();

                  Requires: p must be a comparison function that induces a strict weak ordering and both *this and x must be sorted according to that ordering The lists x and *this must be distinct.

                  Effects: This function removes all of x's elements and inserts them in order into *this. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.

                  Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or std::less<value_type> throws. Basic guarantee.

                  @@ -668,7 +668,7 @@
                56. template<typename Predicate> 
                  -  void merge(slist & x, Predicate p, const_iterator * l = 0);
                  + void merge(slist & x, Predicate p, const_iterator * l = 0);

                  Requires: p must be a comparison function that induces a strict weak ordering and both *this and x must be sorted according to that ordering The lists x and *this must be distinct.

                  Effects: This function removes all of x's elements and inserts them in order into *this. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.

                  Returns: Nothing.

                  @@ -678,21 +678,21 @@

                  Additional note: If optional "l" argument is passed, it is assigned to an iterator to the last transferred value or end() is x is empty.

                57. -
                  void merge(slist & x);
                  +
                  void merge(slist & x);

                  Effects: This function removes all of x's elements and inserts them in order into *this according to std::less<value_type>. The merge is stable; that is, if an element from *this is equivalent to one from x, then the element from *this will precede the one from x.

                  Throws: if std::less<value_type> throws. Basic guarantee.

                  Complexity: This function is linear time: it performs at most size() + x.size() - 1 comparisons.

                  Note: Iterators and references are not invalidated

                58. -
                  void reverse();
                  +
                  void reverse();

                  Effects: Reverses the order of elements in the list.

                  Throws: Nothing.

                  Complexity: This function is linear to the contained elements.

                  Note: Iterators and references are not invalidated

                59. -
                  void remove(const_reference value);
                  +
                  void remove(const_reference value);

                  Effects: Removes all the elements that compare equal to value. No destructors are called.

                  Throws: If std::equal_to<value_type> throws. Basic guarantee.

                  Complexity: Linear time. It performs exactly size() comparisons for equality.

                  @@ -700,7 +700,7 @@
                60. template<typename Disposer> 
                  -  void remove_and_dispose(const_reference value, Disposer disposer);
                  + void remove_and_dispose(const_reference value, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Removes all the elements that compare equal to value. Disposer::operator()(pointer) is called for every removed element.

                  Throws: If std::equal_to<value_type> throws. Basic guarantee.

                  @@ -708,7 +708,7 @@

                  Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

                61. -
                  template<typename Pred> void remove_if(Pred pred);
                  +
                  template<typename Pred> void remove_if(Pred pred);

                  Effects: Removes all the elements for which a specified predicate is satisfied. No destructors are called.

                  Throws: If pred throws. Basic guarantee.

                  Complexity: Linear time. It performs exactly size() calls to the predicate.

                  @@ -716,7 +716,7 @@
                62. template<typename Pred, typename Disposer> 
                  -  void remove_and_dispose_if(Pred pred, Disposer disposer);
                  + void remove_and_dispose_if(Pred pred, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Removes all the elements for which a specified predicate is satisfied. Disposer::operator()(pointer) is called for every removed element.

                  Throws: If pred throws. Basic guarantee.

                  @@ -724,21 +724,21 @@

                  Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

                63. -
                  void unique();
                  +
                  void unique();

                  Effects: Removes adjacent duplicate elements or adjacent elements that are equal from the list. No destructors are called.

                  Throws: If std::equal_to<value_type> throws. Basic guarantee.

                  Complexity: Linear time (size()-1) comparisons calls to pred()).

                  Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

                64. -
                  template<typename BinaryPredicate> void unique(BinaryPredicate pred);
                  +
                  template<typename BinaryPredicate> void unique(BinaryPredicate pred);

                  Effects: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. No destructors are called.

                  Throws: If the predicate throws. Basic guarantee.

                  Complexity: Linear time (size()-1) comparisons equality comparisons.

                  Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

                65. -
                  template<typename Disposer> void unique_and_dispose(Disposer disposer);
                  +
                  template<typename Disposer> void unique_and_dispose(Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. Disposer::operator()(pointer) is called for every removed element.

                  Throws: If std::equal_to<value_type> throws. Basic guarantee.

                  @@ -747,7 +747,7 @@
                66. template<typename BinaryPredicate, typename Disposer> 
                  -  void unique_and_dispose(BinaryPredicate pred, Disposer disposer);
                  + void unique_and_dispose(BinaryPredicate pred, Disposer disposer);

                  Requires: Disposer::operator()(pointer) shouldn't throw.

                  Effects: Removes adjacent duplicate elements or adjacent elements that satisfy some binary predicate from the list. Disposer::operator()(pointer) is called for every removed element.

                  Throws: If the predicate throws. Basic guarantee.

                  @@ -755,7 +755,7 @@

                  Note: The relative order of elements that are not removed is unchanged, and iterators to elements that are not removed remain valid.

                67. -
                  iterator iterator_to(reference value);
                  +
                  iterator iterator_to(reference value);

                  Requires: value must be a reference to a value inserted in a list.

                  Effects: This function returns a const_iterator pointing to the element

                  Throws: Nothing.

                  @@ -763,7 +763,7 @@

                  Note: Iterators and references are not invalidated.

                68. -
                  const_iterator iterator_to(const_reference value) const;
                  +
                  const_iterator iterator_to(const_reference value) const;

                  Requires: value must be a const reference to a value inserted in a list.

                  Effects: This function returns an iterator pointing to the element.

                  Throws: Nothing.

                  @@ -771,31 +771,31 @@

                  Note: Iterators and references are not invalidated.

                69. -
                  iterator previous(iterator i);
                  +
                  iterator previous(iterator i);

                  Returns: The iterator to the element before i in the list. Returns the end-iterator, if either i is the begin-iterator or the list is empty.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements before i. Constant if cache_last<> is true and i == end().

                70. -
                  const_iterator previous(const_iterator i) const;
                  +
                  const_iterator previous(const_iterator i) const;

                  Returns: The const_iterator to the element before i in the list. Returns the end-const_iterator, if either i is the begin-const_iterator or the list is empty.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements before i. Constant if cache_last<> is true and i == end().

                71. -
                  iterator previous(const_iterator prev_from, iterator i);
                  +
                  iterator previous(const_iterator prev_from, iterator i);

                  Returns: The iterator to the element before i in the list, starting the search on element after prev_from. Returns the end-iterator, if either i is the begin-iterator or the list is empty.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements before i. Constant if cache_last<> is true and i == end().

                72. -
                  const_iterator previous(const_iterator prev_from, const_iterator i) const;
                  +
                  const_iterator previous(const_iterator prev_from, const_iterator i) const;

                  Returns: The const_iterator to the element before i in the list, starting the search on element after prev_from. Returns the end-const_iterator, if either i is the begin-const_iterator or the list is empty.

                  Throws: Nothing.

                  Complexity: Linear to the number of elements before i. Constant if cache_last<> is true and i == end().

                73. -
                  void check() const;
                  +
                  void check() const;

                  Effects: Asserts the integrity of the container.

                  Complexity: Linear time.

                  Note: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions.

                  @@ -804,24 +804,24 @@

                -slist public static functions

                +slist public static functions
                1. -
                  static slist & container_from_end_iterator(iterator end_iterator);
                  +
                  static slist & container_from_end_iterator(iterator end_iterator);

                  Precondition: end_iterator must be a valid end iterator of slist.

                  Effects: Returns a const reference to the slist associated to the end iterator

                  Throws: Nothing.

                  Complexity: Constant.

                2. -
                  static const slist & container_from_end_iterator(const_iterator end_iterator);
                  +
                  static const slist & container_from_end_iterator(const_iterator end_iterator);

                  Precondition: end_iterator must be a valid end const_iterator of slist.

                  Effects: Returns a const reference to the slist associated to the end iterator

                  Throws: Nothing.

                  Complexity: Constant.

                3. -
                  static iterator s_iterator_to(reference value);
                  +
                  static iterator s_iterator_to(reference value);

                  Requires: value must be a reference to a value inserted in a list.

                  Effects: This function returns a const_iterator pointing to the element

                  Throws: Nothing.

                  @@ -829,7 +829,7 @@

                  Note: Iterators and references are not invalidated. This static function is available only if the value traits is stateless.

                4. -
                  static const_iterator s_iterator_to(const_reference value);
                  +
                  static const_iterator s_iterator_to(const_reference value);

                  Requires: value must be a const reference to a value inserted in a list.

                  Effects: This function returns an iterator pointing to the element.

                  Throws: Nothing.

                  @@ -840,33 +840,33 @@

                -slist private member functions

                +slist private member functions
                  -
                1. void priv_splice_after(const node_ptr & prev_pos_n, slist & x, 
                  +
                2. void priv_splice_after(const node_ptr & prev_pos_n, slist & x, 
                                          const node_ptr & before_f_n, 
                                          const node_ptr & before_l_n);
                3. -
                4. void priv_incorporate_after(const node_ptr & prev_pos_n, 
                  +
                5. void priv_incorporate_after(const node_ptr & prev_pos_n, 
                                               const node_ptr & first_n, 
                                               const node_ptr & before_l_n);
                6. -
                7. void priv_reverse(unspecified);
                8. -
                9. void priv_reverse(unspecified);
                10. -
                11. void priv_shift_backwards(size_type n, unspecified);
                12. -
                13. void priv_shift_backwards(size_type n, unspecified);
                14. -
                15. void priv_shift_forward(size_type n, unspecified);
                16. -
                17. void priv_shift_forward(size_type n, unspecified);
                18. +
                19. void priv_reverse(unspecified);
                20. +
                21. void priv_reverse(unspecified);
                22. +
                23. void priv_shift_backwards(size_type n, unspecified);
                24. +
                25. void priv_shift_backwards(size_type n, unspecified);
                26. +
                27. void priv_shift_forward(size_type n, unspecified);
                28. +
                29. void priv_shift_forward(size_type n, unspecified);

                -slist private static functions

                +slist private static functions
                  -
                1. static void priv_swap_cache_last(slist * this_impl, slist * other_impl);
                2. -
                3. static void priv_swap_lists(const node_ptr & this_node, 
                  +
                4. static void priv_swap_cache_last(slist * this_impl, slist * other_impl);
                5. +
                6. static void priv_swap_lists(const node_ptr & this_node, 
                                               const node_ptr & other_node, unspecified);
                7. -
                8. static void priv_swap_lists(const node_ptr & this_node, 
                  +
                9. static void priv_swap_lists(const node_ptr & this_node, 
                                               const node_ptr & other_node, unspecified);
                10. static slist & 
                  -priv_container_from_end_iterator(const const_iterator & end_iterator);
                11. +priv_container_from_end_iterator(const const_iterator & end_iterator);
                diff --git a/doc/html/boost/intrusive/slist_base_hook.html b/doc/html/boost/intrusive/slist_base_hook.html index e3e335214c..5ff65f4a11 100644 --- a/doc/html/boost/intrusive/slist_base_hook.html +++ b/doc/html/boost/intrusive/slist_base_hook.html @@ -36,15 +36,15 @@ class slist_base_hook : public make_slist_base_hook::type< O1, O2, O3 > { public: // construct/copy/destruct - slist_base_hook(); - slist_base_hook(const slist_base_hook &); - slist_base_hook & operator=(const slist_base_hook &); - ~slist_base_hook(); + slist_base_hook(); + slist_base_hook(const slist_base_hook &); + slist_base_hook & operator=(const slist_base_hook &); + ~slist_base_hook(); - // public member functions - void swap_nodes(slist_base_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(slist_base_hook &); + bool is_linked() const; + void unlink(); };

                Description

                @@ -60,24 +60,24 @@ construct/copy/destruct
                1. -
                  slist_base_hook();
                  +
                  slist_base_hook();

                  Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

                  Throws: Nothing.

                2. -
                  slist_base_hook(const slist_base_hook &);
                  +
                  slist_base_hook(const slist_base_hook &);

                  Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

                  Throws: Nothing.

                  Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

                3. -
                  slist_base_hook & operator=(const slist_base_hook &);
                  +
                  slist_base_hook & operator=(const slist_base_hook &);

                  Effects: Empty function. The argument is ignored.

                  Throws: Nothing.

                  Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

                4. -
                  ~slist_base_hook();
                  +
                  ~slist_base_hook();

                  Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in an slist an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

                  Throws: Nothing.

                5. @@ -85,22 +85,22 @@

                -slist_base_hook public member functions

                +slist_base_hook public member functions
                1. -
                  void swap_nodes(slist_base_hook & other);
                  +
                  void swap_nodes(slist_base_hook & other);

                  Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

                  Complexity: Constant

                  Throws: Nothing.

                2. -
                  bool is_linked() const;
                  +
                  bool is_linked() const;

                  Precondition: link_mode must be safe_link or auto_unlink.

                  Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether slist::iterator_to will return a valid iterator.

                  Complexity: Constant

                3. -
                  void unlink();
                  +
                  void unlink();

                  Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

                  Throws: Nothing.

                4. diff --git a/doc/html/boost/intrusive/slist_member_hook.html b/doc/html/boost/intrusive/slist_member_hook.html index 85e5a282a5..cbc7cd4ef8 100644 --- a/doc/html/boost/intrusive/slist_member_hook.html +++ b/doc/html/boost/intrusive/slist_member_hook.html @@ -36,15 +36,15 @@ class slist_member_hook : public make_slist_member_hook::type< O1, O2, O3 > { public: // construct/copy/destruct - slist_member_hook(); - slist_member_hook(const slist_member_hook &); - slist_member_hook & operator=(const slist_member_hook &); - ~slist_member_hook(); + slist_member_hook(); + slist_member_hook(const slist_member_hook &); + slist_member_hook & operator=(const slist_member_hook &); + ~slist_member_hook(); - // public member functions - void swap_nodes(slist_member_hook &); - bool is_linked() const; - void unlink(); + // public member functions + void swap_nodes(slist_member_hook &); + bool is_linked() const; + void unlink(); };

                Description

                @@ -59,24 +59,24 @@ construct/copy/destruct
                1. -
                  slist_member_hook();
                  +
                  slist_member_hook();

                  Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

                  Throws: Nothing.

                2. -
                  slist_member_hook(const slist_member_hook &);
                  +
                  slist_member_hook(const slist_member_hook &);

                  Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

                  Throws: Nothing.

                  Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

                3. -
                  slist_member_hook & operator=(const slist_member_hook &);
                  +
                  slist_member_hook & operator=(const slist_member_hook &);

                  Effects: Empty function. The argument is ignored.

                  Throws: Nothing.

                  Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

                4. -
                  ~slist_member_hook();
                  +
                  ~slist_member_hook();

                  Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in an slist an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

                  Throws: Nothing.

                5. @@ -84,23 +84,23 @@

                -slist_member_hook public member functions

                +slist_member_hook public member functions
                1. -
                  void swap_nodes(slist_member_hook & other);
                  +
                  void swap_nodes(slist_member_hook & other);

                  Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

                  Complexity: Constant

                  Throws: Nothing.

                2. -
                  bool is_linked() const;
                  +
                  bool is_linked() const;

                  Precondition: link_mode must be safe_link or auto_unlink.

                  Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether slist::iterator_to will return a valid iterator.

                  Note: If this member is called when the value is inserted in a slist with the option linear<true>, this function will return "false" for the last element, as it is not linked to anything (the next element is null), so use with care.

                  Complexity: Constant

                3. -
                  void unlink();
                  +
                  void unlink();

                  Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

                  Throws: Nothing.

                4. diff --git a/doc/html/boost/intrusive/splay_multiset.html b/doc/html/boost/intrusive/splay_multiset.html index 54b6c7cd6f..8097eac674 100644 --- a/doc/html/boost/intrusive/splay_multiset.html +++ b/doc/html/boost/intrusive/splay_multiset.html @@ -60,126 +60,126 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - splay_multiset(); - explicit splay_multiset(const key_compare &, + splay_multiset(); + explicit splay_multiset(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - splay_multiset(Iterator, Iterator, const key_compare & = key_compare(), + splay_multiset(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - splay_multiset(splay_multiset &&); - splay_multiset & operator=(splay_multiset &&); - ~splay_multiset(); + splay_multiset(splay_multiset &&); + splay_multiset & operator=(splay_multiset &&); + ~splay_multiset(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(splay_multiset &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(splay_multiset &); template<typename Cloner, typename Disposer> - void clone_from(const splay_multiset &, Cloner, Disposer); + void clone_from(const splay_multiset &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(splay_multiset &&, Cloner, Disposer); - iterator insert(reference); - iterator insert(const_iterator, reference); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + void clone_from(splay_multiset &&, Cloner, Disposer); + iterator insert(reference); + iterator insert(const_iterator, reference); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &); + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare); - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare); + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const_reference, const_reference, bool, bool); + bounded_range(const_reference, const_reference, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const_reference, const_reference, bool, bool) const; + bounded_range(const_reference, const_reference, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - void splay_up(iterator); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + void splay_up(iterator); template<typename KeyType, typename KeyTypeKeyCompare> - iterator splay_down(const KeyType &, KeyTypeKeyCompare); - iterator splay_down(const key_type &); - void rebalance(); - iterator rebalance_subtree(iterator); - template<class... Options2> void merge(splay_multiset< T, Options2...> &); - template<class... Options2> void merge(splay_set< T, Options2...> &); + iterator splay_down(const KeyType &, KeyTypeKeyCompare); + iterator splay_down(const key_type &); + void rebalance(); + iterator rebalance_subtree(iterator); + template<class... Options2> void merge(splay_multiset< T, Options2...> &); + template<class... Options2> void merge(splay_set< T, Options2...> &); - // public static functions - static splay_multiset & container_from_end_iterator(iterator); - static const splay_multiset & container_from_end_iterator(const_iterator); - static splay_multiset & container_from_iterator(iterator); - static const splay_multiset & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static splay_multiset & container_from_end_iterator(iterator); + static const splay_multiset & container_from_end_iterator(const_iterator); + static splay_multiset & container_from_iterator(iterator); + static const splay_multiset & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -196,13 +196,13 @@ construct/copy/destruct
                  1. -
                    splay_multiset();
                    +
                    splay_multiset();

                    Effects: Constructs an empty container.

                    Complexity: Constant.

                    Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

                  2. -
                    explicit splay_multiset(const key_compare & cmp, 
                    +
                    explicit splay_multiset(const key_compare & cmp, 
                                             const value_traits & v_traits = value_traits());

                    Effects: Constructs an empty container with given comparison and traits.

                    Complexity: Constant.

                    @@ -210,7 +210,7 @@
                  3. template<typename Iterator> 
                    -  splay_multiset(Iterator b, Iterator e, 
                    +  splay_multiset(Iterator b, Iterator e, 
                                      const key_compare & cmp = key_compare(), 
                                      const value_traits & v_traits = value_traits());

                    Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

                    @@ -219,17 +219,17 @@

                    Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

                  4. -
                    splay_multiset(splay_multiset && x);
                    +
                    splay_multiset(splay_multiset && x);

                    Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

                    Complexity: Constant.

                    Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

                  5. -
                    splay_multiset & operator=(splay_multiset && x);
                    +
                    splay_multiset & operator=(splay_multiset && x);

                    Effects: Equivalent to swap

                  6. -
                    ~splay_multiset();
                    +
                    ~splay_multiset();

                    Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                    Complexity: Linear to elements contained in *this.

                    Throws: Nothing.

                    @@ -238,131 +238,131 @@

                  -splay_multiset public member functions

                  +splay_multiset public member functions
                  1. -
                    iterator begin();
                    +
                    iterator begin();

                    Effects: Returns an iterator pointing to the beginning of the container.

                    Complexity: Constant.

                    Throws: Nothing.

                  2. -
                    const_iterator begin() const;
                    +
                    const_iterator begin() const;

                    Effects: Returns a const_iterator pointing to the beginning of the container.

                    Complexity: Constant.

                    Throws: Nothing.

                  3. -
                    const_iterator cbegin() const;
                    +
                    const_iterator cbegin() const;

                    Effects: Returns a const_iterator pointing to the beginning of the container.

                    Complexity: Constant.

                    Throws: Nothing.

                  4. -
                    iterator end();
                    +
                    iterator end();

                    Effects: Returns an iterator pointing to the end of the container.

                    Complexity: Constant.

                    Throws: Nothing.

                  5. -
                    const_iterator end() const;
                    +
                    const_iterator end() const;

                    Effects: Returns a const_iterator pointing to the end of the container.

                    Complexity: Constant.

                    Throws: Nothing.

                  6. -
                    const_iterator cend() const;
                    +
                    const_iterator cend() const;

                    Effects: Returns a const_iterator pointing to the end of the container.

                    Complexity: Constant.

                    Throws: Nothing.

                  7. -
                    reverse_iterator rbegin();
                    +
                    reverse_iterator rbegin();

                    Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                    Complexity: Constant.

                    Throws: Nothing.

                  8. -
                    const_reverse_iterator rbegin() const;
                    +
                    const_reverse_iterator rbegin() const;

                    Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                    Complexity: Constant.

                    Throws: Nothing.

                  9. -
                    const_reverse_iterator crbegin() const;
                    +
                    const_reverse_iterator crbegin() const;

                    Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                    Complexity: Constant.

                    Throws: Nothing.

                  10. -
                    reverse_iterator rend();
                    +
                    reverse_iterator rend();

                    Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                    Complexity: Constant.

                    Throws: Nothing.

                  11. -
                    const_reverse_iterator rend() const;
                    +
                    const_reverse_iterator rend() const;

                    Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                    Complexity: Constant.

                    Throws: Nothing.

                  12. -
                    const_reverse_iterator crend() const;
                    +
                    const_reverse_iterator crend() const;

                    Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                    Complexity: Constant.

                    Throws: Nothing.

                  13. -
                    iterator root();
                    +
                    iterator root();

                    Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                    Complexity: Constant.

                    Throws: Nothing.

                  14. -
                    const_iterator root() const;
                    +
                    const_iterator root() const;

                    Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                    Complexity: Constant.

                    Throws: Nothing.

                  15. -
                    const_iterator croot() const;
                    +
                    const_iterator croot() const;

                    Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                    Complexity: Constant.

                    Throws: Nothing.

                  16. -
                    key_compare key_comp() const;
                    +
                    key_compare key_comp() const;

                    Effects: Returns the key_compare object used by the container.

                    Complexity: Constant.

                    Throws: If key_compare copy-constructor throws.

                  17. -
                    value_compare value_comp() const;
                    +
                    value_compare value_comp() const;

                    Effects: Returns the value_compare object used by the container.

                    Complexity: Constant.

                    Throws: If value_compare copy-constructor throws.

                  18. -
                    bool empty() const;
                    +
                    bool empty() const;

                    Effects: Returns true if the container is empty.

                    Complexity: Constant.

                    Throws: Nothing.

                  19. -
                    size_type size() const;
                    +
                    size_type size() const;

                    Effects: Returns the number of elements stored in the container.

                    Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                    Throws: Nothing.

                  20. -
                    void swap(splay_multiset & other);
                    +
                    void swap(splay_multiset & other);

                    Effects: Swaps the contents of two containers.

                    Complexity: Constant.

                    Throws: If the comparison functor's swap call throws.

                  21. template<typename Cloner, typename Disposer> 
                    -  void clone_from(const splay_multiset & src, Cloner cloner, 
                    +  void clone_from(const splay_multiset & src, Cloner cloner, 
                                       Disposer disposer);

                    Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                    Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                    @@ -372,7 +372,7 @@
                  22. template<typename Cloner, typename Disposer> 
                    -  void clone_from(splay_multiset && src, Cloner cloner, Disposer disposer);
                    + void clone_from(splay_multiset && src, Cloner cloner, Disposer disposer);

                    Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                    Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                    If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                    @@ -381,7 +381,7 @@

                    Note: This version can modify the source container, useful to implement move semantics.

                  23. -
                    iterator insert(reference value);
                    +
                    iterator insert(reference value);

                    Requires: value must be an lvalue

                    Effects: Inserts value into the container before the upper bound.

                    Complexity: Average complexity for insert element is at most logarithmic.

                    @@ -389,7 +389,7 @@

                    Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                  24. -
                    iterator insert(const_iterator hint, reference value);
                    +
                    iterator insert(const_iterator hint, reference value);

                    Requires: value must be an lvalue, and "hint" must be a valid iterator.

                    Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

                    Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

                    @@ -397,7 +397,7 @@

                    Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                  25. -
                    template<typename Iterator> void insert(Iterator b, Iterator e);
                    +
                    template<typename Iterator> void insert(Iterator b, Iterator e);

                    Requires: Dereferencing iterator must yield an lvalue of type value_type.

                    Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

                    Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                    @@ -405,7 +405,7 @@

                    Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                  26. -
                    iterator insert_before(const_iterator pos, reference value);
                    +
                    iterator insert_before(const_iterator pos, reference value);

                    Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                    Effects: Inserts x into the container before "pos".

                    Complexity: Constant time.

                    @@ -413,7 +413,7 @@

                    Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

                  27. -
                    void push_back(reference value);
                    +
                    void push_back(reference value);

                    Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                    Effects: Inserts x into the container in the last position.

                    Complexity: Constant time.

                    @@ -421,7 +421,7 @@

                    Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                  28. -
                    void push_front(reference value);
                    +
                    void push_front(reference value);

                    Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                    Effects: Inserts x into the container in the first position.

                    Complexity: Constant time.

                    @@ -429,21 +429,21 @@

                    Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                  29. -
                    iterator erase(const_iterator i);
                    +
                    iterator erase(const_iterator i);

                    Effects: Erases the element pointed to by i.

                    Complexity: Average complexity for erase element is constant time.

                    Throws: Nothing.

                    Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                  30. -
                    iterator erase(const_iterator b, const_iterator e);
                    +
                    iterator erase(const_iterator b, const_iterator e);

                    Effects: Erases the range pointed to by b end e.

                    Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                    Throws: Nothing.

                    Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                  31. -
                    size_type erase(const key_type & key);
                    +
                    size_type erase(const key_type & key);

                    Effects: Erases all the elements with the given value.

                    Returns: The number of erased elements.

                    Complexity: O(log(size() + N).

                    @@ -452,7 +452,7 @@
                  32. template<typename KeyType, typename KeyTypeKeyCompare> 
                    -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                    + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                    Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                    Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                    Returns: The number of erased elements.

                    @@ -462,7 +462,7 @@
                  33. template<typename Disposer> 
                    -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                    + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                    Requires: Disposer::operator()(pointer) shouldn't throw.

                    Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                    Complexity: Average complexity for erase element is constant time.

                    @@ -471,7 +471,7 @@
                  34. template<typename Disposer> 
                    -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                    +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                                  Disposer disposer);

                    Requires: Disposer::operator()(pointer) shouldn't throw.

                    Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                    @@ -481,7 +481,7 @@
                  35. template<typename Disposer> 
                    -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                    + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                    Requires: Disposer::operator()(pointer) shouldn't throw.

                    Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                    Returns: The number of erased elements.

                    @@ -491,7 +491,7 @@
                  36. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                    -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                    +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                                   Disposer disposer);

                    Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

                    Requires: Disposer::operator()(pointer) shouldn't throw.

                    @@ -502,47 +502,47 @@

                    Note: Invalidates the iterators to the erased elements.

                  37. -
                    void clear();
                    +
                    void clear();

                    Effects: Erases all of the elements.

                    Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                    Throws: Nothing.

                    Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                  38. -
                    template<typename Disposer> void clear_and_dispose(Disposer disposer);
                    +
                    template<typename Disposer> void clear_and_dispose(Disposer disposer);

                    Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                    Throws: Nothing.

                    Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

                  39. -
                    size_type count(const key_type &);
                    +
                    size_type count(const key_type &);

                    Effects: Returns the number of contained elements with the given value

                    Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                    Throws: If key_compare throws. Additional note: non-const function, splaying is performed.

                  40. template<typename KeyType, typename KeyTypeKeyCompare> 
                    -  size_type count(const KeyType & key, KeyTypeKeyCompare comp);
                    + size_type count(const KeyType & key, KeyTypeKeyCompare comp);

                    Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                    Effects: Returns the number of contained elements with the given key

                    Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                    Throws: If comp throws. Additional note: const function, no splaying is performed

                  41. -
                    iterator lower_bound(const key_type & key);
                    +
                    iterator lower_bound(const key_type & key);

                    Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: non-const function, splaying is performed.

                  42. template<typename KeyType, typename KeyTypeKeyCompare> 
                    -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                    + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                    Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key"

                  43. -
                    const_iterator lower_bound(const key_type & key) const;
                    +
                    const_iterator lower_bound(const key_type & key) const;

                    Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: const function, no splaying is performed

                    @@ -550,27 +550,27 @@
                  44. template<typename KeyType, typename KeyTypeKeyCompare> 
                       const_iterator 
                    -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                    + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                    Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: const function, no splaying is performed

                  45. -
                    iterator upper_bound(const key_type & key);
                    +
                    iterator upper_bound(const key_type & key);

                    Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value"

                  46. template<typename KeyType, typename KeyTypeKeyCompare> 
                    -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                    + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                    Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                    Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If comp throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key"

                  47. -
                    const_iterator upper_bound(const key_type & key) const;
                    +
                    const_iterator upper_bound(const key_type & key) const;

                    Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: const function, no splaying is performed

                    @@ -578,42 +578,42 @@
                  48. template<typename KeyType, typename KeyTypeKeyCompare> 
                       const_iterator 
                    -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                    + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                    Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                    Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If comp throws. Additional note: const function, no splaying is performed

                  49. -
                    iterator find(const key_type & key);
                    +
                    iterator find(const key_type & key);

                    Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value"

                  50. template<typename KeyType, typename KeyTypeKeyCompare> 
                    -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                    + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                    Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                    Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If comp throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key"

                  51. -
                    const_iterator find(const key_type & key) const;
                    +
                    const_iterator find(const key_type & key) const;

                    Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: const function, no splaying is performed

                  52. template<typename KeyType, typename KeyTypeKeyCompare> 
                    -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                    + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                    Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                    Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                    Complexity: Logarithmic.

                    Throws: If comp throws. Additional note: const function, no splaying is performed

                  53. -
                    std::pair< iterator, iterator > equal_range(const key_type & key);
                    +
                    std::pair< iterator, iterator > equal_range(const key_type & key);

                    Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value"

                    @@ -621,7 +621,7 @@
                  54. template<typename KeyType, typename KeyTypeKeyCompare> 
                       std::pair< iterator, iterator > 
                    -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                    + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                    Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                    Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                    Complexity: Logarithmic.

                    @@ -629,7 +629,7 @@
                  55. std::pair< const_iterator, const_iterator > 
                    -equal_range(const key_type & key) const;
                    +equal_range(const key_type & key) const;

                    Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                    Complexity: Logarithmic.

                    Throws: If key_compare throws. Additional note: const function, no splaying is performed

                    @@ -637,7 +637,7 @@
                  56. template<typename KeyType, typename KeyTypeKeyCompare> 
                       std::pair< const_iterator, const_iterator > 
                    -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                    + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                    Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                    Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                    Complexity: Logarithmic.

                    @@ -645,7 +645,7 @@
                  57. std::pair< iterator, iterator > 
                    -bounded_range(const_reference lower_value, const_reference upper_value, 
                    +bounded_range(const_reference lower_value, const_reference upper_value, 
                                   bool left_closed, bool right_closed);

                    Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                    If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                    @@ -660,7 +660,7 @@
                  58. template<typename KeyType, typename KeyTypeKeyCompare> 
                       std::pair< iterator, iterator > 
                    -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                    +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                     KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                    Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                    upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                    @@ -676,7 +676,7 @@
                  59. std::pair< const_iterator, const_iterator > 
                    -bounded_range(const_reference lower_value, const_reference upper_value, 
                    +bounded_range(const_reference lower_value, const_reference upper_value, 
                                   bool left_closed, bool right_closed) const;

                    Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                    If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                    @@ -691,7 +691,7 @@
                  60. template<typename KeyType, typename KeyTypeKeyCompare> 
                       std::pair< const_iterator, const_iterator > 
                    -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                    +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                     KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                    Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                    upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                    @@ -706,28 +706,28 @@

                    Note: Experimental function, the interface might change in future releases.

                  61. -
                    iterator iterator_to(reference value);
                    +
                    iterator iterator_to(reference value);

                    Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                    Effects: Returns: a valid iterator i belonging to the set that points to the value

                    Complexity: Constant.

                    Throws: Nothing.

                  62. -
                    const_iterator iterator_to(const_reference value) const;
                    +
                    const_iterator iterator_to(const_reference value) const;

                    Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                    Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                    Complexity: Constant.

                    Throws: Nothing.

                  63. -
                    pointer unlink_leftmost_without_rebalance();
                    +
                    pointer unlink_leftmost_without_rebalance();

                    Effects: Unlinks the leftmost node from the container.

                    Complexity: Average complexity is constant time.

                    Throws: Nothing.

                    Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

                  64. -
                    void replace_node(iterator replace_this, reference with_this);
                    +
                    void replace_node(iterator replace_this, reference with_this);

                    Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                    Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                    Complexity: Constant.

                    @@ -735,7 +735,7 @@

                    Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

                  65. -
                    void remove_node(reference value);
                    +
                    void remove_node(reference value);

                    Effects: removes "value" from the container.

                    Throws: Nothing.

                    Complexity: Logarithmic time.

                    @@ -743,7 +743,7 @@

                    If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

                  66. -
                    void splay_up(iterator i);
                    +
                    void splay_up(iterator i);

                    Requires: i must be a valid iterator of *this.

                    Effects: Rearranges the container so that the element pointed by i is placed as the root of the tree, improving future searches of this value.

                    Complexity: Amortized logarithmic.

                    @@ -751,27 +751,27 @@
                  67. template<typename KeyType, typename KeyTypeKeyCompare> 
                    -  iterator splay_down(const KeyType & key, KeyTypeKeyCompare comp);
                    + iterator splay_down(const KeyType & key, KeyTypeKeyCompare comp);

                    Effects: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree. If the element is not present returns the last node compared with the key. If the tree is empty, end() is returned.

                    Complexity: Amortized logarithmic.

                    Returns: An iterator to the new root of the tree, end() if the tree is empty.

                    Throws: If the comparison functor throws.

                  68. -
                    iterator splay_down(const key_type & key);
                    +
                    iterator splay_down(const key_type & key);

                    Effects: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree.

                    Complexity: Amortized logarithmic.

                    Returns: An iterator to the new root of the tree, end() if the tree is empty.

                    Throws: If the predicate throws.

                  69. -
                    void rebalance();
                    +
                    void rebalance();

                    Effects: Rebalances the tree.

                    Throws: Nothing.

                    Complexity: Linear.

                  70. -
                    iterator rebalance_subtree(iterator root);
                    +
                    iterator rebalance_subtree(iterator root);

                    Requires: old_root is a node of a tree.

                    Effects: Rebalances the subtree rooted at old_root.

                    Returns: The new root of the subtree.

                    @@ -780,7 +780,7 @@
                  71. template<class... Options2> 
                    -  void merge(splay_multiset< T, Options2...> & source);
                    + void merge(splay_multiset< T, Options2...> & source);

                    Requires: "source" container's Options can only can differ in the comparison function from *this.

                    Effects: Extracts each element in source and insert it into a using the comparison object of *this.

                    Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                    @@ -788,7 +788,7 @@

                    Complexity: N log(a.size() + N) (N has the value source.size())

                  72. -
                    template<class... Options2> void merge(splay_set< T, Options2...> & source);
                    +
                    template<class... Options2> void merge(splay_set< T, Options2...> & source);

                    Requires: "source" container's Options can only can differ in the comparison function from *this.

                    Effects: Extracts each element in source and insert it into a using the comparison object of *this.

                    Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                    @@ -799,10 +799,10 @@

                  -splay_multiset public static functions

                  +splay_multiset public static functions
                  1. -
                    static splay_multiset & container_from_end_iterator(iterator end_iterator);
                    +
                    static splay_multiset & container_from_end_iterator(iterator end_iterator);

                    Precondition: end_iterator must be a valid end iterator of the container.

                    Effects: Returns a const reference to the container associated to the end iterator

                    Throws: Nothing.

                    @@ -810,28 +810,28 @@
                  2. static const splay_multiset & 
                    -container_from_end_iterator(const_iterator end_iterator);
                    +container_from_end_iterator(const_iterator end_iterator);

                    Precondition: end_iterator must be a valid end iterator of the container.

                    Effects: Returns a const reference to the container associated to the end iterator

                    Throws: Nothing.

                    Complexity: Constant.

                  3. -
                    static splay_multiset & container_from_iterator(iterator it);
                    +
                    static splay_multiset & container_from_iterator(iterator it);

                    Precondition: it must be a valid iterator of the container.

                    Effects: Returns a const reference to the container associated to the iterator

                    Throws: Nothing.

                    Complexity: Logarithmic.

                  4. -
                    static const splay_multiset & container_from_iterator(const_iterator it);
                    +
                    static const splay_multiset & container_from_iterator(const_iterator it);

                    Precondition: it must be a valid iterator of the container.

                    Effects: Returns a const reference to the container associated to the iterator

                    Throws: Nothing.

                    Complexity: Logarithmic.

                  5. -
                    static iterator s_iterator_to(reference value);
                    +
                    static iterator s_iterator_to(reference value);

                    Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                    Effects: Returns: a valid iterator i belonging to the set that points to the value

                    Complexity: Constant.

                    @@ -839,7 +839,7 @@

                    Note: This static function is available only if the value traits is stateless.

                  6. -
                    static const_iterator s_iterator_to(const_reference value);
                    +
                    static const_iterator s_iterator_to(const_reference value);

                    Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                    Effects: Returns: a valid iterator i belonging to the set that points to the value

                    Complexity: Constant.

                    @@ -847,7 +847,7 @@

                    Note: This static function is available only if the value traits is stateless.

                  7. -
                    static void init_node(reference value);
                    +
                    static void init_node(reference value);

                    Requires: value shall not be in a container.

                    Effects: init_node puts the hook of a value in a well-known default state.

                    Throws: Nothing.

                    diff --git a/doc/html/boost/intrusive/splay_set.html b/doc/html/boost/intrusive/splay_set.html index 3483f83524..bcee721a44 100644 --- a/doc/html/boost/intrusive/splay_set.html +++ b/doc/html/boost/intrusive/splay_set.html @@ -60,141 +60,141 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - splay_set(); - explicit splay_set(const key_compare &, + splay_set(); + explicit splay_set(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - splay_set(Iterator, Iterator, const key_compare & = key_compare(), + splay_set(Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - splay_set(splay_set &&); - splay_set & operator=(splay_set &&); - ~splay_set(); + splay_set(splay_set &&); + splay_set & operator=(splay_set &&); + ~splay_set(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(splay_set &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(splay_set &); template<typename Cloner, typename Disposer> - void clone_from(const splay_set &, Cloner, Disposer); + void clone_from(const splay_set &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(splay_set &&, Cloner, Disposer); - std::pair< iterator, bool > insert(reference); - iterator insert(const_iterator, reference); + void clone_from(splay_set &&, Cloner, Disposer); + std::pair< iterator, bool > insert(reference); + iterator insert(const_iterator, reference); std::pair< iterator, bool > - insert_check(const key_type &, insert_commit_data &); + insert_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_check(const_iterator, const key_type &, insert_commit_data &); + insert_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); + insert_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_commit(reference, const insert_commit_data &); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_commit(reference, const insert_commit_data &); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - size_type count(const key_type &) const; + size_type count(const KeyType &, KeyTypeKeyCompare) const; + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - void splay_up(iterator); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + void splay_up(iterator); template<typename KeyType, typename KeyTypeKeyCompare> - iterator splay_down(const KeyType &, KeyTypeKeyCompare); - iterator splay_down(const key_type &); - void rebalance(); - iterator rebalance_subtree(iterator); - template<class... Options2> void merge(splay_set< T, Options2...> &); - template<class... Options2> void merge(splay_multiset< T, Options2...> &); + iterator splay_down(const KeyType &, KeyTypeKeyCompare); + iterator splay_down(const key_type &); + void rebalance(); + iterator rebalance_subtree(iterator); + template<class... Options2> void merge(splay_set< T, Options2...> &); + template<class... Options2> void merge(splay_multiset< T, Options2...> &); - // public static functions - static splay_set & container_from_end_iterator(iterator); - static const splay_set & container_from_end_iterator(const_iterator); - static splay_set & container_from_iterator(iterator); - static const splay_set & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static splay_set & container_from_end_iterator(iterator); + static const splay_set & container_from_end_iterator(const_iterator); + static splay_set & container_from_iterator(iterator); + static const splay_set & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -211,13 +211,13 @@ construct/copy/destruct
                    1. -
                      splay_set();
                      +
                      splay_set();

                      Effects: Constructs an empty container.

                      Complexity: Constant.

                      Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

                    2. -
                      explicit splay_set(const key_compare & cmp, 
                      +
                      explicit splay_set(const key_compare & cmp, 
                                          const value_traits & v_traits = value_traits());

                      Effects: Constructs an empty container with given comparison and traits.

                      Complexity: Constant.

                      @@ -225,7 +225,7 @@
                    3. template<typename Iterator> 
                      -  splay_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                      +  splay_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                                   const value_traits & v_traits = value_traits());

                      Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

                      Effects: Constructs an empty container and inserts elements from [b, e).

                      @@ -233,17 +233,17 @@

                      Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

                    4. -
                      splay_set(splay_set && x);
                      +
                      splay_set(splay_set && x);

                      Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

                      Complexity: Constant.

                      Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

                    5. -
                      splay_set & operator=(splay_set && x);
                      +
                      splay_set & operator=(splay_set && x);

                      Effects: Equivalent to swap

                    6. -
                      ~splay_set();
                      +
                      ~splay_set();

                      Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                      Complexity: Linear to elements contained in *this.

                      Throws: Nothing.

                      @@ -252,131 +252,131 @@

                    -splay_set public member functions

                    +splay_set public member functions
                    1. -
                      iterator begin();
                      +
                      iterator begin();

                      Effects: Returns an iterator pointing to the beginning of the container.

                      Complexity: Constant.

                      Throws: Nothing.

                    2. -
                      const_iterator begin() const;
                      +
                      const_iterator begin() const;

                      Effects: Returns a const_iterator pointing to the beginning of the container.

                      Complexity: Constant.

                      Throws: Nothing.

                    3. -
                      const_iterator cbegin() const;
                      +
                      const_iterator cbegin() const;

                      Effects: Returns a const_iterator pointing to the beginning of the container.

                      Complexity: Constant.

                      Throws: Nothing.

                    4. -
                      iterator end();
                      +
                      iterator end();

                      Effects: Returns an iterator pointing to the end of the container.

                      Complexity: Constant.

                      Throws: Nothing.

                    5. -
                      const_iterator end() const;
                      +
                      const_iterator end() const;

                      Effects: Returns a const_iterator pointing to the end of the container.

                      Complexity: Constant.

                      Throws: Nothing.

                    6. -
                      const_iterator cend() const;
                      +
                      const_iterator cend() const;

                      Effects: Returns a const_iterator pointing to the end of the container.

                      Complexity: Constant.

                      Throws: Nothing.

                    7. -
                      reverse_iterator rbegin();
                      +
                      reverse_iterator rbegin();

                      Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                      Complexity: Constant.

                      Throws: Nothing.

                    8. -
                      const_reverse_iterator rbegin() const;
                      +
                      const_reverse_iterator rbegin() const;

                      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                      Complexity: Constant.

                      Throws: Nothing.

                    9. -
                      const_reverse_iterator crbegin() const;
                      +
                      const_reverse_iterator crbegin() const;

                      Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                      Complexity: Constant.

                      Throws: Nothing.

                    10. -
                      reverse_iterator rend();
                      +
                      reverse_iterator rend();

                      Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                      Complexity: Constant.

                      Throws: Nothing.

                    11. -
                      const_reverse_iterator rend() const;
                      +
                      const_reverse_iterator rend() const;

                      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                      Complexity: Constant.

                      Throws: Nothing.

                    12. -
                      const_reverse_iterator crend() const;
                      +
                      const_reverse_iterator crend() const;

                      Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                      Complexity: Constant.

                      Throws: Nothing.

                    13. -
                      iterator root();
                      +
                      iterator root();

                      Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                      Complexity: Constant.

                      Throws: Nothing.

                    14. -
                      const_iterator root() const;
                      +
                      const_iterator root() const;

                      Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                      Complexity: Constant.

                      Throws: Nothing.

                    15. -
                      const_iterator croot() const;
                      +
                      const_iterator croot() const;

                      Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                      Complexity: Constant.

                      Throws: Nothing.

                    16. -
                      key_compare key_comp() const;
                      +
                      key_compare key_comp() const;

                      Effects: Returns the key_compare object used by the container.

                      Complexity: Constant.

                      Throws: If key_compare copy-constructor throws.

                    17. -
                      value_compare value_comp() const;
                      +
                      value_compare value_comp() const;

                      Effects: Returns the value_compare object used by the container.

                      Complexity: Constant.

                      Throws: If value_compare copy-constructor throws.

                    18. -
                      bool empty() const;
                      +
                      bool empty() const;

                      Effects: Returns true if the container is empty.

                      Complexity: Constant.

                      Throws: Nothing.

                    19. -
                      size_type size() const;
                      +
                      size_type size() const;

                      Effects: Returns the number of elements stored in the container.

                      Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                      Throws: Nothing.

                    20. -
                      void swap(splay_set & other);
                      +
                      void swap(splay_set & other);

                      Effects: Swaps the contents of two containers.

                      Complexity: Constant.

                      Throws: If the comparison functor's swap call throws.

                    21. template<typename Cloner, typename Disposer> 
                      -  void clone_from(const splay_set & src, Cloner cloner, Disposer disposer);
                      + void clone_from(const splay_set & src, Cloner cloner, Disposer disposer);

                      Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                      Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                      If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                      @@ -385,7 +385,7 @@
                    22. template<typename Cloner, typename Disposer> 
                      -  void clone_from(splay_set && src, Cloner cloner, Disposer disposer);
                      + void clone_from(splay_set && src, Cloner cloner, Disposer disposer);

                      Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                      Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                      If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                      @@ -394,7 +394,7 @@

                      Note: This version can modify the source container, useful to implement move semantics.

                    23. -
                      std::pair< iterator, bool > insert(reference value);
                      +
                      std::pair< iterator, bool > insert(reference value);

                      Requires: value must be an lvalue

                      Effects: Inserts value into the container if the value is not already present.

                      Complexity: Average complexity for insert element is at most logarithmic.

                      @@ -402,7 +402,7 @@

                      Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                    24. -
                      iterator insert(const_iterator hint, reference value);
                      +
                      iterator insert(const_iterator hint, reference value);

                      Requires: value must be an lvalue, and "hint" must be a valid iterator

                      Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

                      Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

                      @@ -411,7 +411,7 @@
                    25. std::pair< iterator, bool > 
                      -insert_check(const key_type & key, insert_commit_data & commit_data);
                      +insert_check(const key_type & key, insert_commit_data & commit_data);

                      Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                      Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                      Complexity: Average complexity is at most logarithmic.

                      @@ -419,7 +419,7 @@
                    26. std::pair< iterator, bool > 
                      -insert_check(const_iterator hint, const key_type & key, 
                      +insert_check(const_iterator hint, const key_type & key, 
                                    insert_commit_data & commit_data);

                      Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                      Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                      @@ -429,7 +429,7 @@
                    27. template<typename KeyType, typename KeyTypeKeyCompare> 
                         std::pair< iterator, bool > 
                      -  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                      +  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                                      insert_commit_data & commit_data);

                      Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                      Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                      @@ -443,7 +443,7 @@
                    28. template<typename KeyType, typename KeyTypeKeyCompare> 
                         std::pair< iterator, bool > 
                      -  insert_check(const_iterator hint, const KeyType & key, 
                      +  insert_check(const_iterator hint, const KeyType & key, 
                                      KeyTypeKeyCompare comp, insert_commit_data & commit_data);

                      Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                      Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                      @@ -455,7 +455,7 @@

                      "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

                    29. -
                      template<typename Iterator> void insert(Iterator b, Iterator e);
                      +
                      template<typename Iterator> void insert(Iterator b, Iterator e);

                      Requires: Dereferencing iterator must yield an lvalue of type value_type.

                      Effects: Tries to insert each element of a range into the container.

                      Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                      @@ -463,7 +463,7 @@

                      Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                    30. -
                      iterator insert_commit(reference value, 
                      +
                      iterator insert_commit(reference value, 
                                              const insert_commit_data & commit_data);

                      Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

                      Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

                      @@ -473,7 +473,7 @@

                      Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

                    31. -
                      iterator insert_before(const_iterator pos, reference value);
                      +
                      iterator insert_before(const_iterator pos, reference value);

                      Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                      Effects: Inserts x into the container before "pos".

                      Complexity: Constant time.

                      @@ -481,7 +481,7 @@

                      Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

                    32. -
                      void push_back(reference value);
                      +
                      void push_back(reference value);

                      Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                      Effects: Inserts x into the container in the last position.

                      Complexity: Constant time.

                      @@ -489,7 +489,7 @@

                      Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                    33. -
                      void push_front(reference value);
                      +
                      void push_front(reference value);

                      Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                      Effects: Inserts x into the container in the first position.

                      Complexity: Constant time.

                      @@ -497,21 +497,21 @@

                      Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                    34. -
                      iterator erase(const_iterator i);
                      +
                      iterator erase(const_iterator i);

                      Effects: Erases the element pointed to by i.

                      Complexity: Average complexity for erase element is constant time.

                      Throws: Nothing.

                      Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                    35. -
                      iterator erase(const_iterator b, const_iterator e);
                      +
                      iterator erase(const_iterator b, const_iterator e);

                      Effects: Erases the range pointed to by b end e.

                      Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                      Throws: Nothing.

                      Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                    36. -
                      size_type erase(const key_type & key);
                      +
                      size_type erase(const key_type & key);

                      Effects: Erases all the elements with the given value.

                      Returns: The number of erased elements.

                      Complexity: O(log(size() + N).

                      @@ -520,7 +520,7 @@
                    37. template<typename KeyType, typename KeyTypeKeyCompare> 
                      -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                      + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                      Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                      Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                      Returns: The number of erased elements.

                      @@ -530,7 +530,7 @@
                    38. template<typename Disposer> 
                      -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                      + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                      Requires: Disposer::operator()(pointer) shouldn't throw.

                      Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                      Complexity: Average complexity for erase element is constant time.

                      @@ -539,7 +539,7 @@
                    39. template<typename Disposer> 
                      -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                      +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                                    Disposer disposer);

                      Requires: Disposer::operator()(pointer) shouldn't throw.

                      Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                      @@ -549,7 +549,7 @@
                    40. template<typename Disposer> 
                      -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                      + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                      Requires: Disposer::operator()(pointer) shouldn't throw.

                      Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                      Returns: The number of erased elements.

                      @@ -559,7 +559,7 @@
                    41. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                      -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                      +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                                     Disposer disposer);

                      Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

                      Requires: Disposer::operator()(pointer) shouldn't throw.

                      @@ -570,61 +570,61 @@

                      Note: Invalidates the iterators to the erased elements.

                    42. -
                      void clear();
                      +
                      void clear();

                      Effects: Erases all of the elements.

                      Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                      Throws: Nothing.

                      Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                    43. -
                      template<typename Disposer> void clear_and_dispose(Disposer disposer);
                      +
                      template<typename Disposer> void clear_and_dispose(Disposer disposer);

                      Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                      Throws: Nothing.

                      Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

                    44. -
                      size_type count(const key_type & key) const;
                      +
                      size_type count(const key_type & key) const;

                      Effects: Returns the number of contained elements with the given value

                      Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                      Throws: If key_compare throws. Additional note: const function, no splaying is performed

                    45. template<typename KeyType, typename KeyTypeKeyCompare> 
                      -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                      + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                      Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                      Effects: Returns the number of contained elements with the given key

                      Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                      Throws: If comp throws. Additional note: const function, no splaying is performed

                    46. -
                      size_type count(const key_type & key) const;
                      +
                      size_type count(const key_type & key) const;

                      Effects: Returns the number of contained elements with the given value

                      Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                      Throws: If key_compare throws. Additional note: const function, no splaying is performed

                    47. template<typename KeyType, typename KeyTypeKeyCompare> 
                      -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                      + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                      Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                      Effects: Returns the number of contained elements with the given key

                      Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                      Throws: If comp throws. Additional note: const function, no splaying is performed

                    48. -
                      iterator lower_bound(const key_type & key);
                      +
                      iterator lower_bound(const key_type & key);

                      Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws. Additional note: non-const function, splaying is performed.

                    49. template<typename KeyType, typename KeyTypeKeyCompare> 
                      -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                      + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                      Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key"

                    50. -
                      const_iterator lower_bound(const key_type & key) const;
                      +
                      const_iterator lower_bound(const key_type & key) const;

                      Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws. Additional note: const function, no splaying is performed

                      @@ -632,27 +632,27 @@
                    51. template<typename KeyType, typename KeyTypeKeyCompare> 
                         const_iterator 
                      -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                      + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                      Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws. Additional note: const function, no splaying is performed

                    52. -
                      iterator upper_bound(const key_type & key);
                      +
                      iterator upper_bound(const key_type & key);

                      Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value"

                    53. template<typename KeyType, typename KeyTypeKeyCompare> 
                      -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                      + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                      Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                      Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If comp throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key"

                    54. -
                      const_iterator upper_bound(const key_type & key) const;
                      +
                      const_iterator upper_bound(const key_type & key) const;

                      Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws. Additional note: const function, no splaying is performed

                      @@ -660,42 +660,42 @@
                    55. template<typename KeyType, typename KeyTypeKeyCompare> 
                         const_iterator 
                      -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                      + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                      Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                      Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If comp throws. Additional note: const function, no splaying is performed

                    56. -
                      iterator find(const key_type & key);
                      +
                      iterator find(const key_type & key);

                      Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value"

                    57. template<typename KeyType, typename KeyTypeKeyCompare> 
                      -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                      + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                      Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                      Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If comp throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key"

                    58. -
                      const_iterator find(const key_type & key) const;
                      +
                      const_iterator find(const key_type & key) const;

                      Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws. Additional note: const function, no splaying is performed

                    59. template<typename KeyType, typename KeyTypeKeyCompare> 
                      -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                      + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                      Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                      Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                      Complexity: Logarithmic.

                      Throws: If comp throws. Additional note: const function, no splaying is performed

                    60. -
                      std::pair< iterator, iterator > equal_range(const key_type & key);
                      +
                      std::pair< iterator, iterator > equal_range(const key_type & key);

                      Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws.

                      @@ -703,7 +703,7 @@
                    61. template<typename KeyType, typename KeyTypeKeyCompare> 
                         std::pair< iterator, iterator > 
                      -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                      + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                      Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                      Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                      Complexity: Logarithmic.

                      @@ -711,7 +711,7 @@
                    62. std::pair< const_iterator, const_iterator > 
                      -equal_range(const key_type & key) const;
                      +equal_range(const key_type & key) const;

                      Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                      Complexity: Logarithmic.

                      Throws: If key_compare throws.

                      @@ -719,7 +719,7 @@
                    63. template<typename KeyType, typename KeyTypeKeyCompare> 
                         std::pair< const_iterator, const_iterator > 
                      -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                      + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                      Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                      Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                      Complexity: Logarithmic.

                      @@ -727,7 +727,7 @@
                    64. std::pair< iterator, iterator > 
                      -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                      +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                     bool left_closed, bool right_closed);

                      Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                      If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                      @@ -742,7 +742,7 @@
                    65. template<typename KeyType, typename KeyTypeKeyCompare> 
                         std::pair< iterator, iterator > 
                      -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                      +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                       KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                      Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                      upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                      @@ -758,7 +758,7 @@
                    66. std::pair< const_iterator, const_iterator > 
                      -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                      +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                     bool left_closed, bool right_closed) const;

                      Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                      If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                      @@ -773,7 +773,7 @@
                    67. template<typename KeyType, typename KeyTypeKeyCompare> 
                         std::pair< const_iterator, const_iterator > 
                      -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                      +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                       KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                      Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                      upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                      @@ -788,28 +788,28 @@

                      Note: Experimental function, the interface might change in future releases.

                    68. -
                      iterator iterator_to(reference value);
                      +
                      iterator iterator_to(reference value);

                      Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                      Effects: Returns: a valid iterator i belonging to the set that points to the value

                      Complexity: Constant.

                      Throws: Nothing.

                    69. -
                      const_iterator iterator_to(const_reference value) const;
                      +
                      const_iterator iterator_to(const_reference value) const;

                      Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                      Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                      Complexity: Constant.

                      Throws: Nothing.

                    70. -
                      pointer unlink_leftmost_without_rebalance();
                      +
                      pointer unlink_leftmost_without_rebalance();

                      Effects: Unlinks the leftmost node from the container.

                      Complexity: Average complexity is constant time.

                      Throws: Nothing.

                      Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

                    71. -
                      void replace_node(iterator replace_this, reference with_this);
                      +
                      void replace_node(iterator replace_this, reference with_this);

                      Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                      Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                      Complexity: Constant.

                      @@ -817,7 +817,7 @@

                      Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

                    72. -
                      void remove_node(reference value);
                      +
                      void remove_node(reference value);

                      Effects: removes "value" from the container.

                      Throws: Nothing.

                      Complexity: Logarithmic time.

                      @@ -825,7 +825,7 @@

                      If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

                    73. -
                      void splay_up(iterator i);
                      +
                      void splay_up(iterator i);

                      Requires: i must be a valid iterator of *this.

                      Effects: Rearranges the container so that the element pointed by i is placed as the root of the tree, improving future searches of this value.

                      Complexity: Amortized logarithmic.

                      @@ -833,27 +833,27 @@
                    74. template<typename KeyType, typename KeyTypeKeyCompare> 
                      -  iterator splay_down(const KeyType & key, KeyTypeKeyCompare comp);
                      + iterator splay_down(const KeyType & key, KeyTypeKeyCompare comp);

                      Effects: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree. If the element is not present returns the last node compared with the key. If the tree is empty, end() is returned.

                      Complexity: Amortized logarithmic.

                      Returns: An iterator to the new root of the tree, end() if the tree is empty.

                      Throws: If the comparison functor throws.

                    75. -
                      iterator splay_down(const key_type & key);
                      +
                      iterator splay_down(const key_type & key);

                      Effects: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree.

                      Complexity: Amortized logarithmic.

                      Returns: An iterator to the new root of the tree, end() if the tree is empty.

                      Throws: If the predicate throws.

                    76. -
                      void rebalance();
                      +
                      void rebalance();

                      Effects: Rebalances the tree.

                      Throws: Nothing.

                      Complexity: Linear.

                    77. -
                      iterator rebalance_subtree(iterator root);
                      +
                      iterator rebalance_subtree(iterator root);

                      Requires: old_root is a node of a tree.

                      Effects: Rebalances the subtree rooted at old_root.

                      Returns: The new root of the subtree.

                      @@ -861,7 +861,7 @@

                      Complexity: Linear to the elements in the subtree.

                    78. -
                      template<class... Options2> void merge(splay_set< T, Options2...> & source);
                      +
                      template<class... Options2> void merge(splay_set< T, Options2...> & source);

                      Requires: "source" container's Options can only can differ in the comparison function from *this.

                      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                      @@ -870,7 +870,7 @@
                    79. template<class... Options2> 
                      -  void merge(splay_multiset< T, Options2...> & source);
                      + void merge(splay_multiset< T, Options2...> & source);

                      Requires: "source" container's Options can only can differ in the comparison function from *this.

                      Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                      Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                      @@ -881,10 +881,10 @@

                    -splay_set public static functions

                    +splay_set public static functions
                    1. -
                      static splay_set & container_from_end_iterator(iterator end_iterator);
                      +
                      static splay_set & container_from_end_iterator(iterator end_iterator);

                      Precondition: end_iterator must be a valid end iterator of the container.

                      Effects: Returns a const reference to the container associated to the end iterator

                      Throws: Nothing.

                      @@ -892,28 +892,28 @@
                    2. static const splay_set & 
                      -container_from_end_iterator(const_iterator end_iterator);
                      +container_from_end_iterator(const_iterator end_iterator);

                      Precondition: end_iterator must be a valid end iterator of the container.

                      Effects: Returns a const reference to the container associated to the end iterator

                      Throws: Nothing.

                      Complexity: Constant.

                    3. -
                      static splay_set & container_from_iterator(iterator it);
                      +
                      static splay_set & container_from_iterator(iterator it);

                      Precondition: it must be a valid iterator of the container.

                      Effects: Returns a const reference to the container associated to the iterator

                      Throws: Nothing.

                      Complexity: Logarithmic.

                    4. -
                      static const splay_set & container_from_iterator(const_iterator it);
                      +
                      static const splay_set & container_from_iterator(const_iterator it);

                      Precondition: it must be a valid iterator of the container.

                      Effects: Returns a const reference to the container associated to the iterator

                      Throws: Nothing.

                      Complexity: Logarithmic.

                    5. -
                      static iterator s_iterator_to(reference value);
                      +
                      static iterator s_iterator_to(reference value);

                      Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                      Effects: Returns: a valid iterator i belonging to the set that points to the value

                      Complexity: Constant.

                      @@ -921,7 +921,7 @@

                      Note: This static function is available only if the value traits is stateless.

                    6. -
                      static const_iterator s_iterator_to(const_reference value);
                      +
                      static const_iterator s_iterator_to(const_reference value);

                      Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                      Effects: Returns: a valid iterator i belonging to the set that points to the value

                      Complexity: Constant.

                      @@ -929,7 +929,7 @@

                      Note: This static function is available only if the value traits is stateless.

                    7. -
                      static void init_node(reference value);
                      +
                      static void init_node(reference value);

                      Requires: value shall not be in a container.

                      Effects: init_node puts the hook of a value in a well-known default state.

                      Throws: Nothing.

                      diff --git a/doc/html/boost/intrusive/splaytree.html b/doc/html/boost/intrusive/splaytree.html index d5c014874f..6b009801fa 100644 --- a/doc/html/boost/intrusive/splaytree.html +++ b/doc/html/boost/intrusive/splaytree.html @@ -60,147 +60,147 @@ typedef implementation_defined::insert_commit_data insert_commit_data; // construct/copy/destruct - splaytree(); - explicit splaytree(const key_compare &, + splaytree(); + explicit splaytree(const key_compare &, const value_traits & = value_traits()); template<typename Iterator> - splaytree(bool, Iterator, Iterator, const key_compare & = key_compare(), + splaytree(bool, Iterator, Iterator, const key_compare & = key_compare(), const value_traits & = value_traits()); - splaytree(splaytree &&); - splaytree & operator=(splaytree &&); - ~splaytree(); + splaytree(splaytree &&); + splaytree & operator=(splaytree &&); + ~splaytree(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(splaytree &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(splaytree &); template<typename Cloner, typename Disposer> - void clone_from(const splaytree &, Cloner, Disposer); + void clone_from(const splaytree &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(splaytree &&, Cloner, Disposer); - iterator insert_equal(reference); - iterator insert_equal(const_iterator, reference); - template<typename Iterator> void insert_equal(Iterator, Iterator); - std::pair< iterator, bool > insert_unique(reference); - iterator insert_unique(const_iterator, reference); + void clone_from(splaytree &&, Cloner, Disposer); + iterator insert_equal(reference); + iterator insert_equal(const_iterator, reference); + template<typename Iterator> void insert_equal(Iterator, Iterator); + std::pair< iterator, bool > insert_unique(reference); + iterator insert_unique(const_iterator, reference); std::pair< iterator, bool > - insert_unique_check(const key_type &, insert_commit_data &); + insert_unique_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const_iterator, const key_type &, insert_commit_data &); + insert_unique_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const KeyType &, KeyTypeKeyCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, bool > - insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, insert_commit_data &); - iterator insert_unique_commit(reference, const insert_commit_data &); - template<typename Iterator> void insert_unique(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + iterator insert_unique_commit(reference, const insert_commit_data &); + template<typename Iterator> void insert_unique(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &); + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare); - size_type count(const key_type &) const; + size_type count(const KeyType &, KeyTypeKeyCompare); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); - const_iterator lower_bound(const key_type &) const; + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); - const_iterator upper_bound(const key_type &) const; + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); - const_iterator find(const key_type &) const; + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); + iterator find(const KeyType &, KeyTypeKeyCompare); template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); template<typename T, class... Options2> - void merge_unique(splaytree< T, Options2...> &); + void merge_unique(splaytree< T, Options2...> &); template<typename T, class... Options2> - void merge_equal(splaytree< T, Options2...> &); - void splay_up(iterator); + void merge_equal(splaytree< T, Options2...> &); + void splay_up(iterator); template<typename KeyType, typename KeyTypeKeyCompare> - iterator splay_down(const KeyType &, KeyTypeKeyCompare); - iterator splay_down(const key_type &); - void rebalance(); - iterator rebalance_subtree(iterator); + iterator splay_down(const KeyType &, KeyTypeKeyCompare); + iterator splay_down(const key_type &); + void rebalance(); + iterator rebalance_subtree(iterator); - // public static functions - static splaytree & container_from_end_iterator(iterator); - static const splaytree & container_from_end_iterator(const_iterator); - static splaytree & container_from_iterator(iterator); - static const splaytree & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static splaytree & container_from_end_iterator(iterator); + static const splaytree & container_from_end_iterator(const_iterator); + static splaytree & container_from_iterator(iterator); + static const splaytree & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -217,13 +217,13 @@ construct/copy/destruct
                      1. -
                        splaytree();
                        +
                        splaytree();

                        Effects: Constructs an empty container.

                        Complexity: Constant.

                        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the key_compare object throws. Basic guarantee.

                      2. -
                        explicit splaytree(const key_compare & cmp, 
                        +
                        explicit splaytree(const key_compare & cmp, 
                                            const value_traits & v_traits = value_traits());

                        Effects: Constructs an empty container with given comparison and traits.

                        Complexity: Constant.

                        @@ -231,7 +231,7 @@
                      3. template<typename Iterator> 
                        -  splaytree(bool unique, Iterator b, Iterator e, 
                        +  splaytree(bool unique, Iterator b, Iterator e, 
                                     const key_compare & cmp = key_compare(), 
                                     const value_traits & v_traits = value_traits());

                        Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

                        @@ -240,17 +240,17 @@

                        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare object throws. Basic guarantee.

                      4. -
                        splaytree(splaytree && x);
                        +
                        splaytree(splaytree && x);

                        Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

                        Complexity: Constant.

                        Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

                      5. -
                        splaytree & operator=(splaytree && x);
                        +
                        splaytree & operator=(splaytree && x);

                        Effects: Equivalent to swap

                      6. -
                        ~splaytree();
                        +
                        ~splaytree();

                        Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                        Complexity: Linear to elements contained in *this.

                        Throws: Nothing.

                        @@ -259,131 +259,131 @@

                      -splaytree public member functions

                      +splaytree public member functions
                      1. -
                        iterator begin();
                        +
                        iterator begin();

                        Effects: Returns an iterator pointing to the beginning of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      2. -
                        const_iterator begin() const;
                        +
                        const_iterator begin() const;

                        Effects: Returns a const_iterator pointing to the beginning of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      3. -
                        const_iterator cbegin() const;
                        +
                        const_iterator cbegin() const;

                        Effects: Returns a const_iterator pointing to the beginning of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      4. -
                        iterator end();
                        +
                        iterator end();

                        Effects: Returns an iterator pointing to the end of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      5. -
                        const_iterator end() const;
                        +
                        const_iterator end() const;

                        Effects: Returns a const_iterator pointing to the end of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      6. -
                        const_iterator cend() const;
                        +
                        const_iterator cend() const;

                        Effects: Returns a const_iterator pointing to the end of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      7. -
                        reverse_iterator rbegin();
                        +
                        reverse_iterator rbegin();

                        Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      8. -
                        const_reverse_iterator rbegin() const;
                        +
                        const_reverse_iterator rbegin() const;

                        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      9. -
                        const_reverse_iterator crbegin() const;
                        +
                        const_reverse_iterator crbegin() const;

                        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      10. -
                        reverse_iterator rend();
                        +
                        reverse_iterator rend();

                        Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      11. -
                        const_reverse_iterator rend() const;
                        +
                        const_reverse_iterator rend() const;

                        Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      12. -
                        const_reverse_iterator crend() const;
                        +
                        const_reverse_iterator crend() const;

                        Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      13. -
                        iterator root();
                        +
                        iterator root();

                        Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                        Complexity: Constant.

                        Throws: Nothing.

                      14. -
                        const_iterator root() const;
                        +
                        const_iterator root() const;

                        Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                        Complexity: Constant.

                        Throws: Nothing.

                      15. -
                        const_iterator croot() const;
                        +
                        const_iterator croot() const;

                        Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                        Complexity: Constant.

                        Throws: Nothing.

                      16. -
                        key_compare key_comp() const;
                        +
                        key_compare key_comp() const;

                        Effects: Returns the key_compare object used by the container.

                        Complexity: Constant.

                        Throws: If key_compare copy-constructor throws.

                      17. -
                        value_compare value_comp() const;
                        +
                        value_compare value_comp() const;

                        Effects: Returns the value_compare object used by the container.

                        Complexity: Constant.

                        Throws: If value_compare copy-constructor throws.

                      18. -
                        bool empty() const;
                        +
                        bool empty() const;

                        Effects: Returns true if the container is empty.

                        Complexity: Constant.

                        Throws: Nothing.

                      19. -
                        size_type size() const;
                        +
                        size_type size() const;

                        Effects: Returns the number of elements stored in the container.

                        Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                        Throws: Nothing.

                      20. -
                        void swap(splaytree & other);
                        +
                        void swap(splaytree & other);

                        Effects: Swaps the contents of two containers.

                        Complexity: Constant.

                        Throws: If the comparison functor's swap call throws.

                      21. template<typename Cloner, typename Disposer> 
                        -  void clone_from(const splaytree & src, Cloner cloner, Disposer disposer);
                        + void clone_from(const splaytree & src, Cloner cloner, Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                        @@ -392,7 +392,7 @@
                      22. template<typename Cloner, typename Disposer> 
                        -  void clone_from(splaytree && src, Cloner cloner, Disposer disposer);
                        + void clone_from(splaytree && src, Cloner cloner, Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                        @@ -401,7 +401,7 @@

                        Note: This version can modify the source container, useful to implement move semantics.

                      23. -
                        iterator insert_equal(reference value);
                        +
                        iterator insert_equal(reference value);

                        Requires: value must be an lvalue

                        Effects: Inserts value into the container before the upper bound.

                        Complexity: Average complexity for insert element is at most logarithmic.

                        @@ -409,7 +409,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      24. -
                        iterator insert_equal(const_iterator hint, reference value);
                        +
                        iterator insert_equal(const_iterator hint, reference value);

                        Requires: value must be an lvalue, and "hint" must be a valid iterator.

                        Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

                        Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

                        @@ -417,7 +417,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      25. -
                        template<typename Iterator> void insert_equal(Iterator b, Iterator e);
                        +
                        template<typename Iterator> void insert_equal(Iterator b, Iterator e);

                        Requires: Dereferencing iterator must yield an lvalue of type value_type.

                        Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

                        Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                        @@ -425,7 +425,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      26. -
                        std::pair< iterator, bool > insert_unique(reference value);
                        +
                        std::pair< iterator, bool > insert_unique(reference value);

                        Requires: value must be an lvalue

                        Effects: Inserts value into the container if the value is not already present.

                        Complexity: Average complexity for insert element is at most logarithmic.

                        @@ -433,7 +433,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      27. -
                        iterator insert_unique(const_iterator hint, reference value);
                        +
                        iterator insert_unique(const_iterator hint, reference value);

                        Requires: value must be an lvalue, and "hint" must be a valid iterator

                        Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

                        Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

                        @@ -442,7 +442,7 @@
                      28. std::pair< iterator, bool > 
                        -insert_unique_check(const key_type & key, insert_commit_data & commit_data);
                        +insert_unique_check(const key_type & key, insert_commit_data & commit_data);

                        Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                        Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                        Complexity: Average complexity is at most logarithmic.

                        @@ -450,7 +450,7 @@
                      29. std::pair< iterator, bool > 
                        -insert_unique_check(const_iterator hint, const key_type & key, 
                        +insert_unique_check(const_iterator hint, const key_type & key, 
                                             insert_commit_data & commit_data);

                        Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                        Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                        @@ -460,7 +460,7 @@
                      30. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< iterator, bool > 
                        -  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                        +  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                                               insert_commit_data & commit_data);

                        Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                        Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                        @@ -474,7 +474,7 @@
                      31. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< iterator, bool > 
                        -  insert_unique_check(const_iterator hint, const KeyType & key, 
                        +  insert_unique_check(const_iterator hint, const KeyType & key, 
                                               KeyTypeKeyCompare comp, 
                                               insert_commit_data & commit_data);

                        Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. The difference is that comp compares an arbitrary key with the contained values.

                        @@ -487,7 +487,7 @@

                        "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

                      32. -
                        iterator insert_unique_commit(reference value, 
                        +
                        iterator insert_unique_commit(reference value, 
                                                       const insert_commit_data & commit_data);

                        Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

                        Effects: Inserts the value in the container using the information obtained from the "commit_data" that a previous "insert_check" filled.

                        @@ -497,7 +497,7 @@

                        Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

                      33. -
                        template<typename Iterator> void insert_unique(Iterator b, Iterator e);
                        +
                        template<typename Iterator> void insert_unique(Iterator b, Iterator e);

                        Requires: Dereferencing iterator must yield an lvalue of type value_type.

                        Effects: Tries to insert each element of a range into the container.

                        Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by value_comp().

                        @@ -505,7 +505,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      34. -
                        iterator insert_before(const_iterator pos, reference value);
                        +
                        iterator insert_before(const_iterator pos, reference value);

                        Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                        Effects: Inserts x into the container before "pos".

                        Complexity: Constant time.

                        @@ -513,7 +513,7 @@

                        Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

                      35. -
                        void push_back(reference value);
                        +
                        void push_back(reference value);

                        Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                        Effects: Inserts x into the container in the last position.

                        Complexity: Constant time.

                        @@ -521,7 +521,7 @@

                        Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                      36. -
                        void push_front(reference value);
                        +
                        void push_front(reference value);

                        Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                        Effects: Inserts x into the container in the first position.

                        Complexity: Constant time.

                        @@ -529,21 +529,21 @@

                        Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                      37. -
                        iterator erase(const_iterator i);
                        +
                        iterator erase(const_iterator i);

                        Effects: Erases the element pointed to by i.

                        Complexity: Average complexity for erase element is constant time.

                        Throws: Nothing.

                        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                      38. -
                        iterator erase(const_iterator b, const_iterator e);
                        +
                        iterator erase(const_iterator b, const_iterator e);

                        Effects: Erases the range pointed to by b end e.

                        Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                        Throws: Nothing.

                        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                      39. -
                        size_type erase(const key_type & key);
                        +
                        size_type erase(const key_type & key);

                        Effects: Erases all the elements with the given value.

                        Returns: The number of erased elements.

                        Complexity: O(log(size() + N).

                        @@ -552,7 +552,7 @@
                      40. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                        + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                        Returns: The number of erased elements.

                        @@ -562,7 +562,7 @@
                      41. template<typename Disposer> 
                        -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                        + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw.

                        Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                        Complexity: Average complexity for erase element is constant time.

                        @@ -571,7 +571,7 @@
                      42. template<typename Disposer> 
                        -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                        +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                                      Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw.

                        Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                        @@ -581,7 +581,7 @@
                      43. template<typename Disposer> 
                        -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                        + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw.

                        Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                        Returns: The number of erased elements.

                        @@ -591,7 +591,7 @@
                      44. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                        -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                        +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                                       Disposer disposer);

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk) and nk the key_type of a value_type inserted into *this.

                        Requires: Disposer::operator()(pointer) shouldn't throw.

                        @@ -602,61 +602,61 @@

                        Note: Invalidates the iterators to the erased elements.

                      45. -
                        void clear();
                        +
                        void clear();

                        Effects: Erases all of the elements.

                        Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                        Throws: Nothing.

                        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                      46. -
                        template<typename Disposer> void clear_and_dispose(Disposer disposer);
                        +
                        template<typename Disposer> void clear_and_dispose(Disposer disposer);

                        Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                        Throws: Nothing.

                        Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

                      47. -
                        size_type count(const key_type & key);
                        +
                        size_type count(const key_type & key);

                        Effects: Returns the number of contained elements with the given value

                        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                        Throws: If key_compare throws. Additional note: non-const function, splaying is performed.

                      48. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  size_type count(const KeyType & key, KeyTypeKeyCompare comp);
                        + size_type count(const KeyType & key, KeyTypeKeyCompare comp);

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                        Effects: Returns the number of contained elements with the given key

                        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                        Throws: If comp throws. Additional note: non-const function, splaying is performed.

                      49. -
                        size_type count(const key_type & key) const;
                        +
                        size_type count(const key_type & key) const;

                        Effects: Returns the number of contained elements with the given value

                        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                        Throws: If key_compare throws. Additional note: const function, no splaying is performed

                      50. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                        Effects: Returns the number of contained elements with the given key

                        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                        Throws: If comp throws. Additional note: const function, no splaying is performed

                      51. -
                        iterator lower_bound(const key_type & key);
                        +
                        iterator lower_bound(const key_type & key);

                        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: non-const function, splaying is performed.

                      52. -
                        const_iterator lower_bound(const key_type & key) const;
                        +
                        const_iterator lower_bound(const key_type & key) const;

                        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: const function, no splaying is performed

                      53. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                        + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "key"

                        @@ -664,26 +664,26 @@
                      54. template<typename KeyType, typename KeyTypeKeyCompare> 
                           const_iterator 
                        -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: const function, no splaying is performed

                      55. -
                        iterator upper_bound(const key_type & key);
                        +
                        iterator upper_bound(const key_type & key);

                        Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value"

                      56. -
                        const_iterator upper_bound(const key_type & key) const;
                        +
                        const_iterator upper_bound(const key_type & key) const;

                        Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: const function, no splaying is performed

                      57. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                        + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                        Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                        Complexity: Logarithmic.

                        @@ -692,27 +692,27 @@
                      58. template<typename KeyType, typename KeyTypeKeyCompare> 
                           const_iterator 
                        -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If comp throws. Additional note: const function, no splaying is performed

                      59. -
                        iterator find(const key_type & key);
                        +
                        iterator find(const key_type & key);

                        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value"

                      60. -
                        const_iterator find(const key_type & key) const;
                        +
                        const_iterator find(const key_type & key) const;

                        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: const function, no splaying is performed

                      61. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                        + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        @@ -720,21 +720,21 @@
                      62. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If comp throws. Additional note: const function, no splaying is performed

                      63. -
                        std::pair< iterator, iterator > equal_range(const key_type & key);
                        +
                        std::pair< iterator, iterator > equal_range(const key_type & key);

                        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: non-const function, splaying is performed for the first element of the equal range of "value"

                      64. std::pair< const_iterator, const_iterator > 
                        -equal_range(const key_type & key) const;
                        +equal_range(const key_type & key) const;

                        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws. Additional note: const function, no splaying is performed

                        @@ -742,7 +742,7 @@
                      65. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< iterator, iterator > 
                        -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                        + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                        Complexity: Logarithmic.

                        @@ -751,7 +751,7 @@
                      66. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< const_iterator, const_iterator > 
                        -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                        Complexity: Logarithmic.

                        @@ -759,7 +759,7 @@
                      67. std::pair< iterator, iterator > 
                        -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                        +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                       bool left_closed, bool right_closed);

                        Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                        If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                        @@ -774,7 +774,7 @@
                      68. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< iterator, iterator > 
                        -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                        +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                         KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                        Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                        upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                        @@ -790,7 +790,7 @@
                      69. std::pair< const_iterator, const_iterator > 
                        -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                        +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                       bool left_closed, bool right_closed) const;

                        Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                        If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                        @@ -805,7 +805,7 @@
                      70. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< const_iterator, const_iterator > 
                        -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                        +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                         KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                        Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                        upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                        @@ -820,28 +820,28 @@

                        Note: Experimental function, the interface might change in future releases.

                      71. -
                        iterator iterator_to(reference value);
                        +
                        iterator iterator_to(reference value);

                        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                        Effects: Returns: a valid iterator i belonging to the set that points to the value

                        Complexity: Constant.

                        Throws: Nothing.

                      72. -
                        const_iterator iterator_to(const_reference value) const;
                        +
                        const_iterator iterator_to(const_reference value) const;

                        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                        Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                        Complexity: Constant.

                        Throws: Nothing.

                      73. -
                        pointer unlink_leftmost_without_rebalance();
                        +
                        pointer unlink_leftmost_without_rebalance();

                        Effects: Unlinks the leftmost node from the container.

                        Complexity: Average complexity is constant time.

                        Throws: Nothing.

                        Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

                      74. -
                        void replace_node(iterator replace_this, reference with_this);
                        +
                        void replace_node(iterator replace_this, reference with_this);

                        Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                        Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                        Complexity: Constant.

                        @@ -849,7 +849,7 @@

                        Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

                      75. -
                        void remove_node(reference value);
                        +
                        void remove_node(reference value);

                        Effects: removes "value" from the container.

                        Throws: Nothing.

                        Complexity: Logarithmic time.

                        @@ -858,7 +858,7 @@
                      76. template<typename T, class... Options2> 
                        -  void merge_unique(splaytree< T, Options2...> &);
                        + void merge_unique(splaytree< T, Options2...> &);

                        Requires: "source" container's Options can only can differ in the comparison function from *this.

                        Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                        Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                        @@ -867,7 +867,7 @@
                      77. template<typename T, class... Options2> 
                        -  void merge_equal(splaytree< T, Options2...> &);
                        + void merge_equal(splaytree< T, Options2...> &);

                        Requires: "source" container's Options can only can differ in the comparison function from *this.

                        Effects: Extracts each element in source and insert it into a using the comparison object of *this.

                        Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                        @@ -875,7 +875,7 @@

                        Complexity: N log(a.size() + N) (N has the value source.size())

                      78. -
                        void splay_up(iterator i);
                        +
                        void splay_up(iterator i);

                        Requires: i must be a valid iterator of *this.

                        Effects: Rearranges the container so that the element pointed by i is placed as the root of the tree, improving future searches of this value.

                        Complexity: Amortized logarithmic.

                        @@ -883,27 +883,27 @@
                      79. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  iterator splay_down(const KeyType & key, KeyTypeKeyCompare comp);
                        + iterator splay_down(const KeyType & key, KeyTypeKeyCompare comp);

                        Effects: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree. If the element is not present returns the last node compared with the key. If the tree is empty, end() is returned.

                        Complexity: Amortized logarithmic.

                        Returns: An iterator to the new root of the tree, end() if the tree is empty.

                        Throws: If the comparison functor throws.

                      80. -
                        iterator splay_down(const key_type & key);
                        +
                        iterator splay_down(const key_type & key);

                        Effects: Rearranges the container so that if *this stores an element with a key equivalent to value the element is placed as the root of the tree.

                        Complexity: Amortized logarithmic.

                        Returns: An iterator to the new root of the tree, end() if the tree is empty.

                        Throws: If the predicate throws.

                      81. -
                        void rebalance();
                        +
                        void rebalance();

                        Effects: Rebalances the tree.

                        Throws: Nothing.

                        Complexity: Linear.

                      82. -
                        iterator rebalance_subtree(iterator root);
                        +
                        iterator rebalance_subtree(iterator root);

                        Requires: old_root is a node of a tree.

                        Effects: Rebalances the subtree rooted at old_root.

                        Returns: The new root of the subtree.

                        @@ -914,10 +914,10 @@

                      -splaytree public static functions

                      +splaytree public static functions
                      1. -
                        static splaytree & container_from_end_iterator(iterator end_iterator);
                        +
                        static splaytree & container_from_end_iterator(iterator end_iterator);

                        Precondition: end_iterator must be a valid end iterator of the container.

                        Effects: Returns a const reference to the container associated to the end iterator

                        Throws: Nothing.

                        @@ -925,28 +925,28 @@
                      2. static const splaytree & 
                        -container_from_end_iterator(const_iterator end_iterator);
                        +container_from_end_iterator(const_iterator end_iterator);

                        Precondition: end_iterator must be a valid end iterator of the container.

                        Effects: Returns a const reference to the container associated to the end iterator

                        Throws: Nothing.

                        Complexity: Constant.

                      3. -
                        static splaytree & container_from_iterator(iterator it);
                        +
                        static splaytree & container_from_iterator(iterator it);

                        Precondition: it must be a valid iterator of the container.

                        Effects: Returns a const reference to the container associated to the iterator

                        Throws: Nothing.

                        Complexity: Logarithmic.

                      4. -
                        static const splaytree & container_from_iterator(const_iterator it);
                        +
                        static const splaytree & container_from_iterator(const_iterator it);

                        Precondition: it must be a valid iterator of the container.

                        Effects: Returns a const reference to the container associated to the iterator

                        Throws: Nothing.

                        Complexity: Logarithmic.

                      5. -
                        static iterator s_iterator_to(reference value);
                        +
                        static iterator s_iterator_to(reference value);

                        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                        Effects: Returns: a valid iterator i belonging to the set that points to the value

                        Complexity: Constant.

                        @@ -954,7 +954,7 @@

                        Note: This static function is available only if the value traits is stateless.

                      6. -
                        static const_iterator s_iterator_to(const_reference value);
                        +
                        static const_iterator s_iterator_to(const_reference value);

                        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                        Effects: Returns: a valid iterator i belonging to the set that points to the value

                        Complexity: Constant.

                        @@ -962,7 +962,7 @@

                        Note: This static function is available only if the value traits is stateless.

                      7. -
                        static void init_node(reference value);
                        +
                        static void init_node(reference value);

                        Requires: value shall not be in a container.

                        Effects: init_node puts the hook of a value in a well-known default state.

                        Throws: Nothing.

                        diff --git a/doc/html/boost/intrusive/splaytree_algorithms.html b/doc/html/boost/intrusive/splaytree_algorithms.html index cf6e0a81b9..1580698976 100644 --- a/doc/html/boost/intrusive/splaytree_algorithms.html +++ b/doc/html/boost/intrusive/splaytree_algorithms.html @@ -42,114 +42,114 @@ typedef NodeTraits::const_node_ptr const_node_ptr; typedef bstree_algo::insert_commit_data insert_commit_data; - // public static functions - static node_ptr get_header(const const_node_ptr &); - static node_ptr begin_node(const const_node_ptr &); - static node_ptr end_node(const const_node_ptr &); - static void swap_tree(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, + // public static functions + static node_ptr get_header(const const_node_ptr &); + static node_ptr begin_node(const const_node_ptr &); + static node_ptr end_node(const const_node_ptr &); + static void swap_tree(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &, + static void replace_node(const node_ptr &, const node_ptr &); + static void replace_node(const node_ptr &, const node_ptr &, const node_ptr &); - static void unlink(const node_ptr &); - static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); - static bool unique(const const_node_ptr &); - static std::size_t size(const const_node_ptr &); - static node_ptr next_node(const node_ptr &); - static node_ptr prev_node(const node_ptr &); - static void init(const node_ptr &); - static void init_header(const node_ptr &); - static void erase(const node_ptr &, const node_ptr &); + static void unlink(const node_ptr &); + static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); + static bool unique(const const_node_ptr &); + static std::size_t size(const const_node_ptr &); + static node_ptr next_node(const node_ptr &); + static node_ptr prev_node(const node_ptr &); + static void init(const node_ptr &); + static void init_header(const node_ptr &); + static void erase(const node_ptr &, const node_ptr &); template<typename NodePtrCompare> - static bool transfer_unique(const node_ptr &, NodePtrCompare, + static bool transfer_unique(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &); template<typename NodePtrCompare> - static void transfer_equal(const node_ptr &, NodePtrCompare, + static void transfer_equal(const node_ptr &, NodePtrCompare, const node_ptr &, const node_ptr &); template<typename Cloner, typename Disposer> - static void clone(const const_node_ptr &, const node_ptr &, Cloner, + static void clone(const const_node_ptr &, const node_ptr &, Cloner, Disposer); template<typename Disposer> - static void clear_and_dispose(const node_ptr &, Disposer); + static void clear_and_dispose(const node_ptr &, Disposer); template<typename KeyType, typename KeyNodePtrCompare> static std::size_t - count(const node_ptr &, const KeyType &, KeyNodePtrCompare); + count(const node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::size_t - count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - lower_bound(const node_ptr &, const KeyType &, KeyNodePtrCompare); + lower_bound(const node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - upper_bound(const node_ptr &, const KeyType &, KeyNodePtrCompare); + upper_bound(const node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> - static node_ptr find(const node_ptr &, const KeyType &, KeyNodePtrCompare); + static node_ptr find(const node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - equal_range(const node_ptr &, const KeyType &, KeyNodePtrCompare); + equal_range(const node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - lower_bound_range(const node_ptr &, const KeyType &, KeyNodePtrCompare); + lower_bound_range(const node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - lower_bound_range(const const_node_ptr &, const KeyType &, + lower_bound_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - bounded_range(const node_ptr &, const KeyType &, const KeyType &, + bounded_range(const node_ptr &, const KeyType &, const KeyType &, KeyNodePtrCompare, bool, bool); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, + bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, KeyNodePtrCompare, bool, bool); template<typename NodePtrCompare> static node_ptr - insert_equal_upper_bound(const node_ptr &, const node_ptr &, + insert_equal_upper_bound(const node_ptr &, const node_ptr &, NodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal_lower_bound(const node_ptr &, const node_ptr &, + insert_equal_lower_bound(const node_ptr &, const node_ptr &, NodePtrCompare); template<typename NodePtrCompare> static node_ptr - insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, + insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, NodePtrCompare); static node_ptr - insert_before(const node_ptr &, const node_ptr &, const node_ptr &); - static void push_back(const node_ptr &, const node_ptr &); - static void push_front(const node_ptr &, const node_ptr &); + insert_before(const node_ptr &, const node_ptr &, const node_ptr &); + static void push_back(const node_ptr &, const node_ptr &); + static void push_front(const node_ptr &, const node_ptr &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const node_ptr &, const KeyType &, KeyNodePtrCompare, + insert_unique_check(const node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, bool > - insert_unique_check(const node_ptr &, const node_ptr &, const KeyType &, + insert_unique_check(const node_ptr &, const node_ptr &, const KeyType &, KeyNodePtrCompare, insert_commit_data &); - static void insert_unique_commit(const node_ptr &, const node_ptr &, + static void insert_unique_commit(const node_ptr &, const node_ptr &, const insert_commit_data &); - static bool is_header(const const_node_ptr &); - static void rebalance(const node_ptr &); - static node_ptr rebalance_subtree(const node_ptr &); - static void splay_up(const node_ptr &, const node_ptr &); + static bool is_header(const const_node_ptr &); + static void rebalance(const node_ptr &); + static node_ptr rebalance_subtree(const node_ptr &); + static void splay_up(const node_ptr &, const node_ptr &); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - splay_down(const node_ptr &, const KeyType &, KeyNodePtrCompare, + splay_down(const node_ptr &, const KeyType &, KeyNodePtrCompare, bool * = 0); };
                      @@ -181,38 +181,38 @@

                      -splaytree_algorithms public static functions

                      +splaytree_algorithms public static functions
                      1. -
                        static node_ptr get_header(const const_node_ptr & n);
                        +
                        static node_ptr get_header(const const_node_ptr & n);

                        Requires: 'node' is a node of the tree or a header node.

                        Effects: Returns the header of the tree.

                        Complexity: Logarithmic.

                        Throws: Nothing.

                      2. -
                        static node_ptr begin_node(const const_node_ptr & header);
                        +
                        static node_ptr begin_node(const const_node_ptr & header);

                        Requires: 'header' is the header node of a tree.

                        Effects: Returns the first node of the tree, the header if the tree is empty.

                        Complexity: Constant time.

                        Throws: Nothing.

                      3. -
                        static node_ptr end_node(const const_node_ptr & header);
                        +
                        static node_ptr end_node(const const_node_ptr & header);

                        Requires: 'header' is the header node of a tree.

                        Effects: Returns the header of the tree.

                        Complexity: Constant time.

                        Throws: Nothing.

                      4. -
                        static void swap_tree(const node_ptr & header1, const node_ptr & header2);
                        +
                        static void swap_tree(const node_ptr & header1, const node_ptr & header2);

                        Requires: header1 and header2 must be the header nodes of two trees.

                        Effects: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.

                        Complexity: Constant.

                        Throws: Nothing.

                      5. -
                        static void swap_nodes(const node_ptr & node1, const node_ptr & node2);
                        +
                        static void swap_nodes(const node_ptr & node1, const node_ptr & node2);

                        Requires: node1 and node2 can't be header nodes of two trees.

                        Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

                        Complexity: Logarithmic.

                        @@ -221,7 +221,7 @@

                        Experimental function

                      6. -
                        static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                        +
                        static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                                                const node_ptr & node2, const node_ptr & header2);

                        Requires: node1 and node2 can't be header nodes of two trees with header header1 and header2.

                        Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

                        @@ -231,7 +231,7 @@

                        Experimental function

                      7. -
                        static void replace_node(const node_ptr & node_to_be_replaced, 
                        +
                        static void replace_node(const node_ptr & node_to_be_replaced, 
                                                  const node_ptr & new_node);

                        Requires: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.

                        Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

                        @@ -240,7 +240,7 @@

                        Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function

                      8. -
                        static void replace_node(const node_ptr & node_to_be_replaced, 
                        +
                        static void replace_node(const node_ptr & node_to_be_replaced, 
                                                  const node_ptr & header, const node_ptr & new_node);

                        Requires: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.

                        Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

                        @@ -249,14 +249,14 @@

                        Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed. Experimental function

                      9. -
                        static void unlink(const node_ptr & node);
                        +
                        static void unlink(const node_ptr & node);

                        Requires: node is a tree node but not the header.

                        Effects: Unlinks the node and rebalances the tree.

                        Complexity: Average complexity is constant time.

                        Throws: Nothing.

                      10. -
                        static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);
                        +
                        static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);

                        Requires: header is the header of a tree.

                        Effects: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.

                        Complexity: Average complexity is constant time.

                        @@ -264,35 +264,35 @@

                        Notes: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree.

                      11. -
                        static bool unique(const const_node_ptr & node);
                        +
                        static bool unique(const const_node_ptr & node);

                        Requires: 'node' is a node of the tree or a node initialized by init(...) or init_node.

                        Effects: Returns true if the node is initialized by init() or init_node().

                        Complexity: Constant time.

                        Throws: Nothing.

                      12. -
                        static std::size_t size(const const_node_ptr & header);
                        +
                        static std::size_t size(const const_node_ptr & header);

                        Requires: node is a node of the tree but it's not the header.

                        Effects: Returns the number of nodes of the subtree.

                        Complexity: Linear time.

                        Throws: Nothing.

                      13. -
                        static node_ptr next_node(const node_ptr & node);
                        +
                        static node_ptr next_node(const node_ptr & node);

                        Requires: 'node' is a node from the tree except the header.

                        Effects: Returns the next node of the tree.

                        Complexity: Average constant time.

                        Throws: Nothing.

                      14. -
                        static node_ptr prev_node(const node_ptr & node);
                        +
                        static node_ptr prev_node(const node_ptr & node);

                        Requires: 'node' is a node from the tree except the leftmost node.

                        Effects: Returns the previous node of the tree.

                        Complexity: Average constant time.

                        Throws: Nothing.

                      15. -
                        static void init(const node_ptr & node);
                        +
                        static void init(const node_ptr & node);

                        Requires: 'node' must not be part of any tree.

                        Effects: After the function unique(node) == true.

                        Complexity: Constant.

                        @@ -300,7 +300,7 @@

                        Nodes: If node is inserted in a tree, this function corrupts the tree.

                      16. -
                        static void init_header(const node_ptr & header);
                        +
                        static void init_header(const node_ptr & header);

                        Requires: node must not be part of any tree.

                        Effects: Initializes the header to represent an empty tree. unique(header) == true.

                        Complexity: Constant.

                        @@ -308,7 +308,7 @@

                        Nodes: If node is inserted in a tree, this function corrupts the tree.

                      17. -
                        static void erase(const node_ptr & header, const node_ptr & z);
                        +
                        static void erase(const node_ptr & header, const node_ptr & z);

                        Requires: header must be the header of a tree, z a node of that tree and z != header.

                        Effects: Erases node "z" from the tree with header "header".

                        Complexity: Amortized constant time.

                        @@ -316,7 +316,7 @@
                      18. template<typename NodePtrCompare> 
                        -  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                        +  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                                                       const node_ptr & header2, const node_ptr & z);

                        Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

                        Effects: Transfers node "z" from tree1 to tree2 if tree1 does not contain a node that is equivalent to z.

                        @@ -326,7 +326,7 @@
                      19. template<typename NodePtrCompare> 
                        -  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                        +  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                                                      const node_ptr & header2, const node_ptr & z);

                        Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

                        Effects: Transfers node "z" from tree1 to tree2.

                        @@ -335,7 +335,7 @@
                      20. template<typename Cloner, typename Disposer> 
                        -  static void clone(const const_node_ptr & source_header, 
                        +  static void clone(const const_node_ptr & source_header, 
                                             const node_ptr & target_header, Cloner cloner, 
                                             Disposer disposer);

                        Requires: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.

                        @@ -346,7 +346,7 @@
                      21. template<typename Disposer> 
                        -  static void clear_and_dispose(const node_ptr & header, Disposer disposer);
                        + static void clear_and_dispose(const node_ptr & header, Disposer disposer);

                        Requires: "disposer" must be an object function taking a node_ptr parameter and shouldn't throw.

                        Effects: Empties the target tree calling void disposer::operator()(const node_ptr &) for every node of the tree except the header.

                        Complexity: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.

                        @@ -355,7 +355,7 @@
                      22. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::size_t 
                        -  count(const node_ptr & header, const KeyType & key, KeyNodePtrCompare comp);
                        + count(const node_ptr & header, const KeyType & key, KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns the number of elements with a key equivalent to "key" according to "comp".

                        Complexity: Logarithmic.

                        @@ -364,7 +364,7 @@
                      23. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::size_t 
                        -  count(const const_node_ptr & header, const KeyType & key, 
                        +  count(const const_node_ptr & header, const KeyType & key, 
                                 KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns the number of elements with a key equivalent to "key" according to "comp".

                        @@ -374,7 +374,7 @@
                      24. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  lower_bound(const node_ptr & header, const KeyType & key, 
                        +  lower_bound(const node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.

                        @@ -384,7 +384,7 @@
                      25. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  lower_bound(const const_node_ptr & header, const KeyType & key, 
                        +  lower_bound(const const_node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.

                        @@ -394,7 +394,7 @@
                      26. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  upper_bound(const node_ptr & header, const KeyType & key, 
                        +  upper_bound(const node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.

                        @@ -404,7 +404,7 @@
                      27. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  upper_bound(const const_node_ptr & header, const KeyType & key, 
                        +  upper_bound(const const_node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.

                        @@ -414,7 +414,7 @@
                      28. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  find(const node_ptr & header, const KeyType & key, KeyNodePtrCompare comp);
                        + find(const node_ptr & header, const KeyType & key, KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.

                        Complexity: Logarithmic.

                        @@ -423,7 +423,7 @@
                      29. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  find(const const_node_ptr & header, const KeyType & key, 
                        +  find(const const_node_ptr & header, const KeyType & key, 
                                KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.

                        @@ -433,7 +433,7 @@
                      30. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, node_ptr > 
                        -  equal_range(const node_ptr & header, const KeyType & key, 
                        +  equal_range(const node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.

                        @@ -443,7 +443,7 @@
                      31. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, node_ptr > 
                        -  equal_range(const const_node_ptr & header, const KeyType & key, 
                        +  equal_range(const const_node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.

                        @@ -453,7 +453,7 @@
                      32. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, node_ptr > 
                        -  lower_bound_range(const node_ptr & header, const KeyType & key, 
                        +  lower_bound_range(const node_ptr & header, const KeyType & key, 
                                             KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns an a pair of node_ptr delimiting a range containing the first element that is equivalent to "key" according to "comp" or an empty range that indicates the position where that element would be if there are no equivalent elements.

                        @@ -463,7 +463,7 @@
                      33. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, node_ptr > 
                        -  lower_bound_range(const const_node_ptr & header, const KeyType & key, 
                        +  lower_bound_range(const const_node_ptr & header, const KeyType & key, 
                                             KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns an a pair of node_ptr delimiting a range containing the first element that is equivalent to "key" according to "comp" or an empty range that indicates the position where that element would be if there are no equivalent elements.

                        @@ -473,7 +473,7 @@
                      34. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, node_ptr > 
                        -  bounded_range(const node_ptr & header, const KeyType & lower_key, 
                        +  bounded_range(const node_ptr & header, const KeyType & lower_key, 
                                         const KeyType & upper_key, KeyNodePtrCompare comp, 
                                         bool left_closed, bool right_closed);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.

                        @@ -488,7 +488,7 @@
                      35. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, node_ptr > 
                        -  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                        +  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                                         const KeyType & upper_key, KeyNodePtrCompare comp, 
                                         bool left_closed, bool right_closed);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.

                        @@ -503,7 +503,7 @@
                      36. template<typename NodePtrCompare> 
                           static node_ptr 
                        -  insert_equal_upper_bound(const node_ptr & header, const node_ptr & new_node, 
                        +  insert_equal_upper_bound(const node_ptr & header, const node_ptr & new_node, 
                                                    NodePtrCompare comp);

                        Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

                        Effects: Inserts new_node into the tree before the upper bound according to "comp".

                        @@ -513,7 +513,7 @@
                      37. template<typename NodePtrCompare> 
                           static node_ptr 
                        -  insert_equal_lower_bound(const node_ptr & header, const node_ptr & new_node, 
                        +  insert_equal_lower_bound(const node_ptr & header, const node_ptr & new_node, 
                                                    NodePtrCompare comp);

                        Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs.

                        Effects: Inserts new_node into the tree before the lower bound according to "comp".

                        @@ -523,7 +523,7 @@
                      38. template<typename NodePtrCompare> 
                           static node_ptr 
                        -  insert_equal(const node_ptr & header, const node_ptr & hint, 
                        +  insert_equal(const node_ptr & header, const node_ptr & hint, 
                                        const node_ptr & new_node, NodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree.

                        Effects: Inserts new_node into the tree, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case).

                        @@ -532,7 +532,7 @@
                      39. static node_ptr 
                        -insert_before(const node_ptr & header, const node_ptr & pos, 
                        +insert_before(const node_ptr & header, const node_ptr & pos, 
                                       const node_ptr & new_node);

                        Requires: "header" must be the header node of a tree. "pos" must be a valid iterator or header (end) node. "pos" must be an iterator pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller.

                        Effects: Inserts new_node into the tree before "pos".

                        @@ -541,7 +541,7 @@

                        Note: If "pos" is not the successor of the newly inserted "new_node" tree invariants might be broken. Additional note: the inserted node is splayed

                      40. -
                        static void push_back(const node_ptr & header, const node_ptr & new_node);
                        +
                        static void push_back(const node_ptr & header, const node_ptr & new_node);

                        Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key.

                        Effects: Inserts new_node into the tree before "pos".

                        Complexity: Constant-time.

                        @@ -549,7 +549,7 @@

                        Note: If "new_node" is less than the greatest inserted key tree invariants are broken. This function is slightly faster than using "insert_before". Additional note: the inserted node is splayed

                      41. -
                        static void push_front(const node_ptr & header, const node_ptr & new_node);
                        +
                        static void push_front(const node_ptr & header, const node_ptr & new_node);

                        Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key.

                        Effects: Inserts new_node into the tree before "pos".

                        Complexity: Constant-time.

                        @@ -559,7 +559,7 @@
                      42. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, bool > 
                        -  insert_unique_check(const node_ptr & header, const KeyType & key, 
                        +  insert_unique_check(const node_ptr & header, const KeyType & key, 
                                               KeyNodePtrCompare comp, 
                                               insert_commit_data & commit_data);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.

                        @@ -574,7 +574,7 @@
                      43. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, bool > 
                        -  insert_unique_check(const node_ptr & header, const node_ptr & hint, 
                        +  insert_unique_check(const node_ptr & header, const node_ptr & hint, 
                                               const KeyType & key, KeyNodePtrCompare comp, 
                                               insert_commit_data & commit_data);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr. "hint" is node from the "header"'s tree.

                        @@ -587,7 +587,7 @@

                        "commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set. Additional note: nodes with the given key are splayed

                      44. -
                        static void insert_unique_commit(const node_ptr & header, 
                        +
                        static void insert_unique_commit(const node_ptr & header, 
                                                          const node_ptr & new_value, 
                                                          const insert_commit_data & commit_data);

                        Requires: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".

                        @@ -597,31 +597,31 @@

                        Notes: This function has only sense if a "insert_unique_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

                      45. -
                        static bool is_header(const const_node_ptr & p);
                        +
                        static bool is_header(const const_node_ptr & p);

                        Requires: p is a node of a tree.

                        Effects: Returns true if p is the header of the tree.

                        Complexity: Constant.

                        Throws: Nothing.

                      46. -
                        static void rebalance(const node_ptr & header);
                        +
                        static void rebalance(const node_ptr & header);

                        Requires: header must be the header of a tree.

                        Effects: Rebalances the tree.

                        Throws: Nothing.

                        Complexity: Linear.

                      47. -
                        static node_ptr rebalance_subtree(const node_ptr & old_root);
                        +
                        static node_ptr rebalance_subtree(const node_ptr & old_root);

                        Requires: old_root is a node of a tree. It shall not be null.

                        Effects: Rebalances the subtree rooted at old_root.

                        Returns: The new root of the subtree.

                        Throws: Nothing.

                        Complexity: Linear.

                      48. -
                      49. static void splay_up(const node_ptr & node, const node_ptr & header);
                      50. +
                      51. static void splay_up(const node_ptr & node, const node_ptr & header);
                      52. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  splay_down(const node_ptr & header, const KeyType & key, 
                        +  splay_down(const node_ptr & header, const KeyType & key, 
                                      KeyNodePtrCompare comp, bool * pfound = 0);
                      diff --git a/doc/html/boost/intrusive/treap.html b/doc/html/boost/intrusive/treap.html index 0b25051ee7..1a7a487915 100644 --- a/doc/html/boost/intrusive/treap.html +++ b/doc/html/boost/intrusive/treap.html @@ -62,155 +62,155 @@ typedef node_algorithms::insert_commit_data insert_commit_data; // construct/copy/destruct - treap(); - explicit treap(const key_compare &, + treap(); + explicit treap(const key_compare &, const priority_compare & = priority_compare(), const value_traits & = value_traits()); template<typename Iterator> - treap(bool, Iterator, Iterator, const key_compare & = key_compare(), + treap(bool, Iterator, Iterator, const key_compare & = key_compare(), const priority_compare & = priority_compare(), const value_traits & = value_traits()); - treap(treap &&); - treap & operator=(treap &&); - ~treap(); + treap(treap &&); + treap & operator=(treap &&); + ~treap(); - // public member functions + // public member functions template<typename KeyPrioComp> - unspecified key_node_prio_comp(KeyPrioComp) const; - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - iterator top(); - const_iterator top() const; - const_iterator ctop() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - reverse_iterator rtop(); - const_reverse_iterator rtop() const; - const_reverse_iterator crtop() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - priority_compare priority_comp() const; - void swap(treap &); + unspecified key_node_prio_comp(KeyPrioComp) const; + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + iterator top(); + const_iterator top() const; + const_iterator ctop() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + reverse_iterator rtop(); + const_reverse_iterator rtop() const; + const_reverse_iterator crtop() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + priority_compare priority_comp() const; + void swap(treap &); template<typename Cloner, typename Disposer> - void clone_from(const treap &, Cloner, Disposer); + void clone_from(const treap &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(treap &&, Cloner, Disposer); - iterator insert_equal(reference); - iterator insert_equal(const_iterator, reference); - template<typename Iterator> void insert_equal(Iterator, Iterator); - std::pair< iterator, bool > insert_unique(reference); - iterator insert_unique(const_iterator, reference); - template<typename Iterator> void insert_unique(Iterator, Iterator); + void clone_from(treap &&, Cloner, Disposer); + iterator insert_equal(reference); + iterator insert_equal(const_iterator, reference); + template<typename Iterator> void insert_equal(Iterator, Iterator); + std::pair< iterator, bool > insert_unique(reference); + iterator insert_unique(const_iterator, reference); + template<typename Iterator> void insert_unique(Iterator, Iterator); std::pair< iterator, bool > - insert_unique_check(const key_type &, insert_commit_data &); + insert_unique_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_unique_check(const_iterator, const key_type &, insert_commit_data &); + insert_unique_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare, typename KeyValuePrioCompare> std::pair< iterator BOOST_INTRUSIVE_I bool > - insert_unique_check(const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const KeyType &, KeyTypeKeyCompare, KeyValuePrioCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare, typename KeyValuePrioCompare> std::pair< iterator, bool > - insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_unique_check(const_iterator, const KeyType &, KeyTypeKeyCompare, KeyValuePrioCompare, insert_commit_data &); - iterator insert_unique_commit(reference, const insert_commit_data &); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + iterator insert_unique_commit(reference, const insert_commit_data &); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); template<typename T, class... Options2> - void merge_unique(sgtree< T, Options2...> &); - while(it! = itend); + void merge_unique(sgtree< T, Options2...> &); + while(it! = itend); template<typename T, class... Options2> - void merge_equal(sgtree< T, Options2...> &); - while(it! = itend); - template<typename ExtraChecker> void check(ExtraChecker) const; - void check() const; - size_type count(const key_type &) const; + void merge_equal(sgtree< T, Options2...> &); + while(it! = itend); + template<typename ExtraChecker> void check(ExtraChecker) const; + void check() const; + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); - // public static functions - static treap & container_from_end_iterator(iterator); - static const treap & container_from_end_iterator(const_iterator); - static treap & container_from_iterator(iterator); - static const treap & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static treap & container_from_end_iterator(iterator); + static const treap & container_from_end_iterator(const_iterator); + static treap & container_from_iterator(iterator); + static const treap & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -229,13 +229,13 @@ construct/copy/destruct
                      1. -
                        treap();
                        +
                        treap();

                        Effects: Constructs an empty container.

                        Complexity: Constant.

                        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee.

                      2. -
                        explicit treap(const key_compare & cmp, 
                        +
                        explicit treap(const key_compare & cmp, 
                                        const priority_compare & pcmp = priority_compare(), 
                                        const value_traits & v_traits = value_traits());

                        Effects: Constructs an empty container.

                        @@ -244,7 +244,7 @@
                      3. template<typename Iterator> 
                        -  treap(bool unique, Iterator b, Iterator e, 
                        +  treap(bool unique, Iterator b, Iterator e, 
                                 const key_compare & cmp = key_compare(), 
                                 const priority_compare & pcmp = priority_compare(), 
                                 const value_traits & v_traits = value_traits());
                        @@ -254,17 +254,17 @@

                        Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare/priority_compare objects throw. Basic guarantee.

                      4. -
                        treap(treap && x);
                        +
                        treap(treap && x);

                        Effects: Constructs a container moving resources from another container. Internal comparison object and value traits are move constructed and nodes belonging to x (except the node representing the "end") are linked to *this.

                        Complexity: Constant.

                        Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of the comparison objet throws.

                      5. -
                        treap & operator=(treap && x);
                        +
                        treap & operator=(treap && x);

                        Effects: Equivalent to swap

                      6. -
                        ~treap();
                        +
                        ~treap();

                        Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                        Complexity: Linear to elements contained in *this.

                        Throws: Nothing.

                        @@ -273,175 +273,175 @@

                      -treap public member functions

                      +treap public member functions
                      1. template<typename KeyPrioComp> 
                        -  unspecified key_node_prio_comp(KeyPrioComp keypriocomp) const;
                      2. + unspecified key_node_prio_comp(KeyPrioComp keypriocomp) const;
                      3. -
                        iterator begin();
                        +
                        iterator begin();

                        Effects: Returns an iterator pointing to the beginning of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      4. -
                        const_iterator begin() const;
                        +
                        const_iterator begin() const;

                        Effects: Returns a const_iterator pointing to the beginning of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      5. -
                        const_iterator cbegin() const;
                        +
                        const_iterator cbegin() const;

                        Effects: Returns a const_iterator pointing to the beginning of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      6. -
                        iterator end();
                        +
                        iterator end();

                        Effects: Returns an iterator pointing to the end of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      7. -
                        const_iterator end() const;
                        +
                        const_iterator end() const;

                        Effects: Returns a const_iterator pointing to the end of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      8. -
                        const_iterator cend() const;
                        +
                        const_iterator cend() const;

                        Effects: Returns a const_iterator pointing to the end of the container.

                        Complexity: Constant.

                        Throws: Nothing.

                      9. -
                        iterator top();
                        +
                        iterator top();

                        Effects: Returns an iterator pointing to the highest priority object of the treap.

                        Complexity: Constant.

                        Throws: Nothing.

                      10. -
                        const_iterator top() const;
                        +
                        const_iterator top() const;

                        Effects: Returns a const_iterator pointing to the highest priority object of the treap..

                        Complexity: Constant.

                        Throws: Nothing.

                      11. -
                        const_iterator ctop() const;
                        +
                        const_iterator ctop() const;

                        Effects: Returns a const_iterator pointing to the highest priority object of the treap..

                        Complexity: Constant.

                        Throws: Nothing.

                      12. -
                        reverse_iterator rbegin();
                        +
                        reverse_iterator rbegin();

                        Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      13. -
                        const_reverse_iterator rbegin() const;
                        +
                        const_reverse_iterator rbegin() const;

                        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      14. -
                        const_reverse_iterator crbegin() const;
                        +
                        const_reverse_iterator crbegin() const;

                        Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      15. -
                        reverse_iterator rend();
                        +
                        reverse_iterator rend();

                        Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      16. -
                        const_reverse_iterator rend() const;
                        +
                        const_reverse_iterator rend() const;

                        Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      17. -
                        const_reverse_iterator crend() const;
                        +
                        const_reverse_iterator crend() const;

                        Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                        Complexity: Constant.

                        Throws: Nothing.

                      18. -
                        iterator root();
                        +
                        iterator root();

                        Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                        Complexity: Constant.

                        Throws: Nothing.

                      19. -
                        const_iterator root() const;
                        +
                        const_iterator root() const;

                        Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                        Complexity: Constant.

                        Throws: Nothing.

                      20. -
                        const_iterator croot() const;
                        +
                        const_iterator croot() const;

                        Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                        Complexity: Constant.

                        Throws: Nothing.

                      21. -
                        reverse_iterator rtop();
                        +
                        reverse_iterator rtop();

                        Effects: Returns a reverse_iterator pointing to the highest priority object of the reversed treap.

                        Complexity: Constant.

                        Throws: Nothing.

                      22. -
                        const_reverse_iterator rtop() const;
                        +
                        const_reverse_iterator rtop() const;

                        Effects: Returns a const_reverse_iterator pointing to the highest priority objec of the reversed treap.

                        Complexity: Constant.

                        Throws: Nothing.

                      23. -
                        const_reverse_iterator crtop() const;
                        +
                        const_reverse_iterator crtop() const;

                        Effects: Returns a const_reverse_iterator pointing to the highest priority object of the reversed treap.

                        Complexity: Constant.

                        Throws: Nothing.

                      24. -
                        key_compare key_comp() const;
                        +
                        key_compare key_comp() const;

                        Effects: Returns the key_compare object used by the container.

                        Complexity: Constant.

                        Throws: If key_compare copy-constructor throws.

                      25. -
                        value_compare value_comp() const;
                        +
                        value_compare value_comp() const;

                        Effects: Returns the value_compare object used by the container.

                        Complexity: Constant.

                        Throws: If value_compare copy-constructor throws.

                      26. -
                        bool empty() const;
                        +
                        bool empty() const;

                        Effects: Returns true if the container is empty.

                        Complexity: Constant.

                        Throws: Nothing.

                      27. -
                        size_type size() const;
                        +
                        size_type size() const;

                        Effects: Returns the number of elements stored in the container.

                        Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                        Throws: Nothing.

                      28. -
                        priority_compare priority_comp() const;
                        +
                        priority_compare priority_comp() const;

                        Effects: Returns the priority_compare object used by the container.

                        Complexity: Constant.

                        Throws: If priority_compare copy-constructor throws.

                      29. -
                        void swap(treap & other);
                        +
                        void swap(treap & other);

                        Effects: Swaps the contents of two treaps.

                        Complexity: Constant.

                        Throws: If the comparison functor's swap call throws.

                      30. template<typename Cloner, typename Disposer> 
                        -  void clone_from(const treap & src, Cloner cloner, Disposer disposer);
                        + void clone_from(const treap & src, Cloner cloner, Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                        @@ -450,7 +450,7 @@
                      31. template<typename Cloner, typename Disposer> 
                        -  void clone_from(treap && src, Cloner cloner, Disposer disposer);
                        + void clone_from(treap && src, Cloner cloner, Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                        Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                        If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                        @@ -458,7 +458,7 @@

                        Throws: If cloner throws or predicate copy assignment throws. Basic guarantee.

                      32. -
                        iterator insert_equal(reference value);
                        +
                        iterator insert_equal(reference value);

                        Requires: value must be an lvalue

                        Effects: Inserts value into the container before the upper bound.

                        Complexity: Average complexity for insert element is at most logarithmic.

                        @@ -466,7 +466,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      33. -
                        iterator insert_equal(const_iterator hint, reference value);
                        +
                        iterator insert_equal(const_iterator hint, reference value);

                        Requires: value must be an lvalue, and "hint" must be a valid iterator.

                        Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

                        Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

                        @@ -474,7 +474,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      34. -
                        template<typename Iterator> void insert_equal(Iterator b, Iterator e);
                        +
                        template<typename Iterator> void insert_equal(Iterator b, Iterator e);

                        Requires: Dereferencing iterator must yield an lvalue of type value_type.

                        Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

                        Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by key_comp().

                        @@ -482,7 +482,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      35. -
                        std::pair< iterator, bool > insert_unique(reference value);
                        +
                        std::pair< iterator, bool > insert_unique(reference value);

                        Requires: value must be an lvalue

                        Effects: Inserts value into the container if the value is not already present.

                        Complexity: Average complexity for insert element is at most logarithmic.

                        @@ -490,7 +490,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      36. -
                        iterator insert_unique(const_iterator hint, reference value);
                        +
                        iterator insert_unique(const_iterator hint, reference value);

                        Requires: value must be an lvalue, and "hint" must be a valid iterator

                        Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

                        Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

                        @@ -498,7 +498,7 @@

                        Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                      37. -
                        template<typename Iterator> void insert_unique(Iterator b, Iterator e);
                        +
                        template<typename Iterator> void insert_unique(Iterator b, Iterator e);

                        Requires: Dereferencing iterator must yield an lvalue of type value_type.

                        Effects: Tries to insert each element of a range into the container.

                        Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by key_comp().

                        @@ -507,7 +507,7 @@
                      38. std::pair< iterator, bool > 
                        -insert_unique_check(const key_type & key, insert_commit_data & commit_data);
                        +insert_unique_check(const key_type & key, insert_commit_data & commit_data);

                        Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                        Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                        Complexity: Average complexity is at most logarithmic.

                        @@ -518,7 +518,7 @@
                      39. std::pair< iterator, bool > 
                        -insert_unique_check(const_iterator hint, const key_type & key, 
                        +insert_unique_check(const_iterator hint, const key_type & key, 
                                             insert_commit_data & commit_data);

                        Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                        Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                        @@ -532,7 +532,7 @@
                        template<typename KeyType, typename KeyTypeKeyCompare, 
                                  typename KeyValuePrioCompare> 
                           std::pair< iterator BOOST_INTRUSIVE_I bool > 
                        -  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                        +  insert_unique_check(const KeyType & key, KeyTypeKeyCompare comp, 
                                               KeyValuePrioCompare key_value_pcomp, 
                                               insert_commit_data & commit_data);

                        Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. key_value_pcomp must be a comparison function that induces the same strict weak ordering as priority_compare. The difference is that key_value_pcomp and comp compare an arbitrary key with the contained values.

                        @@ -548,7 +548,7 @@
                        template<typename KeyType, typename KeyTypeKeyCompare, 
                                  typename KeyValuePrioCompare> 
                           std::pair< iterator, bool > 
                        -  insert_unique_check(const_iterator hint, const KeyType & key, 
                        +  insert_unique_check(const_iterator hint, const KeyType & key, 
                                               KeyTypeKeyCompare comp, 
                                               KeyValuePrioCompare key_value_pcomp, 
                                               insert_commit_data & commit_data);
                        @@ -562,7 +562,7 @@

                        "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

                      40. -
                        iterator insert_unique_commit(reference value, 
                        +
                        iterator insert_unique_commit(reference value, 
                                                       const insert_commit_data & commit_data);

                        Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

                        Effects: Inserts the value in the avl_set using the information obtained from the "commit_data" that a previous "insert_check" filled.

                        @@ -572,7 +572,7 @@

                        Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

                      41. -
                        iterator insert_before(const_iterator pos, reference value);
                        +
                        iterator insert_before(const_iterator pos, reference value);

                        Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                        Effects: Inserts x into the container before "pos".

                        Complexity: Constant time.

                        @@ -580,7 +580,7 @@

                        Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

                      42. -
                        void push_back(reference value);
                        +
                        void push_back(reference value);

                        Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                        Effects: Inserts x into the container in the last position.

                        Complexity: Constant time.

                        @@ -588,7 +588,7 @@

                        Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                      43. -
                        void push_front(reference value);
                        +
                        void push_front(reference value);

                        Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                        Effects: Inserts x into the container in the first position.

                        Complexity: Constant time.

                        @@ -596,21 +596,21 @@

                        Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                      44. -
                        iterator erase(const_iterator i);
                        +
                        iterator erase(const_iterator i);

                        Effects: Erases the element pointed to by i.

                        Complexity: Average complexity for erase element is constant time.

                        Throws: if the internal priority_compare function throws. Strong guarantee.

                        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                      45. -
                        iterator erase(const_iterator b, const_iterator e);
                        +
                        iterator erase(const_iterator b, const_iterator e);

                        Effects: Erases the range pointed to by b end e.

                        Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                        Throws: if the internal priority_compare function throws. Strong guarantee.

                        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                      46. -
                        size_type erase(const key_type & key);
                        +
                        size_type erase(const key_type & key);

                        Effects: Erases all the elements with the given value.

                        Returns: The number of erased elements.

                        Complexity: O(log(size() + N).

                        @@ -619,7 +619,7 @@
                      47. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                        + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                        Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                        Returns: The number of erased elements.

                        Complexity: O(log(size() + N).

                        @@ -628,7 +628,7 @@
                      48. template<typename Disposer> 
                        -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                        + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw.

                        Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                        Complexity: Average complexity for erase element is constant time.

                        @@ -637,7 +637,7 @@
                      49. template<typename Disposer> 
                        -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                        +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                                      Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw.

                        Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                        @@ -647,7 +647,7 @@
                      50. template<typename Disposer> 
                        -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                        + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw.

                        Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                        Returns: The number of erased elements.

                        @@ -657,7 +657,7 @@
                      51. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                        -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                        +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                                       Disposer disposer);

                        Requires: Disposer::operator()(pointer) shouldn't throw.

                        Effects: Erases all the elements with the given key. according to the comparison functor "comp". Disposer::operator()(pointer) is called for the removed elements.

                        @@ -667,79 +667,79 @@

                        Note: Invalidates the iterators to the erased elements.

                      52. -
                        void clear();
                        +
                        void clear();

                        Effects: Erases all of the elements.

                        Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                        Throws: Nothing.

                        Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                      53. -
                        template<typename Disposer> void clear_and_dispose(Disposer disposer);
                        +
                        template<typename Disposer> void clear_and_dispose(Disposer disposer);

                        Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                        Throws: Nothing.

                        Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

                      54. template<typename T, class... Options2> 
                        -  void merge_unique(sgtree< T, Options2...> &);
                        + void merge_unique(sgtree< T, Options2...> &);

                        Requires: "source" container's Options can only can differ in the comparison function from *this.

                        Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                        Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                        Throws: Nothing unless the comparison object throws.

                        Complexity: N log(a.size() + N) (N has the value source.size())

                      55. -
                      56.  while(it! = itend);
                      57. +
                      58.  while(it! = itend);
                      59. template<typename T, class... Options2> 
                        -  void merge_equal(sgtree< T, Options2...> &);
                        + void merge_equal(sgtree< T, Options2...> &);

                        Requires: "source" container's Options can only can differ in the comparison function from *this.

                        Effects: Extracts each element in source and insert it into a using the comparison object of *this.

                        Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                        Throws: Nothing unless the comparison object throws.

                        Complexity: N log(a.size() + N) (N has the value source.size())

                      60. -
                      61.  while(it! = itend);
                      62. +
                      63.  while(it! = itend);
                      64. -
                        template<typename ExtraChecker> void check(ExtraChecker extra_checker) const;
                        +
                        template<typename ExtraChecker> void check(ExtraChecker extra_checker) const;

                        Effects: Asserts the integrity of the container with additional checks provided by the user.

                        Complexity: Linear time.

                        Note: The method might not have effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions.

                      65. -
                        void check() const;
                        +
                        void check() const;

                        Effects: Asserts the integrity of the container.

                        Complexity: Linear time.

                        Note: The method has no effect when asserts are turned off (e.g., with NDEBUG). Experimental function, interface might change in future versions.

                      66. -
                        size_type count(const key_type & key) const;
                        +
                        size_type count(const key_type & key) const;

                        Effects: Returns the number of contained elements with the given value

                        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                        Throws: If key_compare throws.

                      67. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                        Effects: Returns the number of contained elements with the given key

                        Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                        Throws: If comp throws.

                      68. -
                        iterator lower_bound(const key_type & key);
                        +
                        iterator lower_bound(const key_type & key);

                        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                      69. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                        + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                      70. -
                        const_iterator lower_bound(const key_type & key) const;
                        +
                        const_iterator lower_bound(const key_type & key) const;

                        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                        @@ -747,27 +747,27 @@
                      71. template<typename KeyType, typename KeyTypeKeyCompare> 
                           const_iterator 
                        -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                      72. -
                        iterator upper_bound(const key_type & key);
                        +
                        iterator upper_bound(const key_type & key);

                        Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                      73. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                        + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                        Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If comp throws.

                      74. -
                        const_iterator upper_bound(const key_type & key) const;
                        +
                        const_iterator upper_bound(const key_type & key) const;

                        Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                        @@ -775,42 +775,42 @@
                      75. template<typename KeyType, typename KeyTypeKeyCompare> 
                           const_iterator 
                        -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If comp throws.

                      76. -
                        iterator find(const key_type & key);
                        +
                        iterator find(const key_type & key);

                        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                      77. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                        + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If comp throws.

                      78. -
                        const_iterator find(const key_type & key) const;
                        +
                        const_iterator find(const key_type & key) const;

                        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                      79. template<typename KeyType, typename KeyTypeKeyCompare> 
                        -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                        Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                        Complexity: Logarithmic.

                        Throws: If comp throws.

                      80. -
                        std::pair< iterator, iterator > equal_range(const key_type & key);
                        +
                        std::pair< iterator, iterator > equal_range(const key_type & key);

                        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                        @@ -818,7 +818,7 @@
                      81. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< iterator, iterator > 
                        -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                        + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                        Complexity: Logarithmic.

                        @@ -826,7 +826,7 @@
                      82. std::pair< const_iterator, const_iterator > 
                        -equal_range(const key_type & key) const;
                        +equal_range(const key_type & key) const;

                        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                        Complexity: Logarithmic.

                        Throws: If key_compare throws.

                        @@ -834,7 +834,7 @@
                      83. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< const_iterator, const_iterator > 
                        -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                        + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                        Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                        Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                        Complexity: Logarithmic.

                        @@ -842,7 +842,7 @@
                      84. std::pair< iterator, iterator > 
                        -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                        +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                       bool left_closed, bool right_closed);

                        Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                        If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                        @@ -857,7 +857,7 @@
                      85. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< iterator, iterator > 
                        -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                        +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                         KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                        Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                        upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                        @@ -873,7 +873,7 @@
                      86. std::pair< const_iterator, const_iterator > 
                        -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                        +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                       bool left_closed, bool right_closed) const;

                        Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                        If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                        @@ -888,7 +888,7 @@
                      87. template<typename KeyType, typename KeyTypeKeyCompare> 
                           std::pair< const_iterator, const_iterator > 
                        -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                        +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                         KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                        Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                        upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                        @@ -903,28 +903,28 @@

                        Note: Experimental function, the interface might change in future releases.

                      88. -
                        iterator iterator_to(reference value);
                        +
                        iterator iterator_to(reference value);

                        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                        Effects: Returns: a valid iterator i belonging to the set that points to the value

                        Complexity: Constant.

                        Throws: Nothing.

                      89. -
                        const_iterator iterator_to(const_reference value) const;
                        +
                        const_iterator iterator_to(const_reference value) const;

                        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                        Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                        Complexity: Constant.

                        Throws: Nothing.

                      90. -
                        pointer unlink_leftmost_without_rebalance();
                        +
                        pointer unlink_leftmost_without_rebalance();

                        Effects: Unlinks the leftmost node from the container.

                        Complexity: Average complexity is constant time.

                        Throws: Nothing.

                        Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

                      91. -
                        void replace_node(iterator replace_this, reference with_this);
                        +
                        void replace_node(iterator replace_this, reference with_this);

                        Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                        Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                        Complexity: Constant.

                        @@ -932,7 +932,7 @@

                        Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

                      92. -
                        void remove_node(reference value);
                        +
                        void remove_node(reference value);

                        Effects: removes "value" from the container.

                        Throws: Nothing.

                        Complexity: Logarithmic time.

                        @@ -943,38 +943,38 @@

                      -treap public static functions

                      +treap public static functions
                      1. -
                        static treap & container_from_end_iterator(iterator end_iterator);
                        +
                        static treap & container_from_end_iterator(iterator end_iterator);

                        Precondition: end_iterator must be a valid end iterator of the container.

                        Effects: Returns a const reference to the container associated to the end iterator

                        Throws: Nothing.

                        Complexity: Constant.

                      2. -
                        static const treap & container_from_end_iterator(const_iterator end_iterator);
                        +
                        static const treap & container_from_end_iterator(const_iterator end_iterator);

                        Precondition: end_iterator must be a valid end iterator of the container.

                        Effects: Returns a const reference to the container associated to the end iterator

                        Throws: Nothing.

                        Complexity: Constant.

                      3. -
                        static treap & container_from_iterator(iterator it);
                        +
                        static treap & container_from_iterator(iterator it);

                        Precondition: it must be a valid iterator of the container.

                        Effects: Returns a const reference to the container associated to the iterator

                        Throws: Nothing.

                        Complexity: Logarithmic.

                      4. -
                        static const treap & container_from_iterator(const_iterator it);
                        +
                        static const treap & container_from_iterator(const_iterator it);

                        Precondition: it must be a valid iterator of the container.

                        Effects: Returns a const reference to the container associated to the iterator

                        Throws: Nothing.

                        Complexity: Logarithmic.

                      5. -
                        static iterator s_iterator_to(reference value);
                        +
                        static iterator s_iterator_to(reference value);

                        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                        Effects: Returns: a valid iterator i belonging to the set that points to the value

                        Complexity: Constant.

                        @@ -982,7 +982,7 @@

                        Note: This static function is available only if the value traits is stateless.

                      6. -
                        static const_iterator s_iterator_to(const_reference value);
                        +
                        static const_iterator s_iterator_to(const_reference value);

                        Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                        Effects: Returns: a valid iterator i belonging to the set that points to the value

                        Complexity: Constant.

                        @@ -990,7 +990,7 @@

                        Note: This static function is available only if the value traits is stateless.

                      7. -
                        static void init_node(reference value);
                        +
                        static void init_node(reference value);

                        Requires: value shall not be in a container.

                        Effects: init_node puts the hook of a value in a well-known default state.

                        Throws: Nothing.

                        diff --git a/doc/html/boost/intrusive/treap_algorithms.html b/doc/html/boost/intrusive/treap_algorithms.html index 237a15b522..36cdb0db4a 100644 --- a/doc/html/boost/intrusive/treap_algorithms.html +++ b/doc/html/boost/intrusive/treap_algorithms.html @@ -46,98 +46,98 @@ struct insert_commit_data { }; - // public static functions - static node_ptr get_header(const const_node_ptr &); - static node_ptr begin_node(const const_node_ptr &); - static node_ptr end_node(const const_node_ptr &); - static void swap_tree(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &); - static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, + // public static functions + static node_ptr get_header(const const_node_ptr &); + static node_ptr begin_node(const const_node_ptr &); + static node_ptr end_node(const const_node_ptr &); + static void swap_tree(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &); + static void swap_nodes(const node_ptr &, const node_ptr &, const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &); - static void replace_node(const node_ptr &, const node_ptr &, + static void replace_node(const node_ptr &, const node_ptr &); + static void replace_node(const node_ptr &, const node_ptr &, const node_ptr &); template<typename NodePtrPriorityCompare> - static void unlink(const node_ptr &, NodePtrPriorityCompare); - static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); - static bool unique(const const_node_ptr &); - static std::size_t size(const const_node_ptr &); - static node_ptr next_node(const node_ptr &); - static node_ptr prev_node(const node_ptr &); - static void init(const node_ptr &); - static void init_header(const node_ptr &); + static void unlink(const node_ptr &, NodePtrPriorityCompare); + static node_ptr unlink_leftmost_without_rebalance(const node_ptr &); + static bool unique(const const_node_ptr &); + static std::size_t size(const const_node_ptr &); + static node_ptr next_node(const node_ptr &); + static node_ptr prev_node(const node_ptr &); + static void init(const node_ptr &); + static void init_header(const node_ptr &); template<typename NodePtrPriorityCompare> static node_ptr - erase(const node_ptr &, const node_ptr &, NodePtrPriorityCompare); + erase(const node_ptr &, const node_ptr &, NodePtrPriorityCompare); template<typename Cloner, typename Disposer> - static void clone(const const_node_ptr &, const node_ptr &, Cloner, + static void clone(const const_node_ptr &, const node_ptr &, Cloner, Disposer); template<typename Disposer> - static void clear_and_dispose(const node_ptr &, Disposer); + static void clear_and_dispose(const node_ptr &, Disposer); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + lower_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + upper_bound(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static node_ptr - find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + find(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + equal_range(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename KeyType, typename KeyNodePtrCompare> static std::pair< node_ptr, node_ptr > - bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, + bounded_range(const const_node_ptr &, const KeyType &, const KeyType &, KeyNodePtrCompare, bool, bool); template<typename KeyType, typename KeyNodePtrCompare> static std::size_t - count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); + count(const const_node_ptr &, const KeyType &, KeyNodePtrCompare); template<typename NodePtrCompare, typename NodePtrPriorityCompare> static node_ptr - insert_equal_upper_bound(const node_ptr &, const node_ptr &, + insert_equal_upper_bound(const node_ptr &, const node_ptr &, NodePtrCompare, NodePtrPriorityCompare); template<typename NodePtrCompare, typename NodePtrPriorityCompare> static node_ptr - insert_equal_lower_bound(const node_ptr &, const node_ptr &, + insert_equal_lower_bound(const node_ptr &, const node_ptr &, NodePtrCompare, NodePtrPriorityCompare); template<typename NodePtrCompare, typename NodePtrPriorityCompare> static node_ptr - insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, + insert_equal(const node_ptr &, const node_ptr &, const node_ptr &, NodePtrCompare, NodePtrPriorityCompare); template<typename NodePtrPriorityCompare> static node_ptr - insert_before(const node_ptr &, const node_ptr &, const node_ptr &, + insert_before(const node_ptr &, const node_ptr &, const node_ptr &, NodePtrPriorityCompare); template<typename NodePtrPriorityCompare> - static void push_back(const node_ptr &, const node_ptr &, + static void push_back(const node_ptr &, const node_ptr &, NodePtrPriorityCompare); template<typename NodePtrPriorityCompare> - static void push_front(const node_ptr &, const node_ptr &, + static void push_front(const node_ptr &, const node_ptr &, NodePtrPriorityCompare); template<typename KeyType, typename KeyNodePtrCompare, typename KeyNodePtrPrioCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const KeyType &, + insert_unique_check(const const_node_ptr &, const KeyType &, KeyNodePtrCompare, KeyNodePtrPrioCompare, insert_commit_data &); template<typename KeyType, typename KeyNodePtrCompare, typename KeyNodePtrPrioCompare> static std::pair< node_ptr, bool > - insert_unique_check(const const_node_ptr &, const node_ptr &, + insert_unique_check(const const_node_ptr &, const node_ptr &, const KeyType &, KeyNodePtrCompare, KeyNodePtrPrioCompare, insert_commit_data &); - static void insert_unique_commit(const node_ptr &, const node_ptr &, + static void insert_unique_commit(const node_ptr &, const node_ptr &, const insert_commit_data &); template<typename NodePtrCompare, typename KeyNodePtrPrioCompare> - static bool transfer_unique(const node_ptr &, NodePtrCompare, + static bool transfer_unique(const node_ptr &, NodePtrCompare, KeyNodePtrPrioCompare, const node_ptr &, const node_ptr &); template<typename NodePtrCompare, typename KeyNodePtrPrioCompare> - static void transfer_equal(const node_ptr &, NodePtrCompare, + static void transfer_equal(const node_ptr &, NodePtrCompare, KeyNodePtrPrioCompare, const node_ptr &, const node_ptr &); - static bool is_header(const const_node_ptr &); + static bool is_header(const const_node_ptr &); };

                      Description

                      @@ -158,38 +158,38 @@

                      static void set_right(node_ptr n, node_ptr right);

                      -treap_algorithms public static functions

                      +treap_algorithms public static functions
                      1. -
                        static node_ptr get_header(const const_node_ptr & n);
                        +
                        static node_ptr get_header(const const_node_ptr & n);

                        Requires: 'node' is a node of the tree or a header node.

                        Effects: Returns the header of the tree.

                        Complexity: Logarithmic.

                        Throws: Nothing.

                      2. -
                        static node_ptr begin_node(const const_node_ptr & header);
                        +
                        static node_ptr begin_node(const const_node_ptr & header);

                        Requires: 'header' is the header node of a tree.

                        Effects: Returns the first node of the tree, the header if the tree is empty.

                        Complexity: Constant time.

                        Throws: Nothing.

                      3. -
                        static node_ptr end_node(const const_node_ptr & header);
                        +
                        static node_ptr end_node(const const_node_ptr & header);

                        Requires: 'header' is the header node of a tree.

                        Effects: Returns the header of the tree.

                        Complexity: Constant time.

                        Throws: Nothing.

                      4. -
                        static void swap_tree(const node_ptr & header1, const node_ptr & header2);
                        +
                        static void swap_tree(const node_ptr & header1, const node_ptr & header2);

                        Requires: header1 and header2 must be the header nodes of two trees.

                        Effects: Swaps two trees. After the function header1 will contain links to the second tree and header2 will have links to the first tree.

                        Complexity: Constant.

                        Throws: Nothing.

                      5. -
                        static void swap_nodes(const node_ptr & node1, const node_ptr & node2);
                        +
                        static void swap_nodes(const node_ptr & node1, const node_ptr & node2);

                        Requires: node1 and node2 can't be header nodes of two trees.

                        Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

                        Complexity: Logarithmic.

                        @@ -198,7 +198,7 @@

                        Experimental function

                      6. -
                        static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                        +
                        static void swap_nodes(const node_ptr & node1, const node_ptr & header1, 
                                                const node_ptr & node2, const node_ptr & header2);

                        Requires: node1 and node2 can't be header nodes of two trees with header header1 and header2.

                        Effects: Swaps two nodes. After the function node1 will be inserted in the position node2 before the function. node2 will be inserted in the position node1 had before the function.

                        @@ -208,7 +208,7 @@

                        Experimental function

                      7. -
                        static void replace_node(const node_ptr & node_to_be_replaced, 
                        +
                        static void replace_node(const node_ptr & node_to_be_replaced, 
                                                  const node_ptr & new_node);

                        Requires: node_to_be_replaced must be inserted in a tree and new_node must not be inserted in a tree.

                        Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

                        @@ -217,7 +217,7 @@

                        Note: This function will break container ordering invariants if new_node is not equivalent to node_to_be_replaced according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing and comparison is needed. Experimental function

                      8. -
                        static void replace_node(const node_ptr & node_to_be_replaced, 
                        +
                        static void replace_node(const node_ptr & node_to_be_replaced, 
                                                  const node_ptr & header, const node_ptr & new_node);

                        Requires: node_to_be_replaced must be inserted in a tree with header "header" and new_node must not be inserted in a tree.

                        Effects: Replaces node_to_be_replaced in its position in the tree with new_node. The tree does not need to be rebalanced

                        @@ -227,14 +227,14 @@
                      9. template<typename NodePtrPriorityCompare> 
                        -  static void unlink(const node_ptr & node, NodePtrPriorityCompare pcomp);
                        + static void unlink(const node_ptr & node, NodePtrPriorityCompare pcomp);

                        Requires: node is a tree node but not the header.

                        Effects: Unlinks the node and rebalances the tree.

                        Complexity: Average complexity is constant time.

                        Throws: Nothing.

                      10. -
                        static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);
                        +
                        static node_ptr unlink_leftmost_without_rebalance(const node_ptr & header);

                        Requires: header is the header of a tree.

                        Effects: Unlinks the leftmost node from the tree, and updates the header link to the new leftmost node.

                        Complexity: Average complexity is constant time.

                        @@ -242,35 +242,35 @@

                        Notes: This function breaks the tree and the tree can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the tree.

                      11. -
                        static bool unique(const const_node_ptr & node);
                        +
                        static bool unique(const const_node_ptr & node);

                        Requires: 'node' is a node of the tree or a node initialized by init(...) or init_node.

                        Effects: Returns true if the node is initialized by init() or init_node().

                        Complexity: Constant time.

                        Throws: Nothing.

                      12. -
                        static std::size_t size(const const_node_ptr & header);
                        +
                        static std::size_t size(const const_node_ptr & header);

                        Requires: node is a node of the tree but it's not the header.

                        Effects: Returns the number of nodes of the subtree.

                        Complexity: Linear time.

                        Throws: Nothing.

                      13. -
                        static node_ptr next_node(const node_ptr & node);
                        +
                        static node_ptr next_node(const node_ptr & node);

                        Requires: 'node' is a node from the tree except the header.

                        Effects: Returns the next node of the tree.

                        Complexity: Average constant time.

                        Throws: Nothing.

                      14. -
                        static node_ptr prev_node(const node_ptr & node);
                        +
                        static node_ptr prev_node(const node_ptr & node);

                        Requires: 'node' is a node from the tree except the leftmost node.

                        Effects: Returns the previous node of the tree.

                        Complexity: Average constant time.

                        Throws: Nothing.

                      15. -
                        static void init(const node_ptr & node);
                        +
                        static void init(const node_ptr & node);

                        Requires: 'node' must not be part of any tree.

                        Effects: After the function unique(node) == true.

                        Complexity: Constant.

                        @@ -278,7 +278,7 @@

                        Nodes: If node is inserted in a tree, this function corrupts the tree.

                      16. -
                        static void init_header(const node_ptr & header);
                        +
                        static void init_header(const node_ptr & header);

                        Requires: node must not be part of any tree.

                        Effects: Initializes the header to represent an empty tree. unique(header) == true.

                        Complexity: Constant.

                        @@ -288,7 +288,7 @@
                      17. template<typename NodePtrPriorityCompare> 
                           static node_ptr 
                        -  erase(const node_ptr & header, const node_ptr & z, 
                        +  erase(const node_ptr & header, const node_ptr & z, 
                                 NodePtrPriorityCompare pcomp);

                        Requires: header must be the header of a tree, z a node of that tree and z != header.

                        Effects: Erases node "z" from the tree with header "header".

                        @@ -297,7 +297,7 @@
                      18. template<typename Cloner, typename Disposer> 
                        -  static void clone(const const_node_ptr & source_header, 
                        +  static void clone(const const_node_ptr & source_header, 
                                             const node_ptr & target_header, Cloner cloner, 
                                             Disposer disposer);

                        Requires: "cloner" must be a function object taking a node_ptr and returning a new cloned node of it. "disposer" must take a node_ptr and shouldn't throw.

                        @@ -308,7 +308,7 @@
                      19. template<typename Disposer> 
                        -  static void clear_and_dispose(const node_ptr & header, Disposer disposer);
                        + static void clear_and_dispose(const node_ptr & header, Disposer disposer);

                        Requires: "disposer" must be an object function taking a node_ptr parameter and shouldn't throw.

                        Effects: Empties the target tree calling void disposer::operator()(const node_ptr &) for every node of the tree except the header.

                        Complexity: Linear to the number of element of the source tree plus the. number of elements of tree target tree when calling this function.

                        @@ -317,7 +317,7 @@
                      20. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  lower_bound(const const_node_ptr & header, const KeyType & key, 
                        +  lower_bound(const const_node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is not less than "key" according to "comp" or "header" if that element does not exist.

                        @@ -327,7 +327,7 @@
                      21. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  upper_bound(const const_node_ptr & header, const KeyType & key, 
                        +  upper_bound(const const_node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is greater than "key" according to "comp" or "header" if that element does not exist.

                        @@ -337,7 +337,7 @@
                      22. template<typename KeyType, typename KeyNodePtrCompare> 
                           static node_ptr 
                        -  find(const const_node_ptr & header, const KeyType & key, 
                        +  find(const const_node_ptr & header, const KeyType & key, 
                                KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns a node_ptr to the first element that is equivalent to "key" according to "comp" or "header" if that element does not exist.

                        @@ -347,7 +347,7 @@
                      23. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, node_ptr > 
                        -  equal_range(const const_node_ptr & header, const KeyType & key, 
                        +  equal_range(const const_node_ptr & header, const KeyType & key, 
                                       KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns an a pair of node_ptr delimiting a range containing all elements that are equivalent to "key" according to "comp" or an empty range that indicates the position where those elements would be if there are no equivalent elements.

                        @@ -357,7 +357,7 @@
                      24. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::pair< node_ptr, node_ptr > 
                        -  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                        +  bounded_range(const const_node_ptr & header, const KeyType & lower_key, 
                                         const KeyType & upper_key, KeyNodePtrCompare comp, 
                                         bool left_closed, bool right_closed);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs. 'lower_key' must not be greater than 'upper_key' according to 'comp'. If 'lower_key' == 'upper_key', ('left_closed' || 'right_closed') must be true.

                        @@ -372,7 +372,7 @@
                      25. template<typename KeyType, typename KeyNodePtrCompare> 
                           static std::size_t 
                        -  count(const const_node_ptr & header, const KeyType & key, 
                        +  count(const const_node_ptr & header, const KeyType & key, 
                                 KeyNodePtrCompare comp);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. KeyNodePtrCompare can compare KeyType with tree's node_ptrs.

                        Effects: Returns the number of elements with a key equivalent to "key" according to "comp".

                        @@ -382,7 +382,7 @@
                      26. template<typename NodePtrCompare, typename NodePtrPriorityCompare> 
                           static node_ptr 
                        -  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
                        +  insert_equal_upper_bound(const node_ptr & h, const node_ptr & new_node, 
                                                    NodePtrCompare comp, NodePtrPriorityCompare pcomp);

                        Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.

                        Effects: Inserts new_node into the tree before the upper bound according to "comp" and rotates the tree according to "pcomp".

                        @@ -392,7 +392,7 @@
                      27. template<typename NodePtrCompare, typename NodePtrPriorityCompare> 
                           static node_ptr 
                        -  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
                        +  insert_equal_lower_bound(const node_ptr & h, const node_ptr & new_node, 
                                                    NodePtrCompare comp, NodePtrPriorityCompare pcomp);

                        Requires: "h" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.

                        Effects: Inserts new_node into the tree before the upper bound according to "comp" and rotates the tree according to "pcomp".

                        @@ -402,7 +402,7 @@
                      28. template<typename NodePtrCompare, typename NodePtrPriorityCompare> 
                           static node_ptr 
                        -  insert_equal(const node_ptr & h, const node_ptr & hint, 
                        +  insert_equal(const node_ptr & h, const node_ptr & hint, 
                                        const node_ptr & new_node, NodePtrCompare comp, 
                                        NodePtrPriorityCompare pcomp);

                        Requires: "header" must be the header node of a tree. NodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares two node_ptrs. "hint" is node from the "header"'s tree. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.

                        @@ -413,7 +413,7 @@
                      29. template<typename NodePtrPriorityCompare> 
                           static node_ptr 
                        -  insert_before(const node_ptr & header, const node_ptr & pos, 
                        +  insert_before(const node_ptr & header, const node_ptr & pos, 
                                         const node_ptr & new_node, NodePtrPriorityCompare pcomp);

                        Requires: "header" must be the header node of a tree. "pos" must be a valid node of the tree (including header end) node. "pos" must be a node pointing to the successor to "new_node" once inserted according to the order of already inserted nodes. This function does not check "pos" and this precondition must be guaranteed by the caller. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.

                        Effects: Inserts new_node into the tree before "pos" and rotates the tree according to "pcomp".

                        @@ -423,7 +423,7 @@
                      30. template<typename NodePtrPriorityCompare> 
                        -  static void push_back(const node_ptr & header, const node_ptr & new_node, 
                        +  static void push_back(const node_ptr & header, const node_ptr & new_node, 
                                                 NodePtrPriorityCompare pcomp);

                        Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering no less than the greatest inserted key. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.

                        Effects: Inserts x into the tree in the last position and rotates the tree according to "pcomp".

                        @@ -433,7 +433,7 @@
                      31. template<typename NodePtrPriorityCompare> 
                        -  static void push_front(const node_ptr & header, const node_ptr & new_node, 
                        +  static void push_front(const node_ptr & header, const node_ptr & new_node, 
                                                  NodePtrPriorityCompare pcomp);

                        Requires: "header" must be the header node of a tree. "new_node" must be, according to the used ordering, no greater than the lowest inserted key. NodePtrPriorityCompare is a priority function object that induces a strict weak ordering compatible with the one used to create the the tree. NodePtrPriorityCompare compares two node_ptrs.

                        Effects: Inserts x into the tree in the first position and rotates the tree according to "pcomp".

                        @@ -445,7 +445,7 @@
                        template<typename KeyType, typename KeyNodePtrCompare, 
                                  typename KeyNodePtrPrioCompare> 
                           static std::pair< node_ptr, bool > 
                        -  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
                        +  insert_unique_check(const const_node_ptr & header, const KeyType & key, 
                                               KeyNodePtrCompare comp, KeyNodePtrPrioCompare pcomp, 
                                               insert_commit_data & commit_data);

                        Requires: "header" must be the header node of a tree. KeyNodePtrCompare is a function object that induces a strict weak ordering compatible with the strict weak ordering used to create the the tree. NodePtrCompare compares KeyType with a node_ptr.

                        @@ -461,7 +461,7 @@
                        template<typename KeyType, typename KeyNodePtrCompare, 
                                  typename KeyNodePtrPrioCompare> 
                           static std::pair< node_ptr, bool > 
                        -  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
                        +  insert_unique_check(const const_node_ptr & header, const node_ptr & hint, 
                                               const KeyType & key, KeyNodePtrCompare comp, 
                                               KeyNodePtrPrioCompare pcomp, 
                                               insert_commit_data & commit_data);
                        @@ -475,7 +475,7 @@

                        "commit_data" remains valid for a subsequent "insert_unique_commit" only if no more objects are inserted or erased from the set.

                      32. -
                        static void insert_unique_commit(const node_ptr & header, 
                        +
                        static void insert_unique_commit(const node_ptr & header, 
                                                          const node_ptr & new_node, 
                                                          const insert_commit_data & commit_data);

                        Requires: "header" must be the header node of a tree. "commit_data" must have been obtained from a previous call to "insert_unique_check". No objects should have been inserted or erased from the set between the "insert_unique_check" that filled "commit_data" and the call to "insert_commit".

                        @@ -486,7 +486,7 @@
                      33. template<typename NodePtrCompare, typename KeyNodePtrPrioCompare> 
                        -  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                        +  static bool transfer_unique(const node_ptr & header1, NodePtrCompare comp, 
                                                       KeyNodePtrPrioCompare pcomp, 
                                                       const node_ptr & header2, const node_ptr & z);

                        Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

                        @@ -497,7 +497,7 @@
                      34. template<typename NodePtrCompare, typename KeyNodePtrPrioCompare> 
                        -  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                        +  static void transfer_equal(const node_ptr & header1, NodePtrCompare comp, 
                                                      KeyNodePtrPrioCompare pcomp, 
                                                      const node_ptr & header2, const node_ptr & z);

                        Requires: header1 and header2 must be the headers of trees tree1 and tree2 respectively, z a non-header node of tree1. NodePtrCompare is the comparison function of tree1..

                        @@ -506,7 +506,7 @@

                        Throws: If the comparison throws.

                      35. -
                        static bool is_header(const const_node_ptr & p);
                        +
                        static bool is_header(const const_node_ptr & p);

                        Requires: p is a node of a tree.

                        Effects: Returns true if p is the header of the tree.

                        Complexity: Constant.

                        diff --git a/doc/html/boost/intrusive/treap_multiset.html b/doc/html/boost/intrusive/treap_multiset.html index 3c44f0b751..940e828328 100644 --- a/doc/html/boost/intrusive/treap_multiset.html +++ b/doc/html/boost/intrusive/treap_multiset.html @@ -61,129 +61,129 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - treap_multiset(); - explicit treap_multiset(const key_compare &, + treap_multiset(); + explicit treap_multiset(const key_compare &, const priority_compare & = priority_compare(), const value_traits & = value_traits()); template<typename Iterator> - treap_multiset(Iterator, Iterator, const key_compare & = key_compare(), + treap_multiset(Iterator, Iterator, const key_compare & = key_compare(), const priority_compare & = priority_compare(), const value_traits & = value_traits()); - treap_multiset(treap_multiset &&); - treap_multiset & operator=(treap_multiset &&); - ~treap_multiset(); + treap_multiset(treap_multiset &&); + treap_multiset & operator=(treap_multiset &&); + ~treap_multiset(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(treap_multiset &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(treap_multiset &); template<typename Cloner, typename Disposer> - void clone_from(const treap_multiset &, Cloner, Disposer); + void clone_from(const treap_multiset &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(treap_multiset &&, Cloner, Disposer); - iterator top(); - const_iterator top() const; - const_iterator ctop() const; - reverse_iterator rtop(); - const_reverse_iterator rtop() const; - const_reverse_iterator crtop() const; - priority_compare priority_comp() const; - iterator insert(reference); - iterator insert(const_iterator, reference); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + void clone_from(treap_multiset &&, Cloner, Disposer); + iterator top(); + const_iterator top() const; + const_iterator ctop() const; + reverse_iterator rtop(); + const_reverse_iterator rtop() const; + const_reverse_iterator crtop() const; + priority_compare priority_comp() const; + iterator insert(reference); + iterator insert(const_iterator, reference); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - template<class... Options2> void merge(treap_multiset< T, Options2...> &); - template<class... Options2> void merge(treap_set< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + template<class... Options2> void merge(treap_multiset< T, Options2...> &); + template<class... Options2> void merge(treap_set< T, Options2...> &); - // public static functions - static treap_multiset & container_from_end_iterator(iterator); - static const treap_multiset & container_from_end_iterator(const_iterator); - static treap_multiset & container_from_iterator(iterator); - static const treap_multiset & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static treap_multiset & container_from_end_iterator(iterator); + static const treap_multiset & container_from_end_iterator(const_iterator); + static treap_multiset & container_from_iterator(iterator); + static const treap_multiset & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -200,13 +200,13 @@ construct/copy/destruct
                        1. -
                          treap_multiset();
                          +
                          treap_multiset();

                          Effects: Constructs an empty container.

                          Complexity: Constant.

                          Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee.

                        2. -
                          explicit treap_multiset(const key_compare & cmp, 
                          +
                          explicit treap_multiset(const key_compare & cmp, 
                                                   const priority_compare & pcmp = priority_compare(), 
                                                   const value_traits & v_traits = value_traits());

                          Effects: Constructs an empty container.

                          @@ -215,7 +215,7 @@
                        3. template<typename Iterator> 
                          -  treap_multiset(Iterator b, Iterator e, 
                          +  treap_multiset(Iterator b, Iterator e, 
                                            const key_compare & cmp = key_compare(), 
                                            const priority_compare & pcmp = priority_compare(), 
                                            const value_traits & v_traits = value_traits());
                          @@ -225,15 +225,15 @@

                          Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare/priority_compare objects throw. Basic guarantee.

                        4. -
                          treap_multiset(treap_multiset && x);
                          +
                          treap_multiset(treap_multiset && x);

                          Effects: to-do

                        5. -
                          treap_multiset & operator=(treap_multiset && x);
                          +
                          treap_multiset & operator=(treap_multiset && x);

                          Effects: to-do

                        6. -
                          ~treap_multiset();
                          +
                          ~treap_multiset();

                          Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                          Complexity: Linear to elements contained in *this.

                          Throws: Nothing.

                          @@ -242,131 +242,131 @@

                        -treap_multiset public member functions

                        +treap_multiset public member functions
                        1. -
                          iterator begin();
                          +
                          iterator begin();

                          Effects: Returns an iterator pointing to the beginning of the container.

                          Complexity: Constant.

                          Throws: Nothing.

                        2. -
                          const_iterator begin() const;
                          +
                          const_iterator begin() const;

                          Effects: Returns a const_iterator pointing to the beginning of the container.

                          Complexity: Constant.

                          Throws: Nothing.

                        3. -
                          const_iterator cbegin() const;
                          +
                          const_iterator cbegin() const;

                          Effects: Returns a const_iterator pointing to the beginning of the container.

                          Complexity: Constant.

                          Throws: Nothing.

                        4. -
                          iterator end();
                          +
                          iterator end();

                          Effects: Returns an iterator pointing to the end of the container.

                          Complexity: Constant.

                          Throws: Nothing.

                        5. -
                          const_iterator end() const;
                          +
                          const_iterator end() const;

                          Effects: Returns a const_iterator pointing to the end of the container.

                          Complexity: Constant.

                          Throws: Nothing.

                        6. -
                          const_iterator cend() const;
                          +
                          const_iterator cend() const;

                          Effects: Returns a const_iterator pointing to the end of the container.

                          Complexity: Constant.

                          Throws: Nothing.

                        7. -
                          reverse_iterator rbegin();
                          +
                          reverse_iterator rbegin();

                          Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                          Complexity: Constant.

                          Throws: Nothing.

                        8. -
                          const_reverse_iterator rbegin() const;
                          +
                          const_reverse_iterator rbegin() const;

                          Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                          Complexity: Constant.

                          Throws: Nothing.

                        9. -
                          const_reverse_iterator crbegin() const;
                          +
                          const_reverse_iterator crbegin() const;

                          Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                          Complexity: Constant.

                          Throws: Nothing.

                        10. -
                          reverse_iterator rend();
                          +
                          reverse_iterator rend();

                          Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                          Complexity: Constant.

                          Throws: Nothing.

                        11. -
                          const_reverse_iterator rend() const;
                          +
                          const_reverse_iterator rend() const;

                          Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                          Complexity: Constant.

                          Throws: Nothing.

                        12. -
                          const_reverse_iterator crend() const;
                          +
                          const_reverse_iterator crend() const;

                          Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                          Complexity: Constant.

                          Throws: Nothing.

                        13. -
                          iterator root();
                          +
                          iterator root();

                          Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                          Complexity: Constant.

                          Throws: Nothing.

                        14. -
                          const_iterator root() const;
                          +
                          const_iterator root() const;

                          Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                          Complexity: Constant.

                          Throws: Nothing.

                        15. -
                          const_iterator croot() const;
                          +
                          const_iterator croot() const;

                          Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                          Complexity: Constant.

                          Throws: Nothing.

                        16. -
                          key_compare key_comp() const;
                          +
                          key_compare key_comp() const;

                          Effects: Returns the key_compare object used by the container.

                          Complexity: Constant.

                          Throws: If key_compare copy-constructor throws.

                        17. -
                          value_compare value_comp() const;
                          +
                          value_compare value_comp() const;

                          Effects: Returns the value_compare object used by the container.

                          Complexity: Constant.

                          Throws: If value_compare copy-constructor throws.

                        18. -
                          bool empty() const;
                          +
                          bool empty() const;

                          Effects: Returns true if the container is empty.

                          Complexity: Constant.

                          Throws: Nothing.

                        19. -
                          size_type size() const;
                          +
                          size_type size() const;

                          Effects: Returns the number of elements stored in the container.

                          Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                          Throws: Nothing.

                        20. -
                          void swap(treap_multiset & other);
                          +
                          void swap(treap_multiset & other);

                          Effects: Swaps the contents of two treaps.

                          Complexity: Constant.

                          Throws: If the comparison functor's swap call throws.

                        21. template<typename Cloner, typename Disposer> 
                          -  void clone_from(const treap_multiset & src, Cloner cloner, 
                          +  void clone_from(const treap_multiset & src, Cloner cloner, 
                                             Disposer disposer);

                          Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                          Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                          @@ -376,7 +376,7 @@
                        22. template<typename Cloner, typename Disposer> 
                          -  void clone_from(treap_multiset && src, Cloner cloner, Disposer disposer);
                          + void clone_from(treap_multiset && src, Cloner cloner, Disposer disposer);

                          Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                          Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                          If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                          @@ -384,49 +384,49 @@

                          Throws: If cloner throws or predicate copy assignment throws. Basic guarantee.

                        23. -
                          iterator top();
                          +
                          iterator top();

                          Effects: Returns an iterator pointing to the highest priority object of the treap.

                          Complexity: Constant.

                          Throws: Nothing.

                        24. -
                          const_iterator top() const;
                          +
                          const_iterator top() const;

                          Effects: Returns a const_iterator pointing to the highest priority object of the treap..

                          Complexity: Constant.

                          Throws: Nothing.

                        25. -
                          const_iterator ctop() const;
                          +
                          const_iterator ctop() const;

                          Effects: Returns a const_iterator pointing to the highest priority object of the treap..

                          Complexity: Constant.

                          Throws: Nothing.

                        26. -
                          reverse_iterator rtop();
                          +
                          reverse_iterator rtop();

                          Effects: Returns a reverse_iterator pointing to the highest priority object of the reversed treap.

                          Complexity: Constant.

                          Throws: Nothing.

                        27. -
                          const_reverse_iterator rtop() const;
                          +
                          const_reverse_iterator rtop() const;

                          Effects: Returns a const_reverse_iterator pointing to the highest priority objec of the reversed treap.

                          Complexity: Constant.

                          Throws: Nothing.

                        28. -
                          const_reverse_iterator crtop() const;
                          +
                          const_reverse_iterator crtop() const;

                          Effects: Returns a const_reverse_iterator pointing to the highest priority object of the reversed treap.

                          Complexity: Constant.

                          Throws: Nothing.

                        29. -
                          priority_compare priority_comp() const;
                          +
                          priority_compare priority_comp() const;

                          Effects: Returns a const_reverse_iterator pointing to the highest priority object of the reversed treap.

                          Complexity: Constant.

                          Throws: Nothing.

                        30. -
                          iterator insert(reference value);
                          +
                          iterator insert(reference value);

                          Requires: value must be an lvalue

                          Effects: Inserts value into the container before the upper bound.

                          Complexity: Average complexity for insert element is at most logarithmic.

                          @@ -434,7 +434,7 @@

                          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                        31. -
                          iterator insert(const_iterator hint, reference value);
                          +
                          iterator insert(const_iterator hint, reference value);

                          Requires: value must be an lvalue, and "hint" must be a valid iterator.

                          Effects: Inserts x into the container, using "hint" as a hint to where it will be inserted. If "hint" is the upper_bound the insertion takes constant time (two comparisons in the worst case)

                          Complexity: Logarithmic in general, but it is amortized constant time if t is inserted immediately before hint.

                          @@ -442,7 +442,7 @@

                          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                        32. -
                          template<typename Iterator> void insert(Iterator b, Iterator e);
                          +
                          template<typename Iterator> void insert(Iterator b, Iterator e);

                          Requires: Dereferencing iterator must yield an lvalue of type value_type.

                          Effects: Inserts a each element of a range into the container before the upper bound of the key of each element.

                          Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by key_comp().

                          @@ -450,7 +450,7 @@

                          Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                        33. -
                          iterator insert_before(const_iterator pos, reference value);
                          +
                          iterator insert_before(const_iterator pos, reference value);

                          Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                          Effects: Inserts x into the container before "pos".

                          Complexity: Constant time.

                          @@ -458,7 +458,7 @@

                          Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

                        34. -
                          void push_back(reference value);
                          +
                          void push_back(reference value);

                          Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                          Effects: Inserts x into the container in the last position.

                          Complexity: Constant time.

                          @@ -466,7 +466,7 @@

                          Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                        35. -
                          void push_front(reference value);
                          +
                          void push_front(reference value);

                          Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                          Effects: Inserts x into the container in the first position.

                          Complexity: Constant time.

                          @@ -474,21 +474,21 @@

                          Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                        36. -
                          iterator erase(const_iterator i);
                          +
                          iterator erase(const_iterator i);

                          Effects: Erases the element pointed to by i.

                          Complexity: Average complexity for erase element is constant time.

                          Throws: if the internal priority_compare function throws. Strong guarantee.

                          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                        37. -
                          iterator erase(const_iterator b, const_iterator e);
                          +
                          iterator erase(const_iterator b, const_iterator e);

                          Effects: Erases the range pointed to by b end e.

                          Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                          Throws: if the internal priority_compare function throws. Strong guarantee.

                          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                        38. -
                          size_type erase(const key_type & key);
                          +
                          size_type erase(const key_type & key);

                          Effects: Erases all the elements with the given value.

                          Returns: The number of erased elements.

                          Complexity: O(log(size() + N).

                          @@ -497,7 +497,7 @@
                        39. template<typename KeyType, typename KeyTypeKeyCompare> 
                          -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                          + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                          Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                          Returns: The number of erased elements.

                          Complexity: O(log(size() + N).

                          @@ -506,7 +506,7 @@
                        40. template<typename Disposer> 
                          -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                          + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                          Requires: Disposer::operator()(pointer) shouldn't throw.

                          Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                          Complexity: Average complexity for erase element is constant time.

                          @@ -515,7 +515,7 @@
                        41. template<typename Disposer> 
                          -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                          +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                                        Disposer disposer);

                          Requires: Disposer::operator()(pointer) shouldn't throw.

                          Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                          @@ -525,7 +525,7 @@
                        42. template<typename Disposer> 
                          -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                          + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                          Requires: Disposer::operator()(pointer) shouldn't throw.

                          Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                          Returns: The number of erased elements.

                          @@ -535,7 +535,7 @@
                        43. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                          -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                          +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                                         Disposer disposer);

                          Requires: Disposer::operator()(pointer) shouldn't throw.

                          Effects: Erases all the elements with the given key. according to the comparison functor "comp". Disposer::operator()(pointer) is called for the removed elements.

                          @@ -545,47 +545,47 @@

                          Note: Invalidates the iterators to the erased elements.

                        44. -
                          void clear();
                          +
                          void clear();

                          Effects: Erases all of the elements.

                          Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                          Throws: Nothing.

                          Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                        45. -
                          template<typename Disposer> void clear_and_dispose(Disposer disposer);
                          +
                          template<typename Disposer> void clear_and_dispose(Disposer disposer);

                          Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                          Throws: Nothing.

                          Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

                        46. -
                          size_type count(const key_type & key) const;
                          +
                          size_type count(const key_type & key) const;

                          Effects: Returns the number of contained elements with the given value

                          Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                          Throws: If key_compare throws.

                        47. template<typename KeyType, typename KeyTypeKeyCompare> 
                          -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                          + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                          Effects: Returns the number of contained elements with the given key

                          Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                          Throws: If comp throws.

                        48. -
                          iterator lower_bound(const key_type & key);
                          +
                          iterator lower_bound(const key_type & key);

                          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                        49. template<typename KeyType, typename KeyTypeKeyCompare> 
                          -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                          + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                        50. -
                          const_iterator lower_bound(const key_type & key) const;
                          +
                          const_iterator lower_bound(const key_type & key) const;

                          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                          @@ -593,27 +593,27 @@
                        51. template<typename KeyType, typename KeyTypeKeyCompare> 
                             const_iterator 
                          -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                          + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                          Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                        52. -
                          iterator upper_bound(const key_type & key);
                          +
                          iterator upper_bound(const key_type & key);

                          Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                        53. template<typename KeyType, typename KeyTypeKeyCompare> 
                          -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                          + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                          Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                          Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If comp throws.

                        54. -
                          const_iterator upper_bound(const key_type & key) const;
                          +
                          const_iterator upper_bound(const key_type & key) const;

                          Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                          @@ -621,42 +621,42 @@
                        55. template<typename KeyType, typename KeyTypeKeyCompare> 
                             const_iterator 
                          -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                          + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                          Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                          Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If comp throws.

                        56. -
                          iterator find(const key_type & key);
                          +
                          iterator find(const key_type & key);

                          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                        57. template<typename KeyType, typename KeyTypeKeyCompare> 
                          -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                          + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If comp throws.

                        58. -
                          const_iterator find(const key_type & key) const;
                          +
                          const_iterator find(const key_type & key) const;

                          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                        59. template<typename KeyType, typename KeyTypeKeyCompare> 
                          -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                          + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                          Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                          Complexity: Logarithmic.

                          Throws: If comp throws.

                        60. -
                          std::pair< iterator, iterator > equal_range(const key_type & key);
                          +
                          std::pair< iterator, iterator > equal_range(const key_type & key);

                          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                          @@ -664,7 +664,7 @@
                        61. template<typename KeyType, typename KeyTypeKeyCompare> 
                             std::pair< iterator, iterator > 
                          -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                          + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                          Complexity: Logarithmic.

                          @@ -672,7 +672,7 @@
                        62. std::pair< const_iterator, const_iterator > 
                          -equal_range(const key_type & key) const;
                          +equal_range(const key_type & key) const;

                          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                          Complexity: Logarithmic.

                          Throws: If key_compare throws.

                          @@ -680,7 +680,7 @@
                        63. template<typename KeyType, typename KeyTypeKeyCompare> 
                             std::pair< const_iterator, const_iterator > 
                          -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                          + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                          Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                          Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                          Complexity: Logarithmic.

                          @@ -688,7 +688,7 @@
                        64. std::pair< iterator, iterator > 
                          -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                          +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                         bool left_closed, bool right_closed);

                          Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                          If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                          @@ -703,7 +703,7 @@
                        65. template<typename KeyType, typename KeyTypeKeyCompare> 
                             std::pair< iterator, iterator > 
                          -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                          +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                           KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                          Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                          upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                          @@ -719,7 +719,7 @@
                        66. std::pair< const_iterator, const_iterator > 
                          -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                          +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                         bool left_closed, bool right_closed) const;

                          Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                          If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                          @@ -734,7 +734,7 @@
                        67. template<typename KeyType, typename KeyTypeKeyCompare> 
                             std::pair< const_iterator, const_iterator > 
                          -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                          +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                           KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                          Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                          upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                          @@ -749,28 +749,28 @@

                          Note: Experimental function, the interface might change in future releases.

                        68. -
                          iterator iterator_to(reference value);
                          +
                          iterator iterator_to(reference value);

                          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                          Effects: Returns: a valid iterator i belonging to the set that points to the value

                          Complexity: Constant.

                          Throws: Nothing.

                        69. -
                          const_iterator iterator_to(const_reference value) const;
                          +
                          const_iterator iterator_to(const_reference value) const;

                          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                          Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                          Complexity: Constant.

                          Throws: Nothing.

                        70. -
                          pointer unlink_leftmost_without_rebalance();
                          +
                          pointer unlink_leftmost_without_rebalance();

                          Effects: Unlinks the leftmost node from the container.

                          Complexity: Average complexity is constant time.

                          Throws: Nothing.

                          Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

                        71. -
                          void replace_node(iterator replace_this, reference with_this);
                          +
                          void replace_node(iterator replace_this, reference with_this);

                          Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                          Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                          Complexity: Constant.

                          @@ -778,7 +778,7 @@

                          Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

                        72. -
                          void remove_node(reference value);
                          +
                          void remove_node(reference value);

                          Effects: removes "value" from the container.

                          Throws: Nothing.

                          Complexity: Logarithmic time.

                          @@ -787,7 +787,7 @@
                        73. template<class... Options2> 
                          -  void merge(treap_multiset< T, Options2...> & source);
                          + void merge(treap_multiset< T, Options2...> & source);

                          Requires: "source" container's Options can only can differ in the comparison function from *this.

                          Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                          Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                          @@ -795,7 +795,7 @@

                          Complexity: N log(a.size() + N) (N has the value source.size())

                        74. -
                          template<class... Options2> void merge(treap_set< T, Options2...> & source);
                          +
                          template<class... Options2> void merge(treap_set< T, Options2...> & source);

                          Requires: "source" container's Options can only can differ in the comparison function from *this.

                          Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                          Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                          @@ -806,10 +806,10 @@

                        -treap_multiset public static functions

                        +treap_multiset public static functions
                        1. -
                          static treap_multiset & container_from_end_iterator(iterator end_iterator);
                          +
                          static treap_multiset & container_from_end_iterator(iterator end_iterator);

                          Precondition: end_iterator must be a valid end iterator of the container.

                          Effects: Returns a const reference to the container associated to the end iterator

                          Throws: Nothing.

                          @@ -817,28 +817,28 @@
                        2. static const treap_multiset & 
                          -container_from_end_iterator(const_iterator end_iterator);
                          +container_from_end_iterator(const_iterator end_iterator);

                          Precondition: end_iterator must be a valid end iterator of the container.

                          Effects: Returns a const reference to the container associated to the end iterator

                          Throws: Nothing.

                          Complexity: Constant.

                        3. -
                          static treap_multiset & container_from_iterator(iterator it);
                          +
                          static treap_multiset & container_from_iterator(iterator it);

                          Precondition: it must be a valid iterator of the container.

                          Effects: Returns a const reference to the container associated to the iterator

                          Throws: Nothing.

                          Complexity: Logarithmic.

                        4. -
                          static const treap_multiset & container_from_iterator(const_iterator it);
                          +
                          static const treap_multiset & container_from_iterator(const_iterator it);

                          Precondition: it must be a valid iterator of the container.

                          Effects: Returns a const reference to the container associated to the iterator

                          Throws: Nothing.

                          Complexity: Logarithmic.

                        5. -
                          static iterator s_iterator_to(reference value);
                          +
                          static iterator s_iterator_to(reference value);

                          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                          Effects: Returns: a valid iterator i belonging to the set that points to the value

                          Complexity: Constant.

                          @@ -846,7 +846,7 @@

                          Note: This static function is available only if the value traits is stateless.

                        6. -
                          static const_iterator s_iterator_to(const_reference value);
                          +
                          static const_iterator s_iterator_to(const_reference value);

                          Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                          Effects: Returns: a valid iterator i belonging to the set that points to the value

                          Complexity: Constant.

                          @@ -854,7 +854,7 @@

                          Note: This static function is available only if the value traits is stateless.

                        7. -
                          static void init_node(reference value);
                          +
                          static void init_node(reference value);

                          Requires: value shall not be in a container.

                          Effects: init_node puts the hook of a value in a well-known default state.

                          Throws: Nothing.

                          diff --git a/doc/html/boost/intrusive/treap_set.html b/doc/html/boost/intrusive/treap_set.html index 8b1517ba70..718ae888b6 100644 --- a/doc/html/boost/intrusive/treap_set.html +++ b/doc/html/boost/intrusive/treap_set.html @@ -61,144 +61,144 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - treap_set(); - explicit treap_set(const key_compare &, + treap_set(); + explicit treap_set(const key_compare &, const priority_compare & = priority_compare(), const value_traits & = value_traits()); template<typename Iterator> - treap_set(Iterator, Iterator, const key_compare & = key_compare(), + treap_set(Iterator, Iterator, const key_compare & = key_compare(), const priority_compare & = priority_compare(), const value_traits & = value_traits()); - treap_set(treap_set &&); - treap_set & operator=(treap_set &&); - ~treap_set(); + treap_set(treap_set &&); + treap_set & operator=(treap_set &&); + ~treap_set(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - const_reverse_iterator crbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; - const_reverse_iterator crend() const; - iterator root(); - const_iterator root() const; - const_iterator croot() const; - key_compare key_comp() const; - value_compare value_comp() const; - bool empty() const; - size_type size() const; - void swap(treap_set &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + const_reverse_iterator crbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; + const_reverse_iterator crend() const; + iterator root(); + const_iterator root() const; + const_iterator croot() const; + key_compare key_comp() const; + value_compare value_comp() const; + bool empty() const; + size_type size() const; + void swap(treap_set &); template<typename Cloner, typename Disposer> - void clone_from(const treap_set &, Cloner, Disposer); + void clone_from(const treap_set &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(treap_set &&, Cloner, Disposer); - iterator top(); - const_iterator top() const; - const_iterator ctop() const; - reverse_iterator rtop(); - const_reverse_iterator rtop() const; - const_reverse_iterator crtop() const; - priority_compare priority_comp() const; - std::pair< iterator, bool > insert(reference); - iterator insert(const_iterator, reference); + void clone_from(treap_set &&, Cloner, Disposer); + iterator top(); + const_iterator top() const; + const_iterator ctop() const; + reverse_iterator rtop(); + const_reverse_iterator rtop() const; + const_reverse_iterator crtop() const; + priority_compare priority_comp() const; + std::pair< iterator, bool > insert(reference); + iterator insert(const_iterator, reference); std::pair< iterator, bool > - insert_check(const key_type &, insert_commit_data &); + insert_check(const key_type &, insert_commit_data &); std::pair< iterator, bool > - insert_check(const_iterator, const key_type &, insert_commit_data &); + insert_check(const_iterator, const key_type &, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare, typename KeyValuePrioCompare> std::pair< iterator, bool > - insert_check(const KeyType &, KeyTypeKeyCompare, KeyValuePrioCompare, + insert_check(const KeyType &, KeyTypeKeyCompare, KeyValuePrioCompare, insert_commit_data &); template<typename KeyType, typename KeyTypeKeyCompare, typename KeyValuePrioCompare> std::pair< iterator, bool > - insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, + insert_check(const_iterator, const KeyType &, KeyTypeKeyCompare, KeyValuePrioCompare, insert_commit_data &); - template<typename Iterator> void insert(Iterator, Iterator); - iterator insert_commit(reference, const insert_commit_data &); - iterator insert_before(const_iterator, reference); - void push_back(reference); - void push_front(reference); - iterator erase(const_iterator); - iterator erase(const_iterator, const_iterator); - size_type erase(const key_type &); + template<typename Iterator> void insert(Iterator, Iterator); + iterator insert_commit(reference, const insert_commit_data &); + iterator insert_before(const_iterator, reference); + void push_back(reference); + void push_front(reference); + iterator erase(const_iterator); + iterator erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - size_type erase(const KeyType &, KeyTypeKeyCompare); + size_type erase(const KeyType &, KeyTypeKeyCompare); template<typename Disposer> - iterator erase_and_dispose(const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - iterator erase_and_dispose(const_iterator, const_iterator, Disposer); + iterator erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + size_type erase_and_dispose(const KeyType &, KeyTypeKeyCompare, Disposer); + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - size_type count(const KeyType &, KeyTypeKeyCompare) const; - iterator lower_bound(const key_type &); + size_type count(const KeyType &, KeyTypeKeyCompare) const; + iterator lower_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator lower_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator lower_bound(const key_type &) const; + iterator lower_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator lower_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator upper_bound(const key_type &); + const_iterator lower_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator upper_bound(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator upper_bound(const KeyType &, KeyTypeKeyCompare); - const_iterator upper_bound(const key_type &) const; + iterator upper_bound(const KeyType &, KeyTypeKeyCompare); + const_iterator upper_bound(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; - iterator find(const key_type &); + const_iterator upper_bound(const KeyType &, KeyTypeKeyCompare) const; + iterator find(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> - iterator find(const KeyType &, KeyTypeKeyCompare); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyTypeKeyCompare); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> - const_iterator find(const KeyType &, KeyTypeKeyCompare) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyTypeKeyCompare) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyTypeKeyCompare); + equal_range(const KeyType &, KeyTypeKeyCompare); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyTypeKeyCompare) const; + equal_range(const KeyType &, KeyTypeKeyCompare) const; std::pair< iterator, iterator > - bounded_range(const key_type &, const key_type &, bool, bool); + bounded_range(const key_type &, const key_type &, bool, bool); template<typename KeyType, typename KeyTypeKeyCompare> std::pair< iterator, iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool); std::pair< const_iterator, const_iterator > - bounded_range(const key_type &, const key_type &, bool, bool) const; + bounded_range(const key_type &, const key_type &, bool, bool) const; template<typename KeyType, typename KeyTypeKeyCompare> std::pair< const_iterator, const_iterator > - bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, + bounded_range(const KeyType &, const KeyType &, KeyTypeKeyCompare, bool, bool) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - pointer unlink_leftmost_without_rebalance(); - void replace_node(iterator, reference); - void remove_node(reference); - template<class... Options2> void merge(treap_set< T, Options2...> &); - template<class... Options2> void merge(treap_multiset< T, Options2...> &); + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + pointer unlink_leftmost_without_rebalance(); + void replace_node(iterator, reference); + void remove_node(reference); + template<class... Options2> void merge(treap_set< T, Options2...> &); + template<class... Options2> void merge(treap_multiset< T, Options2...> &); - // public static functions - static treap_set & container_from_end_iterator(iterator); - static const treap_set & container_from_end_iterator(const_iterator); - static treap_set & container_from_iterator(iterator); - static const treap_set & container_from_iterator(const_iterator); - static iterator s_iterator_to(reference); - static const_iterator s_iterator_to(const_reference); - static void init_node(reference); + // public static functions + static treap_set & container_from_end_iterator(iterator); + static const treap_set & container_from_end_iterator(const_iterator); + static treap_set & container_from_iterator(iterator); + static const treap_set & container_from_iterator(const_iterator); + static iterator s_iterator_to(reference); + static const_iterator s_iterator_to(const_reference); + static void init_node(reference); // public data members static const bool constant_time_size; @@ -215,13 +215,13 @@ construct/copy/destruct
                          1. -
                            treap_set();
                            +
                            treap_set();

                            Effects: Constructs an empty container.

                            Complexity: Constant.

                            Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor of the value_compare/priority_compare objects throw. Basic guarantee.

                          2. -
                            explicit treap_set(const key_compare & cmp, 
                            +
                            explicit treap_set(const key_compare & cmp, 
                                                const priority_compare & pcmp = priority_compare(), 
                                                const value_traits & v_traits = value_traits());

                            Effects: Constructs an empty container.

                            @@ -230,7 +230,7 @@
                          3. template<typename Iterator> 
                            -  treap_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                            +  treap_set(Iterator b, Iterator e, const key_compare & cmp = key_compare(), 
                                         const priority_compare & pcmp = priority_compare(), 
                                         const value_traits & v_traits = value_traits());

                            Requires: Dereferencing iterator must yield an lvalue of type value_type. cmp must be a comparison function that induces a strict weak ordering.

                            @@ -239,15 +239,15 @@

                            Throws: If value_traits::node_traits::node constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the copy constructor/operator() of the key_compare/priority_compare objects throw. Basic guarantee.

                          4. -
                            treap_set(treap_set && x);
                            +
                            treap_set(treap_set && x);

                            Effects: to-do

                          5. -
                            treap_set & operator=(treap_set && x);
                            +
                            treap_set & operator=(treap_set && x);

                            Effects: to-do

                          6. -
                            ~treap_set();
                            +
                            ~treap_set();

                            Effects: Detaches all elements from this. The objects in the set are not deleted (i.e. no destructors are called), but the nodes according to the value_traits template parameter are reinitialized and thus can be reused.

                            Complexity: Linear to elements contained in *this.

                            Throws: Nothing.

                            @@ -256,131 +256,131 @@

                          -treap_set public member functions

                          +treap_set public member functions
                          1. -
                            iterator begin();
                            +
                            iterator begin();

                            Effects: Returns an iterator pointing to the beginning of the container.

                            Complexity: Constant.

                            Throws: Nothing.

                          2. -
                            const_iterator begin() const;
                            +
                            const_iterator begin() const;

                            Effects: Returns a const_iterator pointing to the beginning of the container.

                            Complexity: Constant.

                            Throws: Nothing.

                          3. -
                            const_iterator cbegin() const;
                            +
                            const_iterator cbegin() const;

                            Effects: Returns a const_iterator pointing to the beginning of the container.

                            Complexity: Constant.

                            Throws: Nothing.

                          4. -
                            iterator end();
                            +
                            iterator end();

                            Effects: Returns an iterator pointing to the end of the container.

                            Complexity: Constant.

                            Throws: Nothing.

                          5. -
                            const_iterator end() const;
                            +
                            const_iterator end() const;

                            Effects: Returns a const_iterator pointing to the end of the container.

                            Complexity: Constant.

                            Throws: Nothing.

                          6. -
                            const_iterator cend() const;
                            +
                            const_iterator cend() const;

                            Effects: Returns a const_iterator pointing to the end of the container.

                            Complexity: Constant.

                            Throws: Nothing.

                          7. -
                            reverse_iterator rbegin();
                            +
                            reverse_iterator rbegin();

                            Effects: Returns a reverse_iterator pointing to the beginning of the reversed container.

                            Complexity: Constant.

                            Throws: Nothing.

                          8. -
                            const_reverse_iterator rbegin() const;
                            +
                            const_reverse_iterator rbegin() const;

                            Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                            Complexity: Constant.

                            Throws: Nothing.

                          9. -
                            const_reverse_iterator crbegin() const;
                            +
                            const_reverse_iterator crbegin() const;

                            Effects: Returns a const_reverse_iterator pointing to the beginning of the reversed container.

                            Complexity: Constant.

                            Throws: Nothing.

                          10. -
                            reverse_iterator rend();
                            +
                            reverse_iterator rend();

                            Effects: Returns a reverse_iterator pointing to the end of the reversed container.

                            Complexity: Constant.

                            Throws: Nothing.

                          11. -
                            const_reverse_iterator rend() const;
                            +
                            const_reverse_iterator rend() const;

                            Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                            Complexity: Constant.

                            Throws: Nothing.

                          12. -
                            const_reverse_iterator crend() const;
                            +
                            const_reverse_iterator crend() const;

                            Effects: Returns a const_reverse_iterator pointing to the end of the reversed container.

                            Complexity: Constant.

                            Throws: Nothing.

                          13. -
                            iterator root();
                            +
                            iterator root();

                            Effects: Returns a iterator pointing to the root node of the container or end() if not present.

                            Complexity: Constant.

                            Throws: Nothing.

                          14. -
                            const_iterator root() const;
                            +
                            const_iterator root() const;

                            Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                            Complexity: Constant.

                            Throws: Nothing.

                          15. -
                            const_iterator croot() const;
                            +
                            const_iterator croot() const;

                            Effects: Returns a const_iterator pointing to the root node of the container or cend() if not present.

                            Complexity: Constant.

                            Throws: Nothing.

                          16. -
                            key_compare key_comp() const;
                            +
                            key_compare key_comp() const;

                            Effects: Returns the key_compare object used by the container.

                            Complexity: Constant.

                            Throws: If key_compare copy-constructor throws.

                          17. -
                            value_compare value_comp() const;
                            +
                            value_compare value_comp() const;

                            Effects: Returns the value_compare object used by the container.

                            Complexity: Constant.

                            Throws: If value_compare copy-constructor throws.

                          18. -
                            bool empty() const;
                            +
                            bool empty() const;

                            Effects: Returns true if the container is empty.

                            Complexity: Constant.

                            Throws: Nothing.

                          19. -
                            size_type size() const;
                            +
                            size_type size() const;

                            Effects: Returns the number of elements stored in the container.

                            Complexity: Linear to elements contained in *this if constant-time size option is disabled. Constant time otherwise.

                            Throws: Nothing.

                          20. -
                            void swap(treap_set & other);
                            +
                            void swap(treap_set & other);

                            Effects: Swaps the contents of two treaps.

                            Complexity: Constant.

                            Throws: If the comparison functor's swap call throws.

                          21. template<typename Cloner, typename Disposer> 
                            -  void clone_from(const treap_set & src, Cloner cloner, Disposer disposer);
                            + void clone_from(const treap_set & src, Cloner cloner, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. Copies the predicate from the source container.

                            If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                            @@ -389,7 +389,7 @@
                          22. template<typename Cloner, typename Disposer> 
                            -  void clone_from(treap_set && src, Cloner cloner, Disposer disposer);
                            + void clone_from(treap_set && src, Cloner cloner, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw. Cloner should yield to nodes equivalent to the original nodes.

                            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. Copies the predicate from the source container.

                            If cloner throws, all cloned elements are unlinked and disposed calling Disposer::operator()(pointer).

                            @@ -397,49 +397,49 @@

                            Throws: If cloner throws or predicate copy assignment throws. Basic guarantee.

                          23. -
                            iterator top();
                            +
                            iterator top();

                            Effects: Returns an iterator pointing to the highest priority object of the treap.

                            Complexity: Constant.

                            Throws: Nothing.

                          24. -
                            const_iterator top() const;
                            +
                            const_iterator top() const;

                            Effects: Returns a const_iterator pointing to the highest priority object of the treap..

                            Complexity: Constant.

                            Throws: Nothing.

                          25. -
                            const_iterator ctop() const;
                            +
                            const_iterator ctop() const;

                            Effects: Returns a const_iterator pointing to the highest priority object of the treap..

                            Complexity: Constant.

                            Throws: Nothing.

                          26. -
                            reverse_iterator rtop();
                            +
                            reverse_iterator rtop();

                            Effects: Returns a reverse_iterator pointing to the highest priority object of the reversed treap.

                            Complexity: Constant.

                            Throws: Nothing.

                          27. -
                            const_reverse_iterator rtop() const;
                            +
                            const_reverse_iterator rtop() const;

                            Effects: Returns a const_reverse_iterator pointing to the highest priority objec of the reversed treap.

                            Complexity: Constant.

                            Throws: Nothing.

                          28. -
                            const_reverse_iterator crtop() const;
                            +
                            const_reverse_iterator crtop() const;

                            Effects: Returns a const_reverse_iterator pointing to the highest priority object of the reversed treap.

                            Complexity: Constant.

                            Throws: Nothing.

                          29. -
                            priority_compare priority_comp() const;
                            +
                            priority_compare priority_comp() const;

                            Effects: Returns a const_reverse_iterator pointing to the highest priority object of the reversed treap.

                            Complexity: Constant.

                            Throws: Nothing.

                          30. -
                            std::pair< iterator, bool > insert(reference value);
                            +
                            std::pair< iterator, bool > insert(reference value);

                            Requires: value must be an lvalue

                            Effects: Inserts value into the container if the value is not already present.

                            Complexity: Average complexity for insert element is at most logarithmic.

                            @@ -447,7 +447,7 @@

                            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                          31. -
                            iterator insert(const_iterator hint, reference value);
                            +
                            iterator insert(const_iterator hint, reference value);

                            Requires: value must be an lvalue, and "hint" must be a valid iterator

                            Effects: Tries to insert x into the container, using "hint" as a hint to where it will be inserted.

                            Complexity: Logarithmic in general, but it is amortized constant time (two comparisons in the worst case) if t is inserted immediately before hint.

                            @@ -456,7 +456,7 @@
                          32. std::pair< iterator, bool > 
                            -insert_check(const key_type & key, insert_commit_data & commit_data);
                            +insert_check(const key_type & key, insert_commit_data & commit_data);

                            Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself.

                            Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                            Complexity: Average complexity is at most logarithmic.

                            @@ -467,7 +467,7 @@
                          33. std::pair< iterator, bool > 
                            -insert_check(const_iterator hint, const key_type & key, 
                            +insert_check(const_iterator hint, const key_type & key, 
                                          insert_commit_data & commit_data);

                            Effects: Checks if a value can be inserted in the container, using a user provided key instead of the value itself, using "hint" as a hint to where it will be inserted.

                            Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                            @@ -481,7 +481,7 @@
                            template<typename KeyType, typename KeyTypeKeyCompare, 
                                      typename KeyValuePrioCompare> 
                               std::pair< iterator, bool > 
                            -  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                            +  insert_check(const KeyType & key, KeyTypeKeyCompare comp, 
                                            KeyValuePrioCompare key_value_pcomp, 
                                            insert_commit_data & commit_data);

                            Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. key_value_pcomp must be a comparison function that induces the same strict weak ordering as priority_compare. The difference is that key_value_pcomp and comp compare an arbitrary key with the contained values.

                            @@ -497,7 +497,7 @@
                            template<typename KeyType, typename KeyTypeKeyCompare, 
                                      typename KeyValuePrioCompare> 
                               std::pair< iterator, bool > 
                            -  insert_check(const_iterator hint, const KeyType & key, 
                            +  insert_check(const_iterator hint, const KeyType & key, 
                                            KeyTypeKeyCompare comp, KeyValuePrioCompare key_value_pcomp, 
                                            insert_commit_data & commit_data);

                            Requires: comp must be a comparison function that induces the same strict weak ordering as key_compare. key_value_pcomp must be a comparison function that induces the same strict weak ordering as priority_compare. The difference is that key_value_pcomp and comp compare an arbitrary key with the contained values.

                            @@ -510,7 +510,7 @@

                            "commit_data" remains valid for a subsequent "insert_commit" only if no more objects are inserted or erased from the container.

                          34. -
                            template<typename Iterator> void insert(Iterator b, Iterator e);
                            +
                            template<typename Iterator> void insert(Iterator b, Iterator e);

                            Requires: Dereferencing iterator must yield an lvalue of type value_type.

                            Effects: Tries to insert each element of a range into the container.

                            Complexity: Insert range is in general O(N * log(N)), where N is the size of the range. However, it is linear in N if the range is already sorted by key_comp().

                            @@ -518,7 +518,7 @@

                            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                          35. -
                            iterator insert_commit(reference value, 
                            +
                            iterator insert_commit(reference value, 
                                                    const insert_commit_data & commit_data);

                            Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the container between the "insert_check" that filled "commit_data" and the call to "insert_commit".

                            Effects: Inserts the value in the avl_set using the information obtained from the "commit_data" that a previous "insert_check" filled.

                            @@ -528,7 +528,7 @@

                            Notes: This function has only sense if a "insert_check" has been previously executed to fill "commit_data". No value should be inserted or erased between the "insert_check" and "insert_commit" calls.

                          36. -
                            iterator insert_before(const_iterator pos, reference value);
                            +
                            iterator insert_before(const_iterator pos, reference value);

                            Requires: value must be an lvalue, "pos" must be a valid iterator (or end) and must be the succesor of value once inserted according to the predicate

                            Effects: Inserts x into the container before "pos".

                            Complexity: Constant time.

                            @@ -536,7 +536,7 @@

                            Note: This function does not check preconditions so if "pos" is not the successor of "value" container ordering invariant will be broken. This is a low-level function to be used only for performance reasons by advanced users.

                          37. -
                            void push_back(reference value);
                            +
                            void push_back(reference value);

                            Requires: value must be an lvalue, and it must be no less than the greatest inserted key

                            Effects: Inserts x into the container in the last position.

                            Complexity: Constant time.

                            @@ -544,7 +544,7 @@

                            Note: This function does not check preconditions so if value is less than the greatest inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                          38. -
                            void push_front(reference value);
                            +
                            void push_front(reference value);

                            Requires: value must be an lvalue, and it must be no greater than the minimum inserted key

                            Effects: Inserts x into the container in the first position.

                            Complexity: Constant time.

                            @@ -552,21 +552,21 @@

                            Note: This function does not check preconditions so if value is greater than the minimum inserted key container ordering invariant will be broken. This function is slightly more efficient than using "insert_before". This is a low-level function to be used only for performance reasons by advanced users.

                          39. -
                            iterator erase(const_iterator i);
                            +
                            iterator erase(const_iterator i);

                            Effects: Erases the element pointed to by i.

                            Complexity: Average complexity for erase element is constant time.

                            Throws: if the internal priority_compare function throws. Strong guarantee.

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          40. -
                            iterator erase(const_iterator b, const_iterator e);
                            +
                            iterator erase(const_iterator b, const_iterator e);

                            Effects: Erases the range pointed to by b end e.

                            Complexity: Average complexity for erase range is at most O(log(size() + N)), where N is the number of elements in the range.

                            Throws: if the internal priority_compare function throws. Strong guarantee.

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          41. -
                            size_type erase(const key_type & key);
                            +
                            size_type erase(const key_type & key);

                            Effects: Erases all the elements with the given value.

                            Returns: The number of erased elements.

                            Complexity: O(log(size() + N).

                            @@ -575,7 +575,7 @@
                          42. template<typename KeyType, typename KeyTypeKeyCompare> 
                            -  size_type erase(const KeyType & key, KeyTypeKeyCompare comp);
                            + size_type erase(const KeyType & key, KeyTypeKeyCompare comp);

                            Effects: Erases all the elements with the given key. according to the comparison functor "comp".

                            Returns: The number of erased elements.

                            Complexity: O(log(size() + N).

                            @@ -584,7 +584,7 @@
                          43. template<typename Disposer> 
                            -  iterator erase_and_dispose(const_iterator i, Disposer disposer);
                            + iterator erase_and_dispose(const_iterator i, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                            Complexity: Average complexity for erase element is constant time.

                            @@ -593,7 +593,7 @@
                          44. template<typename Disposer> 
                            -  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                            +  iterator erase_and_dispose(const_iterator b, const_iterator e, 
                                                          Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                            @@ -603,7 +603,7 @@
                          45. template<typename Disposer> 
                            -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                            + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                            Returns: The number of erased elements.

                            @@ -613,7 +613,7 @@
                          46. template<typename KeyType, typename KeyTypeKeyCompare, typename Disposer> 
                            -  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                            +  size_type erase_and_dispose(const KeyType & key, KeyTypeKeyCompare comp, 
                                                           Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases all the elements with the given key. according to the comparison functor "comp". Disposer::operator()(pointer) is called for the removed elements.

                            @@ -623,47 +623,47 @@

                            Note: Invalidates the iterators to the erased elements.

                          47. -
                            void clear();
                            +
                            void clear();

                            Effects: Erases all of the elements.

                            Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                            Throws: Nothing.

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          48. -
                            template<typename Disposer> void clear_and_dispose(Disposer disposer);
                            +
                            template<typename Disposer> void clear_and_dispose(Disposer disposer);

                            Effects: Erases all of the elements calling disposer(p) for each node to be erased. Complexity: Average complexity for is at most O(log(size() + N)), where N is the number of elements in the container.

                            Throws: Nothing.

                            Note: Invalidates the iterators (but not the references) to the erased elements. Calls N times to disposer functor.

                          49. -
                            size_type count(const key_type & key) const;
                            +
                            size_type count(const key_type & key) const;

                            Effects: Returns the number of contained elements with the given value

                            Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given value.

                            Throws: If key_compare throws.

                          50. template<typename KeyType, typename KeyTypeKeyCompare> 
                            -  size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;
                            + size_type count(const KeyType & key, KeyTypeKeyCompare comp) const;

                            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                            Effects: Returns the number of contained elements with the given key

                            Complexity: Logarithmic to the number of elements contained plus lineal to number of objects with the given key.

                            Throws: If comp throws.

                          51. -
                            iterator lower_bound(const key_type & key);
                            +
                            iterator lower_bound(const key_type & key);

                            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                          52. template<typename KeyType, typename KeyTypeKeyCompare> 
                            -  iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);
                            + iterator lower_bound(const KeyType & key, KeyTypeKeyCompare comp);

                            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                          53. -
                            const_iterator lower_bound(const key_type & key) const;
                            +
                            const_iterator lower_bound(const key_type & key) const;

                            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                            @@ -671,27 +671,27 @@
                          54. template<typename KeyType, typename KeyTypeKeyCompare> 
                               const_iterator 
                            -  lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                            + lower_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                            Effects: Returns an iterator to the first element whose key is not less than k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                          55. -
                            iterator upper_bound(const key_type & key);
                            +
                            iterator upper_bound(const key_type & key);

                            Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                          56. template<typename KeyType, typename KeyTypeKeyCompare> 
                            -  iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);
                            + iterator upper_bound(const KeyType & key, KeyTypeKeyCompare comp);

                            Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                            Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If comp throws.

                          57. -
                            const_iterator upper_bound(const key_type & key) const;
                            +
                            const_iterator upper_bound(const key_type & key) const;

                            Effects: Returns an iterator to the first element whose key is greater than k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                            @@ -699,42 +699,42 @@
                          58. template<typename KeyType, typename KeyTypeKeyCompare> 
                               const_iterator 
                            -  upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;
                            + upper_bound(const KeyType & key, KeyTypeKeyCompare comp) const;

                            Requires: key is a value such that *this is partitioned with respect to !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                            Effects: Returns an iterator to the first element whose key is greater than k according to comp or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If comp throws.

                          59. -
                            iterator find(const key_type & key);
                            +
                            iterator find(const key_type & key);

                            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                          60. template<typename KeyType, typename KeyTypeKeyCompare> 
                            -  iterator find(const KeyType & key, KeyTypeKeyCompare comp);
                            + iterator find(const KeyType & key, KeyTypeKeyCompare comp);

                            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If comp throws.

                          61. -
                            const_iterator find(const key_type & key) const;
                            +
                            const_iterator find(const key_type & key) const;

                            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                          62. template<typename KeyType, typename KeyTypeKeyCompare> 
                            -  const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;
                            + const_iterator find(const KeyType & key, KeyTypeKeyCompare comp) const;

                            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), and nk the key_type of a value_type inserted into *this.

                            Effects: Finds an iterator to the first element whose key is k or end() if that element does not exist.

                            Complexity: Logarithmic.

                            Throws: If comp throws.

                          63. -
                            std::pair< iterator, iterator > equal_range(const key_type & key);
                            +
                            std::pair< iterator, iterator > equal_range(const key_type & key);

                            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                            @@ -742,7 +742,7 @@
                          64. template<typename KeyType, typename KeyTypeKeyCompare> 
                               std::pair< iterator, iterator > 
                            -  equal_range(const KeyType & key, KeyTypeKeyCompare comp);
                            + equal_range(const KeyType & key, KeyTypeKeyCompare comp);

                            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                            Complexity: Logarithmic.

                            @@ -750,7 +750,7 @@
                          65. std::pair< const_iterator, const_iterator > 
                            -equal_range(const key_type & key) const;
                            +equal_range(const key_type & key) const;

                            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                            Complexity: Logarithmic.

                            Throws: If key_compare throws.

                            @@ -758,7 +758,7 @@
                          66. template<typename KeyType, typename KeyTypeKeyCompare> 
                               std::pair< const_iterator, const_iterator > 
                            -  equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;
                            + equal_range(const KeyType & key, KeyTypeKeyCompare comp) const;

                            Requires: key is a value such that *this is partitioned with respect to comp(nk, key) and !comp(key, nk), with comp(nk, key) implying !comp(key, nk), with nk the key_type of a value_type inserted into *this.

                            Effects: Finds a range containing all elements whose key is k or an empty range that indicates the position where those elements would be if they there is no elements with key k.

                            Complexity: Logarithmic.

                            @@ -766,7 +766,7 @@
                          67. std::pair< iterator, iterator > 
                            -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                            +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                           bool left_closed, bool right_closed);

                            Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                            If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                            @@ -781,7 +781,7 @@
                          68. template<typename KeyType, typename KeyTypeKeyCompare> 
                               std::pair< iterator, iterator > 
                            -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                            +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                             KeyTypeKeyCompare comp, bool left_closed, bool right_closed);

                            Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                            upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                            @@ -797,7 +797,7 @@
                          69. std::pair< const_iterator, const_iterator > 
                            -bounded_range(const key_type & lower_key, const key_type & upper_key, 
                            +bounded_range(const key_type & lower_key, const key_type & upper_key, 
                                           bool left_closed, bool right_closed) const;

                            Requires: upper_key shall not precede lower_key according to key_compare. [key_comp()(upper_key, lower_key) shall be false]

                            If lower_key is equivalent to upper_key [!key_comp()(upper_key, lower_key) && !key_comp()(lower_key, upper_key)] then ('left_closed' || 'right_closed') must be false.

                            @@ -812,7 +812,7 @@
                          70. template<typename KeyType, typename KeyTypeKeyCompare> 
                               std::pair< const_iterator, const_iterator > 
                            -  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                            +  bounded_range(const KeyType & lower_key, const KeyType & upper_key, 
                                             KeyTypeKeyCompare comp, bool left_closed, bool right_closed) const;

                            Requires: lower_key is a value such that *this is partitioned with respect to comp(nk, lower_key) if left_closed is true, with respect to !comp(lower_key, nk) otherwise.

                            upper_key is a value such that *this is partitioned with respect to !comp(upper_key, nk) if right_closed is true, with respect to comp(nk, upper_key) otherwise.

                            @@ -827,28 +827,28 @@

                            Note: Experimental function, the interface might change in future releases.

                          71. -
                            iterator iterator_to(reference value);
                            +
                            iterator iterator_to(reference value);

                            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid iterator i belonging to the set that points to the value

                            Complexity: Constant.

                            Throws: Nothing.

                          72. -
                            const_iterator iterator_to(const_reference value) const;
                            +
                            const_iterator iterator_to(const_reference value) const;

                            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid const_iterator i belonging to the set that points to the value

                            Complexity: Constant.

                            Throws: Nothing.

                          73. -
                            pointer unlink_leftmost_without_rebalance();
                            +
                            pointer unlink_leftmost_without_rebalance();

                            Effects: Unlinks the leftmost node from the container.

                            Complexity: Average complexity is constant time.

                            Throws: Nothing.

                            Notes: This function breaks the container and the container can only be used for more unlink_leftmost_without_rebalance calls. This function is normally used to achieve a step by step controlled destruction of the container.

                          74. -
                            void replace_node(iterator replace_this, reference with_this);
                            +
                            void replace_node(iterator replace_this, reference with_this);

                            Requires: replace_this must be a valid iterator of *this and with_this must not be inserted in any container.

                            Effects: Replaces replace_this in its position in the container with with_this. The container does not need to be rebalanced.

                            Complexity: Constant.

                            @@ -856,7 +856,7 @@

                            Note: This function will break container ordering invariants if with_this is not equivalent to *replace_this according to the ordering rules. This function is faster than erasing and inserting the node, since no rebalancing or comparison is needed.

                          75. -
                            void remove_node(reference value);
                            +
                            void remove_node(reference value);

                            Effects: removes "value" from the container.

                            Throws: Nothing.

                            Complexity: Logarithmic time.

                            @@ -864,7 +864,7 @@

                            If the user calls this function with a constant time size container or stateful comparison functor a compilation error will be issued.

                          76. -
                            template<class... Options2> void merge(treap_set< T, Options2...> & source);
                            +
                            template<class... Options2> void merge(treap_set< T, Options2...> & source);

                            Requires: "source" container's Options can only can differ in the comparison function from *this.

                            Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                            Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                            @@ -873,7 +873,7 @@
                          77. template<class... Options2> 
                            -  void merge(treap_multiset< T, Options2...> & source);
                            + void merge(treap_multiset< T, Options2...> & source);

                            Requires: "source" container's Options can only can differ in the comparison function from *this.

                            Effects: Attempts to extract each element in source and insert it into a using the comparison object of *this. If there is an element in a with key equivalent to the key of an element from source, then that element is not extracted from source.

                            Postcondition: Pointers and references to the transferred elements of source refer to those same elements but as members of *this. Iterators referring to the transferred elements will continue to refer to their elements, but they now behave as iterators into *this, not into source.

                            @@ -884,10 +884,10 @@

                          -treap_set public static functions

                          +treap_set public static functions
                          1. -
                            static treap_set & container_from_end_iterator(iterator end_iterator);
                            +
                            static treap_set & container_from_end_iterator(iterator end_iterator);

                            Precondition: end_iterator must be a valid end iterator of the container.

                            Effects: Returns a const reference to the container associated to the end iterator

                            Throws: Nothing.

                            @@ -895,28 +895,28 @@
                          2. static const treap_set & 
                            -container_from_end_iterator(const_iterator end_iterator);
                            +container_from_end_iterator(const_iterator end_iterator);

                            Precondition: end_iterator must be a valid end iterator of the container.

                            Effects: Returns a const reference to the container associated to the end iterator

                            Throws: Nothing.

                            Complexity: Constant.

                          3. -
                            static treap_set & container_from_iterator(iterator it);
                            +
                            static treap_set & container_from_iterator(iterator it);

                            Precondition: it must be a valid iterator of the container.

                            Effects: Returns a const reference to the container associated to the iterator

                            Throws: Nothing.

                            Complexity: Logarithmic.

                          4. -
                            static const treap_set & container_from_iterator(const_iterator it);
                            +
                            static const treap_set & container_from_iterator(const_iterator it);

                            Precondition: it must be a valid iterator of the container.

                            Effects: Returns a const reference to the container associated to the iterator

                            Throws: Nothing.

                            Complexity: Logarithmic.

                          5. -
                            static iterator s_iterator_to(reference value);
                            +
                            static iterator s_iterator_to(reference value);

                            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid iterator i belonging to the set that points to the value

                            Complexity: Constant.

                            @@ -924,7 +924,7 @@

                            Note: This static function is available only if the value traits is stateless.

                          6. -
                            static const_iterator s_iterator_to(const_reference value);
                            +
                            static const_iterator s_iterator_to(const_reference value);

                            Requires: value must be an lvalue and shall be in a set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid iterator i belonging to the set that points to the value

                            Complexity: Constant.

                            @@ -932,7 +932,7 @@

                            Note: This static function is available only if the value traits is stateless.

                          7. -
                            static void init_node(reference value);
                            +
                            static void init_node(reference value);

                            Requires: value shall not be in a container.

                            Effects: init_node puts the hook of a value in a well-known default state.

                            Throws: Nothing.

                            diff --git a/doc/html/boost/intrusive/trivial_value_traits.html b/doc/html/boost/intrusive/trivial_value_traits.html index b641e4442d..3978117562 100644 --- a/doc/html/boost/intrusive/trivial_value_traits.html +++ b/doc/html/boost/intrusive/trivial_value_traits.html @@ -42,11 +42,11 @@ typedef node_ptr pointer; typedef const_node_ptr const_pointer; - // public static functions - static node_ptr to_node_ptr(value_type &); - static const_node_ptr to_node_ptr(const value_type &); - static const pointer & to_value_ptr(const node_ptr &); - static const const_pointer & to_value_ptr(const const_node_ptr &); + // public static functions + static node_ptr to_node_ptr(value_type &); + static const_node_ptr to_node_ptr(const value_type &); + static const pointer & to_value_ptr(const node_ptr &); + static const const_pointer & to_value_ptr(const const_node_ptr &); // public data members static const link_mode_type link_mode; @@ -56,12 +56,12 @@

                            This value traits template is used to create value traits from user defined node traits where value_traits::value_type and node_traits::node should be equal

                            -trivial_value_traits public static functions

                            +trivial_value_traits public static functions
                              -
                            1. static node_ptr to_node_ptr(value_type & value);
                            2. -
                            3. static const_node_ptr to_node_ptr(const value_type & value);
                            4. -
                            5. static const pointer & to_value_ptr(const node_ptr & n);
                            6. -
                            7. static const const_pointer & to_value_ptr(const const_node_ptr & n);
                            8. +
                            9. static node_ptr to_node_ptr(value_type & value);
                            10. +
                            11. static const_node_ptr to_node_ptr(const value_type & value);
                            12. +
                            13. static const pointer & to_value_ptr(const node_ptr & n);
                            14. +
                            15. static const const_pointer & to_value_ptr(const const_node_ptr & n);
                          diff --git a/doc/html/boost/intrusive/unordered_multiset.html b/doc/html/boost/intrusive/unordered_multiset.html index 8c57894697..55485c6346 100644 --- a/doc/html/boost/intrusive/unordered_multiset.html +++ b/doc/html/boost/intrusive/unordered_multiset.html @@ -63,98 +63,98 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - explicit unordered_multiset(const bucket_traits &, + explicit unordered_multiset(const bucket_traits &, const hasher & = hasher(), const key_equal & = key_equal(), const value_traits & = value_traits()); template<typename Iterator> - unordered_multiset(Iterator, Iterator, const bucket_traits &, + unordered_multiset(Iterator, Iterator, const bucket_traits &, const hasher & = hasher(), const key_equal & = key_equal(), const value_traits & = value_traits()); - unordered_multiset(unordered_multiset &&); - unordered_multiset & operator=(unordered_multiset &&); - ~unordered_multiset(); + unordered_multiset(unordered_multiset &&); + unordered_multiset & operator=(unordered_multiset &&); + ~unordered_multiset(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - hasher hash_function() const; - key_equal key_eq() const; - bool empty() const; - size_type size() const; - void swap(unordered_multiset &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + hasher hash_function() const; + key_equal key_eq() const; + bool empty() const; + size_type size() const; + void swap(unordered_multiset &); template<typename Cloner, typename Disposer> - void clone_from(const unordered_multiset &, Cloner, Disposer); + void clone_from(const unordered_multiset &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(unordered_multiset &&, Cloner, Disposer); - iterator insert(reference); - template<typename Iterator> void insert(Iterator, Iterator); - void erase(const_iterator); - void erase(const_iterator, const_iterator); - size_type erase(const key_type &); + void clone_from(unordered_multiset &&, Cloner, Disposer); + iterator insert(reference); + template<typename Iterator> void insert(Iterator, Iterator); + void erase(const_iterator); + void erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> - size_type erase(const KeyType &, KeyHasher, KeyEqual); - template<typename Disposer> void erase_and_dispose(const_iterator, Disposer); + size_type erase(const KeyType &, KeyHasher, KeyEqual); + template<typename Disposer> void erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - void erase_and_dispose(const_iterator, const_iterator, Disposer); + void erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyHasher, typename KeyEqual, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyHasher, KeyEqual, + size_type erase_and_dispose(const KeyType &, KeyHasher, KeyEqual, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> - size_type count(const KeyType &, KeyHasher, KeyEqual) const; - iterator find(const key_type &); + size_type count(const KeyType &, KeyHasher, KeyEqual) const; + iterator find(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> - iterator find(const KeyType &, KeyHasher, KeyEqual); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyHasher, KeyEqual); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> - const_iterator find(const KeyType &, KeyHasher, KeyEqual) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyHasher, KeyEqual) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyHasher, KeyEqual); + equal_range(const KeyType &, KeyHasher, KeyEqual); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyHasher, KeyEqual) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - local_iterator local_iterator_to(reference); - const_local_iterator local_iterator_to(const_reference) const; - size_type bucket_count() const; - size_type bucket_size(size_type) const; - size_type bucket(const key_type &) const; + equal_range(const KeyType &, KeyHasher, KeyEqual) const; + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + local_iterator local_iterator_to(reference); + const_local_iterator local_iterator_to(const_reference) const; + size_type bucket_count() const; + size_type bucket_size(size_type) const; + size_type bucket(const key_type &) const; template<typename KeyType, typename KeyHasher> - size_type bucket(const KeyType &, KeyHasher) const; - bucket_ptr bucket_pointer() const; - local_iterator begin(size_type); - const_local_iterator begin(size_type) const; - const_local_iterator cbegin(size_type) const; - local_iterator end(size_type); - const_local_iterator end(size_type) const; - const_local_iterator cend(size_type) const; - void rehash(const bucket_traits &); - void full_rehash(); - bool incremental_rehash(bool = true); - bool incremental_rehash(const bucket_traits &); - size_type split_count() const; + size_type bucket(const KeyType &, KeyHasher) const; + bucket_ptr bucket_pointer() const; + local_iterator begin(size_type); + const_local_iterator begin(size_type) const; + const_local_iterator cbegin(size_type) const; + local_iterator end(size_type); + const_local_iterator end(size_type) const; + const_local_iterator cend(size_type) const; + void rehash(const bucket_traits &); + void full_rehash(); + bool incremental_rehash(bool = true); + bool incremental_rehash(const bucket_traits &); + size_type split_count() const; - // public static functions - static local_iterator s_local_iterator_to(reference); - static const_local_iterator s_local_iterator_to(const_reference); - static size_type suggested_upper_bucket_count(size_type); - static size_type suggested_lower_bucket_count(size_type); + // public static functions + static local_iterator s_local_iterator_to(reference); + static const_local_iterator s_local_iterator_to(const_reference); + static size_type suggested_upper_bucket_count(size_type); + static size_type suggested_lower_bucket_count(size_type); };

                          Description

                          @@ -173,7 +173,7 @@ construct/copy/destruct
                          1. -
                            explicit unordered_multiset(const bucket_traits & b_traits, 
                            +
                            explicit unordered_multiset(const bucket_traits & b_traits, 
                                                         const hasher & hash_func = hasher(), 
                                                         const key_equal & equal_func = key_equal(), 
                                                         const value_traits & v_traits = value_traits());
                            @@ -185,7 +185,7 @@
                          2. template<typename Iterator> 
                            -  unordered_multiset(Iterator b, Iterator e, const bucket_traits & b_traits, 
                            +  unordered_multiset(Iterator b, Iterator e, const bucket_traits & b_traits, 
                                                  const hasher & hash_func = hasher(), 
                                                  const key_equal & equal_func = key_equal(), 
                                                  const value_traits & v_traits = value_traits());
                            @@ -196,15 +196,15 @@

                            Notes: buckets array must be disposed only after *this is disposed.

                          3. -
                            unordered_multiset(unordered_multiset && x);
                            +
                            unordered_multiset(unordered_multiset && x);

                            Effects: to-do

                          4. -
                            unordered_multiset & operator=(unordered_multiset && x);
                            +
                            unordered_multiset & operator=(unordered_multiset && x);

                            Effects: to-do

                          5. -
                            ~unordered_multiset();
                            +
                            ~unordered_multiset();

                            Effects: Detaches all elements from this. The objects in the unordered_set are not deleted (i.e. no destructors are called).

                            Complexity: Linear to the number of elements in the unordered_set, if it's a safe-mode or auto-unlink value. Otherwise constant.

                            Throws: Nothing.

                            @@ -213,70 +213,70 @@

                          -unordered_multiset public member functions

                          +unordered_multiset public member functions
                          1. -
                            iterator begin();
                            +
                            iterator begin();

                            Effects: Returns an iterator pointing to the beginning of the unordered_set.

                            Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

                            Throws: Nothing.

                          2. -
                            const_iterator begin() const;
                            +
                            const_iterator begin() const;

                            Effects: Returns a const_iterator pointing to the beginning of the unordered_set.

                            Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

                            Throws: Nothing.

                          3. -
                            const_iterator cbegin() const;
                            +
                            const_iterator cbegin() const;

                            Effects: Returns a const_iterator pointing to the beginning of the unordered_set.

                            Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

                            Throws: Nothing.

                          4. -
                            iterator end();
                            +
                            iterator end();

                            Effects: Returns an iterator pointing to the end of the unordered_set.

                            Complexity: Constant.

                            Throws: Nothing.

                          5. -
                            const_iterator end() const;
                            +
                            const_iterator end() const;

                            Effects: Returns a const_iterator pointing to the end of the unordered_set.

                            Complexity: Constant.

                            Throws: Nothing.

                          6. -
                            const_iterator cend() const;
                            +
                            const_iterator cend() const;

                            Effects: Returns a const_iterator pointing to the end of the unordered_set.

                            Complexity: Constant.

                            Throws: Nothing.

                          7. -
                            hasher hash_function() const;
                            +
                            hasher hash_function() const;

                            Effects: Returns the hasher object used by the unordered_set.

                            Complexity: Constant.

                            Throws: If hasher copy-constructor throws.

                          8. -
                            key_equal key_eq() const;
                            +
                            key_equal key_eq() const;

                            Effects: Returns the key_equal object used by the unordered_set.

                            Complexity: Constant.

                            Throws: If key_equal copy-constructor throws.

                          9. -
                            bool empty() const;
                            +
                            bool empty() const;

                            Effects: Returns true if the container is empty.

                            Complexity: if constant-time size and cache_begin options are disabled, average constant time (worst case, with empty() == true: O(this->bucket_count()). Otherwise constant.

                            Throws: Nothing.

                          10. -
                            size_type size() const;
                            +
                            size_type size() const;

                            Effects: Returns the number of elements stored in the unordered_set.

                            Complexity: Linear to elements contained in *this if constant_time_size is false. Constant-time otherwise.

                            Throws: Nothing.

                          11. -
                            void swap(unordered_multiset & other);
                            +
                            void swap(unordered_multiset & other);

                            Requires: buckets must not be being used by any other resource.

                            Effects: Constructs an empty unordered_set, storing a reference to the bucket array and copies of the key_hasher and equal_func functors.

                            Complexity: Constant.

                            @@ -285,7 +285,7 @@
                          12. template<typename Cloner, typename Disposer> 
                            -  void clone_from(const unordered_multiset & src, Cloner cloner, 
                            +  void clone_from(const unordered_multiset & src, Cloner cloner, 
                                               Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw Cloner should yield to nodes that compare equal and produce the same hash than the original node.

                            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. The hash function and the equality predicate are copied from the source.

                            @@ -296,7 +296,7 @@
                          13. template<typename Cloner, typename Disposer> 
                            -  void clone_from(unordered_multiset && src, Cloner cloner, Disposer disposer);
                            + void clone_from(unordered_multiset && src, Cloner cloner, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw Cloner should yield to nodes that compare equal and produce the same hash than the original node.

                            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. The hash function and the equality predicate are copied from the source.

                            If store_hash option is true, this method does not use the hash function.

                            @@ -305,7 +305,7 @@

                            Throws: If cloner or hasher throw or hash or equality predicate copying throws. Basic guarantee.

                          14. -
                            iterator insert(reference value);
                            +
                            iterator insert(reference value);

                            Requires: value must be an lvalue

                            Effects: Inserts the value into the unordered_set.

                            Returns: An iterator to the inserted value.

                            @@ -314,7 +314,7 @@

                            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                          15. -
                            template<typename Iterator> void insert(Iterator b, Iterator e);
                            +
                            template<typename Iterator> void insert(Iterator b, Iterator e);

                            Requires: Dereferencing iterator must yield an lvalue of type value_type.

                            Effects: Equivalent to this->insert_equal(t) for each element in [b, e).

                            Complexity: Average case O(N), where N is distance(b, e). Worst case O(N*this->size()).

                            @@ -322,21 +322,21 @@

                            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                          16. -
                            void erase(const_iterator i);
                            +
                            void erase(const_iterator i);

                            Effects: Erases the element pointed to by i.

                            Complexity: Average case O(1), worst case O(this->size()).

                            Throws: Nothing.

                            Note: Invalidates the iterators (but not the references) to the erased element. No destructors are called.

                          17. -
                            void erase(const_iterator b, const_iterator e);
                            +
                            void erase(const_iterator b, const_iterator e);

                            Effects: Erases the range pointed to by b end e.

                            Complexity: Average case O(distance(b, e)), worst case O(this->size()).

                            Throws: Nothing.

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          18. -
                            size_type erase(const key_type & key);
                            +
                            size_type erase(const key_type & key);

                            Effects: Erases all the elements with the given value.

                            Returns: The number of erased elements.

                            Complexity: Average case O(this->count(value)). Worst case O(this->size()).

                            @@ -345,7 +345,7 @@
                          19. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                            -  size_type erase(const KeyType & key, KeyHasher hash_func, 
                            +  size_type erase(const KeyType & key, KeyHasher hash_func, 
                                               KeyEqual equal_func);

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            @@ -357,7 +357,7 @@
                          20. template<typename Disposer> 
                            -  void erase_and_dispose(const_iterator i, Disposer disposer);
                            + void erase_and_dispose(const_iterator i, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                            Complexity: Average case O(1), worst case O(this->size()).

                            @@ -366,7 +366,7 @@
                          21. template<typename Disposer> 
                            -  void erase_and_dispose(const_iterator b, const_iterator e, 
                            +  void erase_and_dispose(const_iterator b, const_iterator e, 
                                                      Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                            @@ -376,7 +376,7 @@
                          22. template<typename Disposer> 
                            -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                            + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                            Returns: The number of erased elements.

                            @@ -387,7 +387,7 @@
                          23. template<typename KeyType, typename KeyHasher, typename KeyEqual, 
                                      typename Disposer> 
                            -  size_type erase_and_dispose(const KeyType & key, KeyHasher hash_func, 
                            +  size_type erase_and_dispose(const KeyType & key, KeyHasher hash_func, 
                                                           KeyEqual equal_func, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases all the elements with the given key. according to the comparison functor "equal_func". Disposer::operator()(pointer) is called for the removed elements.

                            @@ -397,14 +397,14 @@

                            Note: Invalidates the iterators to the erased elements.

                          24. -
                            void clear();
                            +
                            void clear();

                            Effects: Erases all of the elements.

                            Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                            Throws: Nothing.

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          25. -
                            template<typename Disposer> void clear_and_dispose(Disposer disposer);
                            +
                            template<typename Disposer> void clear_and_dispose(Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases all of the elements.

                            Complexity: Linear to the number of elements on the container. Disposer::operator()(pointer) is called for the removed elements.

                            @@ -412,14 +412,14 @@

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          26. -
                            size_type count(const key_type & key) const;
                            +
                            size_type count(const key_type & key) const;

                            Effects: Returns the number of contained elements with the given value

                            Complexity: Average case O(1), worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                          27. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                            -  size_type count(const KeyType & key, KeyHasher hash_func, 
                            +  size_type count(const KeyType & key, KeyHasher hash_func, 
                                               KeyEqual equal_func) const;

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            @@ -428,14 +428,14 @@

                            Throws: If hash_func or equal throw.

                          28. -
                            iterator find(const key_type & key);
                            +
                            iterator find(const key_type & key);

                            Effects: Finds an iterator to the first element is equal to "value" or end() if that element does not exist.

                            Complexity: Average case O(1), worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                          29. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                            -  iterator find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);
                            + iterator find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            Effects: Finds an iterator to the first element whose key is "key" according to the given hash and equality functor or end() if that element does not exist.

                            @@ -444,7 +444,7 @@

                            Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

                          30. -
                            const_iterator find(const key_type & key) const;
                            +
                            const_iterator find(const key_type & key) const;

                            Effects: Returns the number of contained elements with the given value

                            Complexity: Average case O(1), worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                            @@ -452,7 +452,7 @@
                          31. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                               const_iterator 
                            -  find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;
                            + find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            Effects: Finds an iterator to the first element whose key is "key" according to the given hasher and equality functor or end() if that element does not exist.

                            @@ -461,7 +461,7 @@

                            Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

                          32. -
                            std::pair< iterator, iterator > equal_range(const key_type & key);
                            +
                            std::pair< iterator, iterator > equal_range(const key_type & key);

                            Effects: Returns a range containing all elements with values equivalent to value. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

                            Complexity: Average case O(this->count(value)). Worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                            @@ -469,7 +469,7 @@
                          33. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                               std::pair< iterator, iterator > 
                            -  equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);
                            + equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            Effects: Returns a range containing all elements with equivalent keys. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

                            @@ -479,7 +479,7 @@
                          34. std::pair< const_iterator, const_iterator > 
                            -equal_range(const key_type & key) const;
                            +equal_range(const key_type & key) const;

                            Effects: Returns a range containing all elements with values equivalent to value. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

                            Complexity: Average case O(this->count(value)). Worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                            @@ -487,7 +487,7 @@
                          35. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                               std::pair< const_iterator, const_iterator > 
                            -  equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;
                            + equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            Effects: Returns a range containing all elements with equivalent keys. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

                            @@ -496,48 +496,48 @@

                            Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

                          36. -
                            iterator iterator_to(reference value);
                            +
                            iterator iterator_to(reference value);

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            Throws: If the internal hash function throws.

                          37. -
                            const_iterator iterator_to(const_reference value) const;
                            +
                            const_iterator iterator_to(const_reference value) const;

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid const_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            Throws: If the internal hash function throws.

                          38. -
                            local_iterator local_iterator_to(reference value);
                            +
                            local_iterator local_iterator_to(reference value);

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            Throws: Nothing.

                          39. -
                            const_local_iterator local_iterator_to(const_reference value) const;
                            +
                            const_local_iterator local_iterator_to(const_reference value) const;

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            Throws: Nothing.

                          40. -
                            size_type bucket_count() const;
                            +
                            size_type bucket_count() const;

                            Effects: Returns the number of buckets passed in the constructor or the last rehash function.

                            Complexity: Constant.

                            Throws: Nothing.

                          41. -
                            size_type bucket_size(size_type n) const;
                            +
                            size_type bucket_size(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns the number of elements in the nth bucket.

                            Complexity: Constant.

                            Throws: Nothing.

                          42. -
                            size_type bucket(const key_type & k) const;
                            +
                            size_type bucket(const key_type & k) const;

                            Effects: Returns the index of the bucket in which elements with keys equivalent to k would be found, if any such element existed.

                            Complexity: Constant.

                            Throws: If the hash functor throws.

                            @@ -545,7 +545,7 @@
                          43. template<typename KeyType, typename KeyHasher> 
                            -  size_type bucket(const KeyType & k, KeyHasher hash_func) const;
                            + size_type bucket(const KeyType & k, KeyHasher hash_func) const;

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            Effects: Returns the index of the bucket in which elements with keys equivalent to k would be found, if any such element existed.

                            Complexity: Constant.

                            @@ -553,13 +553,13 @@

                            Note: the return value is in the range [0, this->bucket_count()).

                          44. -
                            bucket_ptr bucket_pointer() const;
                            +
                            bucket_ptr bucket_pointer() const;

                            Effects: Returns the bucket array pointer passed in the constructor or the last rehash function.

                            Complexity: Constant.

                            Throws: Nothing.

                          45. -
                            local_iterator begin(size_type n);
                            +
                            local_iterator begin(size_type n);

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a local_iterator pointing to the beginning of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -567,7 +567,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          46. -
                            const_local_iterator begin(size_type n) const;
                            +
                            const_local_iterator begin(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a const_local_iterator pointing to the beginning of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -575,7 +575,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          47. -
                            const_local_iterator cbegin(size_type n) const;
                            +
                            const_local_iterator cbegin(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a const_local_iterator pointing to the beginning of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -583,7 +583,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          48. -
                            local_iterator end(size_type n);
                            +
                            local_iterator end(size_type n);

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a local_iterator pointing to the end of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -591,7 +591,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          49. -
                            const_local_iterator end(size_type n) const;
                            +
                            const_local_iterator end(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a const_local_iterator pointing to the end of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -599,7 +599,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          50. -
                            const_local_iterator cend(size_type n) const;
                            +
                            const_local_iterator cend(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a const_local_iterator pointing to the end of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -607,7 +607,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          51. -
                            void rehash(const bucket_traits & new_bucket_traits);
                            +
                            void rehash(const bucket_traits & new_bucket_traits);

                            Requires: new_bucket_traits can hold a pointer to a new bucket array or the same as the old bucket array with a different length. new_size is the length of the the array pointed by new_buckets. If new_bucket_traits.bucket_begin() == this->bucket_pointer() new_bucket_traits.bucket_count() can be bigger or smaller than this->bucket_count(). 'new_bucket_traits' copy constructor should not throw.

                            Effects: If new_bucket_traits.bucket_begin() == this->bucket_pointer() is false, unlinks values from the old bucket and inserts then in the new one according to the hash value of values.

                            If new_bucket_traits.bucket_begin() == this->bucket_pointer() is true, the implementations avoids moving values as much as possible.

                            @@ -618,7 +618,7 @@

                            Throws: If the hasher functor throws. Basic guarantee.

                          52. -
                            void full_rehash();
                            +
                            void full_rehash();

                            Note: This function is used when keys from inserted elements are changed (e.g. a language change when key is a string) but uniqueness and hash properties are preserved so a fast full rehash recovers invariants for *this without extracting and reinserting all elements again.

                            Requires: Calls produced to the hash function should not alter the value uniqueness properties of already inserted elements. If hasher(key1) == hasher(key2) was true when elements were inserted, it shall be true during calls produced in the execution of this function.

                            key_equal is not called inside this function so it is assumed that key_equal(value1, value2) should produce the same results as before for inserted elements.

                            @@ -628,7 +628,7 @@

                            Throws: If the hasher functor throws. Basic guarantee.

                          53. -
                            bool incremental_rehash(bool grow = true);
                            +
                            bool incremental_rehash(bool grow = true);

                            Requires:

                            Effects:

                            Complexity:

                            @@ -636,7 +636,7 @@

                            Note: this method is only available if incremental<true> option is activated.

                          54. -
                            bool incremental_rehash(const bucket_traits & new_bucket_traits);
                            +
                            bool incremental_rehash(const bucket_traits & new_bucket_traits);

                            Effects: If new_bucket_traits.bucket_count() is not this->bucket_count()/2 or this->bucket_count()*2, or this->split_bucket() != new_bucket_traits.bucket_count() returns false and does nothing.

                            Otherwise, copy assigns new_bucket_traits to the internal bucket_traits and transfers all the objects from old buckets to the new ones.

                            Complexity: Linear to size().

                            @@ -644,7 +644,7 @@

                            Note: this method is only available if incremental<true> option is activated.

                          55. -
                            size_type split_count() const;
                            +
                            size_type split_count() const;

                            Requires: incremental<> option must be set

                            Effects: returns the current split count

                            Complexity: Constant

                            @@ -654,10 +654,10 @@

                          -unordered_multiset public static functions

                          +unordered_multiset public static functions
                          1. -
                            static local_iterator s_local_iterator_to(reference value);
                            +
                            static local_iterator s_local_iterator_to(reference value);

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            @@ -665,7 +665,7 @@

                            Note: This static function is available only if the value traits is stateless.

                          2. -
                            static const_local_iterator s_local_iterator_to(const_reference value);
                            +
                            static const_local_iterator s_local_iterator_to(const_reference value);

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            @@ -673,13 +673,13 @@

                            Note: This static function is available only if the value traits is stateless.

                          3. -
                            static size_type suggested_upper_bucket_count(size_type n);
                            +
                            static size_type suggested_upper_bucket_count(size_type n);

                            Effects: Returns the nearest new bucket count optimized for the container that is bigger or equal than n. This suggestion can be used to create bucket arrays with a size that will usually improve container's performance. If such value does not exist, the higher possible value is returned.

                            Complexity: Amortized constant time.

                            Throws: Nothing.

                          4. -
                            static size_type suggested_lower_bucket_count(size_type n);
                            +
                            static size_type suggested_lower_bucket_count(size_type n);

                            Effects: Returns the nearest new bucket count optimized for the container that is smaller or equal than n. This suggestion can be used to create bucket arrays with a size that will usually improve container's performance. If such value does not exist, the lowest possible value is returned.

                            Complexity: Amortized constant time.

                            Throws: Nothing.

                            diff --git a/doc/html/boost/intrusive/unordered_set.html b/doc/html/boost/intrusive/unordered_set.html index 3ee84869a4..3d735e8b25 100644 --- a/doc/html/boost/intrusive/unordered_set.html +++ b/doc/html/boost/intrusive/unordered_set.html @@ -64,102 +64,102 @@ typedef implementation_defined::node_algorithms node_algorithms; // construct/copy/destruct - explicit unordered_set(const bucket_traits &, const hasher & = hasher(), + explicit unordered_set(const bucket_traits &, const hasher & = hasher(), const key_equal & = key_equal(), const value_traits & = value_traits()); template<typename Iterator> - unordered_set(Iterator, Iterator, const bucket_traits &, + unordered_set(Iterator, Iterator, const bucket_traits &, const hasher & = hasher(), const key_equal & = key_equal(), const value_traits & = value_traits()); - unordered_set(unordered_set &&); - unordered_set & operator=(unordered_set &&); - ~unordered_set(); + unordered_set(unordered_set &&); + unordered_set & operator=(unordered_set &&); + ~unordered_set(); - // public member functions - iterator begin(); - const_iterator begin() const; - const_iterator cbegin() const; - iterator end(); - const_iterator end() const; - const_iterator cend() const; - hasher hash_function() const; - key_equal key_eq() const; - bool empty() const; - size_type size() const; - void swap(unordered_set &); + // public member functions + iterator begin(); + const_iterator begin() const; + const_iterator cbegin() const; + iterator end(); + const_iterator end() const; + const_iterator cend() const; + hasher hash_function() const; + key_equal key_eq() const; + bool empty() const; + size_type size() const; + void swap(unordered_set &); template<typename Cloner, typename Disposer> - void clone_from(const unordered_set &, Cloner, Disposer); + void clone_from(const unordered_set &, Cloner, Disposer); template<typename Cloner, typename Disposer> - void clone_from(unordered_set &&, Cloner, Disposer); - std::pair< iterator, bool > insert(reference); - template<typename Iterator> void insert(Iterator, Iterator); + void clone_from(unordered_set &&, Cloner, Disposer); + std::pair< iterator, bool > insert(reference); + template<typename Iterator> void insert(Iterator, Iterator); std::pair< iterator, bool > - insert_check(const key_type &, insert_commit_data &); + insert_check(const key_type &, insert_commit_data &); template<typename KeyType, typename KeyHasher, typename KeyEqual> std::pair< iterator, bool > - insert_check(const KeyType &, KeyHasher, KeyEqual, insert_commit_data &); - iterator insert_commit(reference, const insert_commit_data &); - void erase(const_iterator); - void erase(const_iterator, const_iterator); - size_type erase(const key_type &); + insert_check(const KeyType &, KeyHasher, KeyEqual, insert_commit_data &); + iterator insert_commit(reference, const insert_commit_data &); + void erase(const_iterator); + void erase(const_iterator, const_iterator); + size_type erase(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> - size_type erase(const KeyType &, KeyHasher, KeyEqual); - template<typename Disposer> void erase_and_dispose(const_iterator, Disposer); + size_type erase(const KeyType &, KeyHasher, KeyEqual); + template<typename Disposer> void erase_and_dispose(const_iterator, Disposer); template<typename Disposer> - void erase_and_dispose(const_iterator, const_iterator, Disposer); + void erase_and_dispose(const_iterator, const_iterator, Disposer); template<typename Disposer> - size_type erase_and_dispose(const key_type &, Disposer); + size_type erase_and_dispose(const key_type &, Disposer); template<typename KeyType, typename KeyHasher, typename KeyEqual, typename Disposer> - size_type erase_and_dispose(const KeyType &, KeyHasher, KeyEqual, + size_type erase_and_dispose(const KeyType &, KeyHasher, KeyEqual, Disposer); - void clear(); - template<typename Disposer> void clear_and_dispose(Disposer); - size_type count(const key_type &) const; + void clear(); + template<typename Disposer> void clear_and_dispose(Disposer); + size_type count(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> - size_type count(const KeyType &, KeyHasher, KeyEqual) const; - iterator find(const key_type &); + size_type count(const KeyType &, KeyHasher, KeyEqual) const; + iterator find(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> - iterator find(const KeyType &, KeyHasher, KeyEqual); - const_iterator find(const key_type &) const; + iterator find(const KeyType &, KeyHasher, KeyEqual); + const_iterator find(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> - const_iterator find(const KeyType &, KeyHasher, KeyEqual) const; - std::pair< iterator, iterator > equal_range(const key_type &); + const_iterator find(const KeyType &, KeyHasher, KeyEqual) const; + std::pair< iterator, iterator > equal_range(const key_type &); template<typename KeyType, typename KeyHasher, typename KeyEqual> std::pair< iterator, iterator > - equal_range(const KeyType &, KeyHasher, KeyEqual); + equal_range(const KeyType &, KeyHasher, KeyEqual); std::pair< const_iterator, const_iterator > - equal_range(const key_type &) const; + equal_range(const key_type &) const; template<typename KeyType, typename KeyHasher, typename KeyEqual> std::pair< const_iterator, const_iterator > - equal_range(const KeyType &, KeyHasher, KeyEqual) const; - iterator iterator_to(reference); - const_iterator iterator_to(const_reference) const; - local_iterator local_iterator_to(reference); - const_local_iterator local_iterator_to(const_reference) const; - size_type bucket_count() const; - size_type bucket_size(size_type) const; - size_type bucket(const key_type &) const; + equal_range(const KeyType &, KeyHasher, KeyEqual) const; + iterator iterator_to(reference); + const_iterator iterator_to(const_reference) const; + local_iterator local_iterator_to(reference); + const_local_iterator local_iterator_to(const_reference) const; + size_type bucket_count() const; + size_type bucket_size(size_type) const; + size_type bucket(const key_type &) const; template<typename KeyType, typename KeyHasher> - size_type bucket(const KeyType &, KeyHasher) const; - bucket_ptr bucket_pointer() const; - local_iterator begin(size_type); - const_local_iterator begin(size_type) const; - const_local_iterator cbegin(size_type) const; - local_iterator end(size_type); - const_local_iterator end(size_type) const; - const_local_iterator cend(size_type) const; - void rehash(const bucket_traits &); - void full_rehash(); - bool incremental_rehash(bool = true); - bool incremental_rehash(const bucket_traits &); - size_type split_count() const; + size_type bucket(const KeyType &, KeyHasher) const; + bucket_ptr bucket_pointer() const; + local_iterator begin(size_type); + const_local_iterator begin(size_type) const; + const_local_iterator cbegin(size_type) const; + local_iterator end(size_type); + const_local_iterator end(size_type) const; + const_local_iterator cend(size_type) const; + void rehash(const bucket_traits &); + void full_rehash(); + bool incremental_rehash(bool = true); + bool incremental_rehash(const bucket_traits &); + size_type split_count() const; - // public static functions - static local_iterator s_local_iterator_to(reference); - static const_local_iterator s_local_iterator_to(const_reference); - static size_type suggested_upper_bucket_count(size_type); - static size_type suggested_lower_bucket_count(size_type); + // public static functions + static local_iterator s_local_iterator_to(reference); + static const_local_iterator s_local_iterator_to(const_reference); + static size_type suggested_upper_bucket_count(size_type); + static size_type suggested_lower_bucket_count(size_type); };

                          Description

                          @@ -178,7 +178,7 @@ construct/copy/destruct
                          1. -
                            explicit unordered_set(const bucket_traits & b_traits, 
                            +
                            explicit unordered_set(const bucket_traits & b_traits, 
                                                    const hasher & hash_func = hasher(), 
                                                    const key_equal & equal_func = key_equal(), 
                                                    const value_traits & v_traits = value_traits());
                            @@ -190,7 +190,7 @@
                          2. template<typename Iterator> 
                            -  unordered_set(Iterator b, Iterator e, const bucket_traits & b_traits, 
                            +  unordered_set(Iterator b, Iterator e, const bucket_traits & b_traits, 
                                             const hasher & hash_func = hasher(), 
                                             const key_equal & equal_func = key_equal(), 
                                             const value_traits & v_traits = value_traits());
                            @@ -201,17 +201,17 @@

                            Notes: buckets array must be disposed only after *this is disposed.

                          3. -
                            unordered_set(unordered_set && x);
                            +
                            unordered_set(unordered_set && x);

                            Effects: Constructs a container moving resources from another container. Internal value traits, bucket traits, hasher and comparison are move constructed and nodes belonging to x are linked to *this.

                            Complexity: Constant.

                            Throws: If value_traits::node_traits::node's move constructor throws (this does not happen with predefined Boost.Intrusive hooks) or the move constructor of value traits, bucket traits, hasher or comparison throws.

                          4. -
                            unordered_set & operator=(unordered_set && x);
                            +
                            unordered_set & operator=(unordered_set && x);

                            Effects: Equivalent to swap.

                          5. -
                            ~unordered_set();
                            +
                            ~unordered_set();

                            Effects: Detaches all elements from this. The objects in the unordered_set are not deleted (i.e. no destructors are called).

                            Complexity: Linear to the number of elements in the unordered_set, if it's a safe-mode or auto-unlink value. Otherwise constant.

                            Throws: Nothing.

                            @@ -220,70 +220,70 @@

                          -unordered_set public member functions

                          +unordered_set public member functions
                          1. -
                            iterator begin();
                            +
                            iterator begin();

                            Effects: Returns an iterator pointing to the beginning of the unordered_set.

                            Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

                            Throws: Nothing.

                          2. -
                            const_iterator begin() const;
                            +
                            const_iterator begin() const;

                            Effects: Returns a const_iterator pointing to the beginning of the unordered_set.

                            Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

                            Throws: Nothing.

                          3. -
                            const_iterator cbegin() const;
                            +
                            const_iterator cbegin() const;

                            Effects: Returns a const_iterator pointing to the beginning of the unordered_set.

                            Complexity: Amortized constant time. Worst case (empty unordered_set): O(this->bucket_count())

                            Throws: Nothing.

                          4. -
                            iterator end();
                            +
                            iterator end();

                            Effects: Returns an iterator pointing to the end of the unordered_set.

                            Complexity: Constant.

                            Throws: Nothing.

                          5. -
                            const_iterator end() const;
                            +
                            const_iterator end() const;

                            Effects: Returns a const_iterator pointing to the end of the unordered_set.

                            Complexity: Constant.

                            Throws: Nothing.

                          6. -
                            const_iterator cend() const;
                            +
                            const_iterator cend() const;

                            Effects: Returns a const_iterator pointing to the end of the unordered_set.

                            Complexity: Constant.

                            Throws: Nothing.

                          7. -
                            hasher hash_function() const;
                            +
                            hasher hash_function() const;

                            Effects: Returns the hasher object used by the unordered_set.

                            Complexity: Constant.

                            Throws: If hasher copy-constructor throws.

                          8. -
                            key_equal key_eq() const;
                            +
                            key_equal key_eq() const;

                            Effects: Returns the key_equal object used by the unordered_set.

                            Complexity: Constant.

                            Throws: If key_equal copy-constructor throws.

                          9. -
                            bool empty() const;
                            +
                            bool empty() const;

                            Effects: Returns true if the container is empty.

                            Complexity: if constant-time size and cache_begin options are disabled, average constant time (worst case, with empty() == true: O(this->bucket_count()). Otherwise constant.

                            Throws: Nothing.

                          10. -
                            size_type size() const;
                            +
                            size_type size() const;

                            Effects: Returns the number of elements stored in the unordered_set.

                            Complexity: Linear to elements contained in *this if constant_time_size is false. Constant-time otherwise.

                            Throws: Nothing.

                          11. -
                            void swap(unordered_set & other);
                            +
                            void swap(unordered_set & other);

                            Requires: buckets must not be being used by any other resource.

                            Effects: Constructs an empty unordered_set, storing a reference to the bucket array and copies of the key_hasher and equal_func functors.

                            Complexity: Constant.

                            @@ -292,7 +292,7 @@
                          12. template<typename Cloner, typename Disposer> 
                            -  void clone_from(const unordered_set & src, Cloner cloner, Disposer disposer);
                            + void clone_from(const unordered_set & src, Cloner cloner, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw Cloner should yield to nodes that compare equal and produce the same hash than the original node.

                            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(const_reference ) and inserts them on *this. The hash function and the equality predicate are copied from the source.

                            If store_hash option is true, this method does not use the hash function.

                            @@ -302,7 +302,7 @@
                          13. template<typename Cloner, typename Disposer> 
                            -  void clone_from(unordered_set && src, Cloner cloner, Disposer disposer);
                            + void clone_from(unordered_set && src, Cloner cloner, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw Cloner should yield to nodes that compare equal and produce the same hash than the original node.

                            Effects: Erases all the elements from *this calling Disposer::operator()(pointer), clones all the elements from src calling Cloner::operator()(reference) and inserts them on *this. The hash function and the equality predicate are copied from the source.

                            If store_hash option is true, this method does not use the hash function.

                            @@ -311,7 +311,7 @@

                            Throws: If cloner or hasher throw or hash or equality predicate copying throws. Basic guarantee.

                          14. -
                            std::pair< iterator, bool > insert(reference value);
                            +
                            std::pair< iterator, bool > insert(reference value);

                            Requires: value must be an lvalue

                            Effects: Tries to inserts value into the unordered_set.

                            Returns: If the value is not already present inserts it and returns a pair containing the iterator to the new value and true. If there is an equivalent value returns a pair containing an iterator to the already present value and false.

                            @@ -320,7 +320,7 @@

                            Note: Does not affect the validity of iterators and references. No copy-constructors are called.

                          15. -
                            template<typename Iterator> void insert(Iterator b, Iterator e);
                            +
                            template<typename Iterator> void insert(Iterator b, Iterator e);

                            Requires: Dereferencing iterator must yield an lvalue of type value_type.

                            Effects: Equivalent to this->insert_unique(t) for each element in [b, e).

                            Complexity: Average case O(N), where N is distance(b, e). Worst case O(N*this->size()).

                            @@ -329,7 +329,7 @@
                          16. std::pair< iterator, bool > 
                            -insert_check(const key_type & key, insert_commit_data & commit_data);
                            +insert_check(const key_type & key, insert_commit_data & commit_data);

                            Effects: Checks if a value can be inserted in the unordered_set, using a user provided key instead of the value itself.

                            Returns: If there is an equivalent value returns a pair containing an iterator to the already present value and false. If the value can be inserted returns true in the returned pair boolean and fills "commit_data" that is meant to be used with the "insert_commit" function.

                            Complexity: Average case O(1), worst case O(this->size()).

                            @@ -342,7 +342,7 @@
                          17. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                               std::pair< iterator, bool > 
                            -  insert_check(const KeyType & key, KeyHasher hasher, 
                            +  insert_check(const KeyType & key, KeyHasher hasher, 
                                            KeyEqual key_value_equal, insert_commit_data & commit_data);

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            @@ -356,7 +356,7 @@

                            After a successful rehashing insert_commit_data remains valid.

                          18. -
                            iterator insert_commit(reference value, 
                            +
                            iterator insert_commit(reference value, 
                                                    const insert_commit_data & commit_data);

                            Requires: value must be an lvalue of type value_type. commit_data must have been obtained from a previous call to "insert_check". No objects should have been inserted or erased from the unordered_set between the "insert_check" that filled "commit_data" and the call to "insert_commit".

                            Effects: Inserts the value in the unordered_set using the information obtained from the "commit_data" that a previous "insert_check" filled.

                            @@ -367,21 +367,21 @@

                            After a successful rehashing insert_commit_data remains valid.

                          19. -
                            void erase(const_iterator i);
                            +
                            void erase(const_iterator i);

                            Effects: Erases the element pointed to by i.

                            Complexity: Average case O(1), worst case O(this->size()).

                            Throws: Nothing.

                            Note: Invalidates the iterators (but not the references) to the erased element. No destructors are called.

                          20. -
                            void erase(const_iterator b, const_iterator e);
                            +
                            void erase(const_iterator b, const_iterator e);

                            Effects: Erases the range pointed to by b end e.

                            Complexity: Average case O(distance(b, e)), worst case O(this->size()).

                            Throws: Nothing.

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          21. -
                            size_type erase(const key_type & key);
                            +
                            size_type erase(const key_type & key);

                            Effects: Erases all the elements with the given value.

                            Returns: The number of erased elements.

                            Complexity: Average case O(this->count(value)). Worst case O(this->size()).

                            @@ -390,7 +390,7 @@
                          22. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                            -  size_type erase(const KeyType & key, KeyHasher hash_func, 
                            +  size_type erase(const KeyType & key, KeyHasher hash_func, 
                                               KeyEqual equal_func);

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            @@ -402,7 +402,7 @@
                          23. template<typename Disposer> 
                            -  void erase_and_dispose(const_iterator i, Disposer disposer);
                            + void erase_and_dispose(const_iterator i, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases the element pointed to by i. Disposer::operator()(pointer) is called for the removed element.

                            Complexity: Average case O(1), worst case O(this->size()).

                            @@ -411,7 +411,7 @@
                          24. template<typename Disposer> 
                            -  void erase_and_dispose(const_iterator b, const_iterator e, 
                            +  void erase_and_dispose(const_iterator b, const_iterator e, 
                                                      Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases the range pointed to by b end e. Disposer::operator()(pointer) is called for the removed elements.

                            @@ -421,7 +421,7 @@
                          25. template<typename Disposer> 
                            -  size_type erase_and_dispose(const key_type & key, Disposer disposer);
                            + size_type erase_and_dispose(const key_type & key, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases all the elements with the given value. Disposer::operator()(pointer) is called for the removed elements.

                            Returns: The number of erased elements.

                            @@ -432,7 +432,7 @@
                          26. template<typename KeyType, typename KeyHasher, typename KeyEqual, 
                                      typename Disposer> 
                            -  size_type erase_and_dispose(const KeyType & key, KeyHasher hash_func, 
                            +  size_type erase_and_dispose(const KeyType & key, KeyHasher hash_func, 
                                                           KeyEqual equal_func, Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases all the elements with the given key. according to the comparison functor "equal_func". Disposer::operator()(pointer) is called for the removed elements.

                            @@ -442,14 +442,14 @@

                            Note: Invalidates the iterators to the erased elements.

                          27. -
                            void clear();
                            +
                            void clear();

                            Effects: Erases all of the elements.

                            Complexity: Linear to the number of elements on the container. if it's a safe-mode or auto-unlink value_type. Constant time otherwise.

                            Throws: Nothing.

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          28. -
                            template<typename Disposer> void clear_and_dispose(Disposer disposer);
                            +
                            template<typename Disposer> void clear_and_dispose(Disposer disposer);

                            Requires: Disposer::operator()(pointer) shouldn't throw.

                            Effects: Erases all of the elements.

                            Complexity: Linear to the number of elements on the container. Disposer::operator()(pointer) is called for the removed elements.

                            @@ -457,14 +457,14 @@

                            Note: Invalidates the iterators (but not the references) to the erased elements. No destructors are called.

                          29. -
                            size_type count(const key_type & key) const;
                            +
                            size_type count(const key_type & key) const;

                            Effects: Returns the number of contained elements with the given value

                            Complexity: Average case O(1), worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                          30. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                            -  size_type count(const KeyType & key, KeyHasher hash_func, 
                            +  size_type count(const KeyType & key, KeyHasher hash_func, 
                                               KeyEqual equal_func) const;

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            @@ -473,14 +473,14 @@

                            Throws: If hash_func or equal throw.

                          31. -
                            iterator find(const key_type & key);
                            +
                            iterator find(const key_type & key);

                            Effects: Finds an iterator to the first element is equal to "value" or end() if that element does not exist.

                            Complexity: Average case O(1), worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                          32. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                            -  iterator find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);
                            + iterator find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            Effects: Finds an iterator to the first element whose key is "key" according to the given hash and equality functor or end() if that element does not exist.

                            @@ -489,7 +489,7 @@

                            Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

                          33. -
                            const_iterator find(const key_type & key) const;
                            +
                            const_iterator find(const key_type & key) const;

                            Effects: Returns the number of contained elements with the given value

                            Complexity: Average case O(1), worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                            @@ -497,7 +497,7 @@
                          34. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                               const_iterator 
                            -  find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;
                            + find(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            Effects: Finds an iterator to the first element whose key is "key" according to the given hasher and equality functor or end() if that element does not exist.

                            @@ -506,7 +506,7 @@

                            Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

                          35. -
                            std::pair< iterator, iterator > equal_range(const key_type & key);
                            +
                            std::pair< iterator, iterator > equal_range(const key_type & key);

                            Effects: Returns a range containing all elements with values equivalent to value. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

                            Complexity: Average case O(this->count(value)). Worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                            @@ -514,7 +514,7 @@
                          36. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                               std::pair< iterator, iterator > 
                            -  equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);
                            + equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func);

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            Effects: Returns a range containing all elements with equivalent keys. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

                            @@ -524,7 +524,7 @@
                          37. std::pair< const_iterator, const_iterator > 
                            -equal_range(const key_type & key) const;
                            +equal_range(const key_type & key) const;

                            Effects: Returns a range containing all elements with values equivalent to value. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

                            Complexity: Average case O(this->count(value)). Worst case O(this->size()).

                            Throws: If the internal hasher or the equality functor throws.

                            @@ -532,7 +532,7 @@
                          38. template<typename KeyType, typename KeyHasher, typename KeyEqual> 
                               std::pair< const_iterator, const_iterator > 
                            -  equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;
                            + equal_range(const KeyType & key, KeyHasher hash_func, KeyEqual equal_func) const;

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            "equal_func" must be a equality function that induces the same equality as key_equal. The difference is that "equal_func" compares an arbitrary key with the contained values.

                            Effects: Returns a range containing all elements with equivalent keys. Returns std::make_pair(this->end(), this->end()) if no such elements exist.

                            @@ -541,48 +541,48 @@

                            Note: This function is used when constructing a value_type is expensive and the value_type can be compared with a cheaper key type. Usually this key is part of the value_type.

                          39. -
                            iterator iterator_to(reference value);
                            +
                            iterator iterator_to(reference value);

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            Throws: If the internal hash function throws.

                          40. -
                            const_iterator iterator_to(const_reference value) const;
                            +
                            const_iterator iterator_to(const_reference value) const;

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid const_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            Throws: If the internal hash function throws.

                          41. -
                            local_iterator local_iterator_to(reference value);
                            +
                            local_iterator local_iterator_to(reference value);

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            Throws: Nothing.

                          42. -
                            const_local_iterator local_iterator_to(const_reference value) const;
                            +
                            const_local_iterator local_iterator_to(const_reference value) const;

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            Throws: Nothing.

                          43. -
                            size_type bucket_count() const;
                            +
                            size_type bucket_count() const;

                            Effects: Returns the number of buckets passed in the constructor or the last rehash function.

                            Complexity: Constant.

                            Throws: Nothing.

                          44. -
                            size_type bucket_size(size_type n) const;
                            +
                            size_type bucket_size(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns the number of elements in the nth bucket.

                            Complexity: Constant.

                            Throws: Nothing.

                          45. -
                            size_type bucket(const key_type & k) const;
                            +
                            size_type bucket(const key_type & k) const;

                            Effects: Returns the index of the bucket in which elements with keys equivalent to k would be found, if any such element existed.

                            Complexity: Constant.

                            Throws: If the hash functor throws.

                            @@ -590,7 +590,7 @@
                          46. template<typename KeyType, typename KeyHasher> 
                            -  size_type bucket(const KeyType & k, KeyHasher hash_func) const;
                            + size_type bucket(const KeyType & k, KeyHasher hash_func) const;

                            Requires: "hash_func" must be a hash function that induces the same hash values as the stored hasher. The difference is that "hash_func" hashes the given key instead of the value_type.

                            Effects: Returns the index of the bucket in which elements with keys equivalent to k would be found, if any such element existed.

                            Complexity: Constant.

                            @@ -598,13 +598,13 @@

                            Note: the return value is in the range [0, this->bucket_count()).

                          47. -
                            bucket_ptr bucket_pointer() const;
                            +
                            bucket_ptr bucket_pointer() const;

                            Effects: Returns the bucket array pointer passed in the constructor or the last rehash function.

                            Complexity: Constant.

                            Throws: Nothing.

                          48. -
                            local_iterator begin(size_type n);
                            +
                            local_iterator begin(size_type n);

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a local_iterator pointing to the beginning of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -612,7 +612,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          49. -
                            const_local_iterator begin(size_type n) const;
                            +
                            const_local_iterator begin(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a const_local_iterator pointing to the beginning of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -620,7 +620,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          50. -
                            const_local_iterator cbegin(size_type n) const;
                            +
                            const_local_iterator cbegin(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a const_local_iterator pointing to the beginning of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -628,7 +628,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          51. -
                            local_iterator end(size_type n);
                            +
                            local_iterator end(size_type n);

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a local_iterator pointing to the end of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -636,7 +636,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          52. -
                            const_local_iterator end(size_type n) const;
                            +
                            const_local_iterator end(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a const_local_iterator pointing to the end of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -644,7 +644,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          53. -
                            const_local_iterator cend(size_type n) const;
                            +
                            const_local_iterator cend(size_type n) const;

                            Requires: n is in the range [0, this->bucket_count()).

                            Effects: Returns a const_local_iterator pointing to the end of the sequence stored in the bucket n.

                            Complexity: Constant.

                            @@ -652,7 +652,7 @@

                            Note: [this->begin(n), this->end(n)) is a valid range containing all of the elements in the nth bucket.

                          54. -
                            void rehash(const bucket_traits & new_bucket_traits);
                            +
                            void rehash(const bucket_traits & new_bucket_traits);

                            Requires: new_bucket_traits can hold a pointer to a new bucket array or the same as the old bucket array with a different length. new_size is the length of the the array pointed by new_buckets. If new_bucket_traits.bucket_begin() == this->bucket_pointer() new_bucket_traits.bucket_count() can be bigger or smaller than this->bucket_count(). 'new_bucket_traits' copy constructor should not throw.

                            Effects: If new_bucket_traits.bucket_begin() == this->bucket_pointer() is false, unlinks values from the old bucket and inserts then in the new one according to the hash value of values.

                            If new_bucket_traits.bucket_begin() == this->bucket_pointer() is true, the implementations avoids moving values as much as possible.

                            @@ -663,7 +663,7 @@

                            Throws: If the hasher functor throws. Basic guarantee.

                          55. -
                            void full_rehash();
                            +
                            void full_rehash();

                            Note: This function is used when keys from inserted elements are changed (e.g. a language change when key is a string) but uniqueness and hash properties are preserved so a fast full rehash recovers invariants for *this without extracting and reinserting all elements again.

                            Requires: Calls produced to the hash function should not alter the value uniqueness properties of already inserted elements. If hasher(key1) == hasher(key2) was true when elements were inserted, it shall be true during calls produced in the execution of this function.

                            key_equal is not called inside this function so it is assumed that key_equal(value1, value2) should produce the same results as before for inserted elements.

                            @@ -673,7 +673,7 @@

                            Throws: If the hasher functor throws. Basic guarantee.

                          56. -
                            bool incremental_rehash(bool grow = true);
                            +
                            bool incremental_rehash(bool grow = true);

                            Requires:

                            Effects:

                            Complexity:

                            @@ -681,7 +681,7 @@

                            Note: this method is only available if incremental<true> option is activated.

                          57. -
                            bool incremental_rehash(const bucket_traits & new_bucket_traits);
                            +
                            bool incremental_rehash(const bucket_traits & new_bucket_traits);

                            Effects: If new_bucket_traits.bucket_count() is not this->bucket_count()/2 or this->bucket_count()*2, or this->split_bucket() != new_bucket_traits.bucket_count() returns false and does nothing.

                            Otherwise, copy assigns new_bucket_traits to the internal bucket_traits and transfers all the objects from old buckets to the new ones.

                            Complexity: Linear to size().

                            @@ -689,7 +689,7 @@

                            Note: this method is only available if incremental<true> option is activated.

                          58. -
                            size_type split_count() const;
                            +
                            size_type split_count() const;

                            Requires: incremental<> option must be set

                            Effects: returns the current split count

                            Complexity: Constant

                            @@ -699,10 +699,10 @@

                          -unordered_set public static functions

                          +unordered_set public static functions
                          1. -
                            static local_iterator s_local_iterator_to(reference value);
                            +
                            static local_iterator s_local_iterator_to(reference value);

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            @@ -710,7 +710,7 @@

                            Note: This static function is available only if the value traits is stateless.

                          2. -
                            static const_local_iterator s_local_iterator_to(const_reference value);
                            +
                            static const_local_iterator s_local_iterator_to(const_reference value);

                            Requires: value must be an lvalue and shall be in a unordered_set of appropriate type. Otherwise the behavior is undefined.

                            Effects: Returns: a valid local_iterator belonging to the unordered_set that points to the value

                            Complexity: Constant.

                            @@ -718,13 +718,13 @@

                            Note: This static function is available only if the value traits is stateless.

                          3. -
                            static size_type suggested_upper_bucket_count(size_type n);
                            +
                            static size_type suggested_upper_bucket_count(size_type n);

                            Effects: Returns the nearest new bucket count optimized for the container that is bigger or equal than n. This suggestion can be used to create bucket arrays with a size that will usually improve container's performance. If such value does not exist, the higher possible value is returned.

                            Complexity: Amortized constant time.

                            Throws: Nothing.

                          4. -
                            static size_type suggested_lower_bucket_count(size_type n);
                            +
                            static size_type suggested_lower_bucket_count(size_type n);

                            Effects: Returns the nearest new bucket count optimized for the container that is smaller or equal than n. This suggestion can be used to create bucket arrays with a size that will usually improve container's performance. If such value does not exist, the lowest possible value is returned.

                            Complexity: Amortized constant time.

                            Throws: Nothing.

                            diff --git a/doc/html/boost/intrusive/unordered_set_base_hook.html b/doc/html/boost/intrusive/unordered_set_base_hook.html index 4f29b12b3e..07e898bb32 100644 --- a/doc/html/boost/intrusive/unordered_set_base_hook.html +++ b/doc/html/boost/intrusive/unordered_set_base_hook.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

                            -PrevUpHomeNext +PrevUpHomeNext

                            Description

                            @@ -64,24 +64,24 @@ construct/copy/destruct
                            1. -
                              unordered_set_base_hook();
                              +
                              unordered_set_base_hook();

                              Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

                              Throws: Nothing.

                            2. -
                              unordered_set_base_hook(const unordered_set_base_hook &);
                              +
                              unordered_set_base_hook(const unordered_set_base_hook &);

                              Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

                              Throws: Nothing.

                              Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

                            3. -
                              unordered_set_base_hook & operator=(const unordered_set_base_hook &);
                              +
                              unordered_set_base_hook & operator=(const unordered_set_base_hook &);

                              Effects: Empty function. The argument is ignored.

                              Throws: Nothing.

                              Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

                            4. -
                              ~unordered_set_base_hook();
                              +
                              ~unordered_set_base_hook();

                              Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in an unordered_set an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

                              Throws: Nothing.

                            5. @@ -89,22 +89,22 @@

                            -unordered_set_base_hook public member functions

                            +unordered_set_base_hook public member functions
                            1. -
                              void swap_nodes(unordered_set_base_hook & other);
                              +
                              void swap_nodes(unordered_set_base_hook & other);

                              Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

                              Complexity: Constant

                              Throws: Nothing.

                            2. -
                              bool is_linked() const;
                              +
                              bool is_linked() const;

                              Precondition: link_mode must be safe_link or auto_unlink.

                              Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether unordered_set::iterator_to will return a valid iterator.

                              Complexity: Constant

                            3. -
                              void unlink();
                              +
                              void unlink();

                              Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

                              Throws: Nothing.

                            4. @@ -122,7 +122,7 @@
                              -PrevUpHomeNext +PrevUpHomeNext
                              diff --git a/doc/html/boost/intrusive/unordered_set_member_hook.html b/doc/html/boost/intrusive/unordered_set_member_hook.html index 02a61bfe29..d757786342 100644 --- a/doc/html/boost/intrusive/unordered_set_member_hook.html +++ b/doc/html/boost/intrusive/unordered_set_member_hook.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
                              -PrevUpHomeNext +PrevUpHomeNext

                              Description

                              @@ -62,24 +62,24 @@ construct/copy/destruct
                              1. -
                                unordered_set_member_hook();
                                +
                                unordered_set_member_hook();

                                Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state.

                                Throws: Nothing.

                              2. -
                                unordered_set_member_hook(const unordered_set_member_hook &);
                                +
                                unordered_set_member_hook(const unordered_set_member_hook &);

                                Effects: If link_mode is auto_unlink or safe_link initializes the node to an unlinked state. The argument is ignored.

                                Throws: Nothing.

                                Rationale: Providing a copy-constructor makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

                              3. -
                                unordered_set_member_hook & operator=(const unordered_set_member_hook &);
                                +
                                unordered_set_member_hook & operator=(const unordered_set_member_hook &);

                                Effects: Empty function. The argument is ignored.

                                Throws: Nothing.

                                Rationale: Providing an assignment operator makes classes using the hook STL-compliant without forcing the user to do some additional work. swap can be used to emulate move-semantics.

                              4. -
                                ~unordered_set_member_hook();
                                +
                                ~unordered_set_member_hook();

                                Effects: If link_mode is normal_link, the destructor does nothing (ie. no code is generated). If link_mode is safe_link and the object is stored in an unordered_set an assertion is raised. If link_mode is auto_unlink and is_linked() is true, the node is unlinked.

                                Throws: Nothing.

                              5. @@ -87,22 +87,22 @@

                              -unordered_set_member_hook public member functions

                              +unordered_set_member_hook public member functions
                              1. -
                                void swap_nodes(unordered_set_member_hook & other);
                                +
                                void swap_nodes(unordered_set_member_hook & other);

                                Effects: Swapping two nodes swaps the position of the elements related to those nodes in one or two containers. That is, if the node this is part of the element e1, the node x is part of the element e2 and both elements are included in the containers s1 and s2, then after the swap-operation e1 is in s2 at the position of e2 and e2 is in s1 at the position of e1. If one element is not in a container, then after the swap-operation the other element is not in a container. Iterators to e1 and e2 related to those nodes are invalidated.

                                Complexity: Constant

                                Throws: Nothing.

                              2. -
                                bool is_linked() const;
                                +
                                bool is_linked() const;

                                Precondition: link_mode must be safe_link or auto_unlink.

                                Returns: true, if the node belongs to a container, false otherwise. This function can be used to test whether unordered_set::iterator_to will return a valid iterator.

                                Complexity: Constant

                              3. -
                                void unlink();
                                +
                                void unlink();

                                Effects: Removes the node if it's inserted in a container. This function is only allowed if link_mode is auto_unlink.

                                Throws: Nothing.

                              4. @@ -120,7 +120,7 @@
                                -PrevUpHomeNext +PrevUpHomeNext
                                diff --git a/doc/html/boost/local_time/ambiguous_result.html b/doc/html/boost/local_time/ambiguous_result.html index 828e36231f..fdbce453bf 100644 --- a/doc/html/boost/local_time/ambiguous_result.html +++ b/doc/html/boost/local_time/ambiguous_result.html @@ -35,16 +35,16 @@ struct ambiguous_result : public logic_error { // construct/copy/destruct - ambiguous_result(std::string const & = std::string()); + ambiguous_result(std::string const & = std::string()); };
                              -

                              Description

                              +

                              Description

                              -

                              +

                              ambiguous_result public construct/copy/destruct

                              -
                              1. ambiguous_result(std::string const & msg = std::string());
                              +
                              1. ambiguous_result(std::string const & msg = std::string());
                              diff --git a/doc/html/boost/local_time/bad_adjustment.html b/doc/html/boost/local_time/bad_adjustment.html index 930a181b37..951bbbfe4f 100644 --- a/doc/html/boost/local_time/bad_adjustment.html +++ b/doc/html/boost/local_time/bad_adjustment.html @@ -35,16 +35,16 @@ struct bad_adjustment : public out_of_range { // construct/copy/destruct - bad_adjustment(std::string const & = std::string()); + bad_adjustment(std::string const & = std::string()); };
                              -

                              Description

                              +

                              Description

                              -

                              +

                              bad_adjustment public construct/copy/destruct

                              -
                              1. bad_adjustment(std::string const & msg = std::string());
                              +
                              1. bad_adjustment(std::string const & msg = std::string());
                            diff --git a/doc/html/boost/local_time/bad_offset.html b/doc/html/boost/local_time/bad_offset.html index cc4c429c68..4759d3acbd 100644 --- a/doc/html/boost/local_time/bad_offset.html +++ b/doc/html/boost/local_time/bad_offset.html @@ -35,16 +35,16 @@ struct bad_offset : public out_of_range { // construct/copy/destruct - bad_offset(std::string const & = std::string()); + bad_offset(std::string const & = std::string()); };
                            -

                            Description

                            +

                            Description

                            -

                            +

                            bad_offset public construct/copy/destruct

                            -
                            1. bad_offset(std::string const & msg = std::string());
                            +
                            1. bad_offset(std::string const & msg = std::string());
                            diff --git a/doc/html/boost/local_time/custom_time_zone_base.html b/doc/html/boost/local_time/custom_time_zone_base.html index ff802da8ae..b77e7243ab 100644 --- a/doc/html/boost/local_time/custom_time_zone_base.html +++ b/doc/html/boost/local_time/custom_time_zone_base.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

                            -PrevUpHomeNext +PrevUpHomeNext
                            @@ -46,58 +46,58 @@ typedef CharT char_type; // construct/copy/destruct - custom_time_zone_base(const time_zone_names &, const time_duration_type &, + custom_time_zone_base(const time_zone_names &, const time_duration_type &, const dst_adjustment_offsets &, boost::shared_ptr< dst_calc_rule >); - ~custom_time_zone_base(); + ~custom_time_zone_base(); - // public member functions - virtual string_type dst_zone_abbrev() const; - virtual string_type std_zone_abbrev() const; - virtual string_type dst_zone_name() const; - virtual string_type std_zone_name() const; - virtual bool has_dst() const; - virtual posix_time::ptime dst_local_start_time(gregorian::greg_year) const; - virtual posix_time::ptime dst_local_end_time(gregorian::greg_year) const; - virtual time_duration_type base_utc_offset() const; - virtual time_duration_type dst_offset() const; - virtual string_type to_posix_string() const; + // public member functions + virtual string_type dst_zone_abbrev() const; + virtual string_type std_zone_abbrev() const; + virtual string_type dst_zone_name() const; + virtual string_type std_zone_name() const; + virtual bool has_dst() const; + virtual posix_time::ptime dst_local_start_time(gregorian::greg_year) const; + virtual posix_time::ptime dst_local_end_time(gregorian::greg_year) const; + virtual time_duration_type base_utc_offset() const; + virtual time_duration_type dst_offset() const; + virtual string_type to_posix_string() const; };
                            -

                            Description

                            +

                            Description

                            -

                            +

                            custom_time_zone_base public construct/copy/destruct

                              -
                            1. custom_time_zone_base(const time_zone_names & zone_names, 
                              +
                            2. custom_time_zone_base(const time_zone_names & zone_names, 
                                                     const time_duration_type & utc_offset, 
                                                     const dst_adjustment_offsets & dst_shift, 
                                                     boost::shared_ptr< dst_calc_rule > calc_rule);
                            3. -
                            4. ~custom_time_zone_base();
                            5. +
                            6. ~custom_time_zone_base();
                            -

                            -custom_time_zone_base public member functions

                            +

                            +custom_time_zone_base public member functions

                              -
                            1. virtual string_type dst_zone_abbrev() const;
                            2. -
                            3. virtual string_type std_zone_abbrev() const;
                            4. -
                            5. virtual string_type dst_zone_name() const;
                            6. -
                            7. virtual string_type std_zone_name() const;
                            8. +
                            9. virtual string_type dst_zone_abbrev() const;
                            10. +
                            11. virtual string_type std_zone_abbrev() const;
                            12. +
                            13. virtual string_type dst_zone_name() const;
                            14. +
                            15. virtual string_type std_zone_name() const;
                            16. -
                              virtual bool has_dst() const;
                              True if zone uses daylight savings adjustments.
                            17. +
                              virtual bool has_dst() const;
                              True if zone uses daylight savings adjustments.
                            18. -
                              virtual posix_time::ptime dst_local_start_time(gregorian::greg_year y) const;
                              Local time that DST starts – NADT if has_dst is false.
                            19. +
                              virtual posix_time::ptime dst_local_start_time(gregorian::greg_year y) const;
                              Local time that DST starts – NADT if has_dst is false.
                            20. -
                              virtual posix_time::ptime dst_local_end_time(gregorian::greg_year y) const;
                              Local time that DST ends – NADT if has_dst is false.
                            21. +
                              virtual posix_time::ptime dst_local_end_time(gregorian::greg_year y) const;
                              Local time that DST ends – NADT if has_dst is false.
                            22. -
                              virtual time_duration_type base_utc_offset() const;
                              Base offset from UTC for zone (eg: -07:30:00)
                            23. +
                              virtual time_duration_type base_utc_offset() const;
                              Base offset from UTC for zone (eg: -07:30:00)
                            24. -
                              virtual time_duration_type dst_offset() const;
                              Adjustment forward or back made while DST is in effect.
                            25. +
                              virtual time_duration_type dst_offset() const;
                              Adjustment forward or back made while DST is in effect.
                            26. -
                              virtual string_type to_posix_string() const;
                              Returns a POSIX time_zone string for this object.
                            27. +
                              virtual string_type to_posix_string() const;
                              Returns a POSIX time_zone string for this object.
                            @@ -110,7 +110,7 @@
                            -PrevUpHomeNext +PrevUpHomeNext
                            diff --git a/doc/html/boost/local_time/dst_not_valid.html b/doc/html/boost/local_time/dst_not_valid.html index 21d9d4f3e1..82571e75eb 100644 --- a/doc/html/boost/local_time/dst_not_valid.html +++ b/doc/html/boost/local_time/dst_not_valid.html @@ -35,16 +35,16 @@ struct dst_not_valid : public logic_error { // construct/copy/destruct - dst_not_valid(std::string const & = std::string()); + dst_not_valid(std::string const & = std::string()); };
                          -

                          Description

                          +

                          Description

                          -

                          +

                          dst_not_valid public construct/copy/destruct

                          -
                          1. dst_not_valid(std::string const & msg = std::string());
                          +
                          1. dst_not_valid(std::string const & msg = std::string());
                          diff --git a/doc/html/boost/local_time/local_date_time_base.html b/doc/html/boost/local_time/local_date_time_base.html index 8bb9f2c88e..91f938d546 100644 --- a/doc/html/boost/local_time/local_date_time_base.html +++ b/doc/html/boost/local_time/local_date_time_base.html @@ -47,64 +47,64 @@ enum DST_CALC_OPTIONS { EXCEPTION_ON_ERROR, NOT_DATE_TIME_ON_ERROR }; // construct/copy/destruct - local_date_time_base(utc_time_type, boost::shared_ptr< tz_type >); - local_date_time_base(date_type, time_duration_type, + local_date_time_base(utc_time_type, boost::shared_ptr< tz_type >); + local_date_time_base(date_type, time_duration_type, boost::shared_ptr< tz_type >, bool); - local_date_time_base(date_type, time_duration_type, + local_date_time_base(date_type, time_duration_type, boost::shared_ptr< tz_type >, DST_CALC_OPTIONS); - local_date_time_base(const local_date_time_base &); - explicit local_date_time_base(const boost::date_time::special_values, + local_date_time_base(const local_date_time_base &); + explicit local_date_time_base(const boost::date_time::special_values, boost::shared_ptr< tz_type > = boost::shared_ptr< tz_type >()); - ~local_date_time_base(); + ~local_date_time_base(); - // public member functions - boost::shared_ptr< tz_type > zone() const; - bool is_dst() const; - utc_time_type utc_time() const; - utc_time_type local_time() const; - std::string to_string() const; + // public member functions + boost::shared_ptr< tz_type > zone() const; + bool is_dst() const; + utc_time_type utc_time() const; + utc_time_type local_time() const; + std::string to_string() const; local_date_time_base - local_time_in(boost::shared_ptr< tz_type >, + local_time_in(boost::shared_ptr< tz_type >, time_duration_type = time_duration_type(0, 0, 0)) const; - std::string zone_name(bool = false) const; - std::string zone_abbrev(bool = false) const; - std::string zone_as_posix_string() const; - bool operator==(const local_date_time_base &) const; - bool operator!=(const local_date_time_base &) const; - bool operator<(const local_date_time_base &) const; - bool operator<=(const local_date_time_base &) const; - bool operator>(const local_date_time_base &) const; - bool operator>=(const local_date_time_base &) const; - local_date_time_base operator+(const date_duration_type &) const; - local_date_time_base operator+=(const date_duration_type &); - local_date_time_base operator-(const date_duration_type &) const; - local_date_time_base operator-=(const date_duration_type &); - local_date_time_base operator+(const time_duration_type &) const; - local_date_time_base operator+=(const time_duration_type &); - local_date_time_base operator-(const time_duration_type &) const; - local_date_time_base operator-=(const time_duration_type &); - time_duration_type operator-(const local_date_time_base &) const; + std::string zone_name(bool = false) const; + std::string zone_abbrev(bool = false) const; + std::string zone_as_posix_string() const; + bool operator==(const local_date_time_base &) const; + bool operator!=(const local_date_time_base &) const; + bool operator<(const local_date_time_base &) const; + bool operator<=(const local_date_time_base &) const; + bool operator>(const local_date_time_base &) const; + bool operator>=(const local_date_time_base &) const; + local_date_time_base operator+(const date_duration_type &) const; + local_date_time_base operator+=(const date_duration_type &); + local_date_time_base operator-(const date_duration_type &) const; + local_date_time_base operator-=(const date_duration_type &); + local_date_time_base operator+(const time_duration_type &) const; + local_date_time_base operator+=(const time_duration_type &); + local_date_time_base operator-(const time_duration_type &) const; + local_date_time_base operator-=(const time_duration_type &); + time_duration_type operator-(const local_date_time_base &) const; - // public static functions + // public static functions static time_is_dst_result - check_dst(date_type, time_duration_type, boost::shared_ptr< tz_type >); + check_dst(date_type, time_duration_type, boost::shared_ptr< tz_type >); - // private member functions + // private member functions utc_time_type - construction_adjustment(utc_time_type, boost::shared_ptr< tz_type >, bool); - std::string zone_as_offset(const time_duration_type &, const std::string &) const; + construction_adjustment(utc_time_type, boost::shared_ptr< tz_type >, bool); + std::string zone_as_offset(const time_duration_type &, const std::string &) const; };
                          -

                          Description

                          +

                          Description

                          Representation of "wall-clock" time in a particular time zone Local_date_time_base holds a time value (date and time offset from 00:00) along with a time zone. The time value is stored as UTC and conversions to wall clock time are made as needed. This approach allows for operations between wall-clock times in different time zones, and daylight savings time considerations, to be made. Time zones are required to be in the form of a boost::shared_ptr<time_zone_base>.

                          -

                          +

                          local_date_time_base public construct/copy/destruct

                          1. -
                            local_date_time_base(utc_time_type t, boost::shared_ptr< tz_type > tz);
                            +
                            local_date_time_base(utc_time_type t, boost::shared_ptr< tz_type > tz);

                            This constructor interprets the passed time as a UTC time. So, for example, if the passed timezone is UTC-5 then the time will be adjusted back 5 hours. The time zone allows for automatic calculation of whether the particular time is adjusted for daylight savings, etc. If the time zone shared pointer is null then time stays unadjusted.

                            @@ -134,7 +134,7 @@
                          2. -
                            local_date_time_base(date_type d, time_duration_type td, 
                            +
                            local_date_time_base(date_type d, time_duration_type td, 
                                                  boost::shared_ptr< tz_type > tz, bool dst_flag);

                            This constructs a local time – the passed time information understood to be in the passed tz. The DST flag must be passed to indicate whether the time is in daylight savings or not.

                            @@ -150,102 +150,102 @@
                        8. -
                          local_date_time_base(date_type d, time_duration_type td, 
                          +
                          local_date_time_base(date_type d, time_duration_type td, 
                                                boost::shared_ptr< tz_type > tz, 
                                                DST_CALC_OPTIONS calc_option);

                          This constructs a local time – the passed time information understood to be in the passed tz. The DST flag is calculated according to the specified rule.

                        9. -
                          local_date_time_base(const local_date_time_base & rhs);
                          Copy constructor.
                        10. +
                          local_date_time_base(const local_date_time_base & rhs);
                          Copy constructor.
                        11. -
                          explicit local_date_time_base(const boost::date_time::special_values sv, 
                          +
                          explicit local_date_time_base(const boost::date_time::special_values sv, 
                                                         boost::shared_ptr< tz_type > tz = boost::shared_ptr< tz_type >());
                          Special values constructor.
                        12. -
                          ~local_date_time_base();
                          Simple destructor, releases time zone if last referrer.
                        13. +
                          ~local_date_time_base();
                          Simple destructor, releases time zone if last referrer.
                        -

                        -local_date_time_base public member functions

                        +

                        +local_date_time_base public member functions

                        1. -
                          boost::shared_ptr< tz_type > zone() const;
                          returns time zone associated with calling instance
                        2. +
                          boost::shared_ptr< tz_type > zone() const;
                          returns time zone associated with calling instance
                        3. -
                          bool is_dst() const;
                          returns false is time_zone is NULL and if time value is a special_value
                        4. +
                          bool is_dst() const;
                          returns false is time_zone is NULL and if time value is a special_value
                        5. -
                          utc_time_type utc_time() const;
                          Returns object's time value as a utc representation.
                        6. +
                          utc_time_type utc_time() const;
                          Returns object's time value as a utc representation.
                        7. -
                          utc_time_type local_time() const;
                          Returns object's time value as a local representation.
                        8. +
                          utc_time_type local_time() const;
                          Returns object's time value as a local representation.
                        9. -
                          std::string to_string() const;
                          Returns string in the form "2003-Aug-20 05:00:00 EDT".

                          Returns string in the form "2003-Aug-20 05:00:00 EDT". If time_zone is NULL the time zone abbreviation will be "UTC". The time zone abbrev will not be included if calling object is a special_value

                          +
                          std::string to_string() const;
                          Returns string in the form "2003-Aug-20 05:00:00 EDT".

                          Returns string in the form "2003-Aug-20 05:00:00 EDT". If time_zone is NULL the time zone abbreviation will be "UTC". The time zone abbrev will not be included if calling object is a special_value

                        10. local_date_time_base 
                          -local_time_in(boost::shared_ptr< tz_type > new_tz, 
                          +local_time_in(boost::shared_ptr< tz_type > new_tz, 
                                         time_duration_type td = time_duration_type(0, 0, 0)) const;

                          returns a local_date_time_base in the given time zone with the optional time_duration added.

                        11. -
                          std::string zone_name(bool as_offset = false) const;
                          Returns name of associated time zone or "Coordinated Universal Time".

                          Optional bool parameter will return time zone as an offset (ie "+07:00" extended iso format). Empty string is returned for classes that do not use a time_zone

                          +
                          std::string zone_name(bool as_offset = false) const;
                          Returns name of associated time zone or "Coordinated Universal Time".

                          Optional bool parameter will return time zone as an offset (ie "+07:00" extended iso format). Empty string is returned for classes that do not use a time_zone

                        12. -
                          std::string zone_abbrev(bool as_offset = false) const;
                          Returns abbreviation of associated time zone or "UTC".

                          Optional bool parameter will return time zone as an offset (ie "+0700" iso format). Empty string is returned for classes that do not use a time_zone

                          +
                          std::string zone_abbrev(bool as_offset = false) const;
                          Returns abbreviation of associated time zone or "UTC".

                          Optional bool parameter will return time zone as an offset (ie "+0700" iso format). Empty string is returned for classes that do not use a time_zone

                        13. -
                          std::string zone_as_posix_string() const;
                          returns a posix_time_zone string for the associated time_zone. If no time_zone, "UTC+00" is returned.
                        14. +
                          std::string zone_as_posix_string() const;
                          returns a posix_time_zone string for the associated time_zone. If no time_zone, "UTC+00" is returned.
                        15. -
                          bool operator==(const local_date_time_base & rhs) const;
                          Equality comparison operator.

                          Equality comparison operator

                          +
                          bool operator==(const local_date_time_base & rhs) const;
                          Equality comparison operator.

                          Equality comparison operator

                        16. -
                          bool operator!=(const local_date_time_base & rhs) const;
                          Non-Equality comparison operator.
                        17. +
                          bool operator!=(const local_date_time_base & rhs) const;
                          Non-Equality comparison operator.
                        18. -
                          bool operator<(const local_date_time_base & rhs) const;
                          Less than comparison operator.
                        19. +
                          bool operator<(const local_date_time_base & rhs) const;
                          Less than comparison operator.
                        20. -
                          bool operator<=(const local_date_time_base & rhs) const;
                          Less than or equal to comparison operator.
                        21. +
                          bool operator<=(const local_date_time_base & rhs) const;
                          Less than or equal to comparison operator.
                        22. -
                          bool operator>(const local_date_time_base & rhs) const;
                          Greater than comparison operator.
                        23. +
                          bool operator>(const local_date_time_base & rhs) const;
                          Greater than comparison operator.
                        24. -
                          bool operator>=(const local_date_time_base & rhs) const;
                          Greater than or equal to comparison operator.
                        25. +
                          bool operator>=(const local_date_time_base & rhs) const;
                          Greater than or equal to comparison operator.
                        26. -
                          local_date_time_base operator+(const date_duration_type & dd) const;
                          Local_date_time + date_duration.
                        27. +
                          local_date_time_base operator+(const date_duration_type & dd) const;
                          Local_date_time + date_duration.
                        28. -
                          local_date_time_base operator+=(const date_duration_type & dd);
                          Local_date_time += date_duration.
                        29. +
                          local_date_time_base operator+=(const date_duration_type & dd);
                          Local_date_time += date_duration.
                        30. -
                          local_date_time_base operator-(const date_duration_type & dd) const;
                          Local_date_time - date_duration.
                        31. +
                          local_date_time_base operator-(const date_duration_type & dd) const;
                          Local_date_time - date_duration.
                        32. -
                          local_date_time_base operator-=(const date_duration_type & dd);
                          Local_date_time -= date_duration.
                        33. +
                          local_date_time_base operator-=(const date_duration_type & dd);
                          Local_date_time -= date_duration.
                        34. -
                          local_date_time_base operator+(const time_duration_type & td) const;
                          Local_date_time + time_duration.
                        35. +
                          local_date_time_base operator+(const time_duration_type & td) const;
                          Local_date_time + time_duration.
                        36. -
                          local_date_time_base operator+=(const time_duration_type & td);
                          Local_date_time += time_duration.
                        37. +
                          local_date_time_base operator+=(const time_duration_type & td);
                          Local_date_time += time_duration.
                        38. -
                          local_date_time_base operator-(const time_duration_type & td) const;
                          Local_date_time - time_duration.
                        39. +
                          local_date_time_base operator-(const time_duration_type & td) const;
                          Local_date_time - time_duration.
                        40. -
                          local_date_time_base operator-=(const time_duration_type & td);
                          Local_date_time -= time_duration.
                        41. +
                          local_date_time_base operator-=(const time_duration_type & td);
                          Local_date_time -= time_duration.
                        42. -
                          time_duration_type operator-(const local_date_time_base & rhs) const;
                          local_date_time -= local_date_time –> time_duration_type
                        43. +
                          time_duration_type operator-(const local_date_time_base & rhs) const;
                          local_date_time -= local_date_time –> time_duration_type
                        -

                        -local_date_time_base public static functions

                        +

                        +local_date_time_base public static functions

                        1. static time_is_dst_result 
                          -check_dst(date_type d, time_duration_type td, boost::shared_ptr< tz_type > tz);
                          Determines if given time label is in daylight savings for given zone.

                          Determines if given time label is in daylight savings for given zone. Takes a date and time_duration representing a local time, along with time zone, and returns a time_is_dst_result object as result.

                          +check_dst(date_type d, time_duration_type td, boost::shared_ptr< tz_type > tz);Determines if given time label is in daylight savings for given zone.

                          Determines if given time label is in daylight savings for given zone. Takes a date and time_duration representing a local time, along with time zone, and returns a time_is_dst_result object as result.

                        -

                        -local_date_time_base private member functions

                        +

                        +local_date_time_base private member functions

                        1. utc_time_type 
                          -construction_adjustment(utc_time_type t, boost::shared_ptr< tz_type > z, 
                          +construction_adjustment(utc_time_type t, boost::shared_ptr< tz_type > z, 
                                                   bool dst_flag);

                          Adjust the passed in time to UTC?

                        2. -
                          std::string zone_as_offset(const time_duration_type & td, 
                          +
                          std::string zone_as_offset(const time_duration_type & td, 
                                                      const std::string & separator) const;

                          Simple formatting code – todo remove this?

                        3. diff --git a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_1.html b/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_1.html deleted file mode 100644 index 96007b169c..0000000000 --- a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function operator+ - - - - - - - - - - - - - - - -
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          -
                          -
                          -PrevUpHomeNext -
                          -
                          -
                          -
                          -

                          Function operator+

                          -

                          boost::local_time::operator+

                          -
                          -

                          Synopsis

                          -
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          -
                          -
                          -local_date_time 
                          -operator+(const local_date_time & t, const boost::gregorian::months & m);
                          -
                          -

                          Description

                          -

                          Adds a months object and a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details

                          -
                          -
                          - - - -
                          -
                          -
                          -PrevUpHomeNext -
                          - - diff --git a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_2.html b/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_2.html deleted file mode 100644 index adce80b717..0000000000 --- a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_2.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function operator+= - - - - - - - - - - - - - - - -
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          -
                          -
                          -PrevUpHomeNext -
                          -
                          -
                          -
                          -

                          Function operator+=

                          -

                          boost::local_time::operator+=

                          -
                          -

                          Synopsis

                          -
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          -
                          -
                          -local_date_time 
                          -operator+=(local_date_time & t, const boost::gregorian::months & m);
                          -
                          -

                          Description

                          -

                          Adds a months object to a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details

                          -
                          -
                          - - - -
                          -
                          -
                          -PrevUpHomeNext -
                          - - diff --git a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_3.html b/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_3.html deleted file mode 100644 index af40d8fa2b..0000000000 --- a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_3.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function operator- - - - - - - - - - - - - - - - -
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          -
                          -
                          -PrevUpHomeNext -
                          -
                          -
                          -
                          -

                          Function operator-

                          -

                          boost::local_time::operator-

                          -
                          -

                          Synopsis

                          -
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          -
                          -
                          -local_date_time 
                          -operator-(const local_date_time & t, const boost::gregorian::months & m);
                          -
                          -

                          Description

                          -

                          Subtracts a months object and a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details

                          -
                          -
                          - - - -
                          -
                          -
                          -PrevUpHomeNext -
                          - - diff --git a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_4.html b/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_4.html deleted file mode 100644 index 4443be5a4a..0000000000 --- a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_4.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function operator-= - - - - - - - - - - - - - - - -
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          -
                          -
                          -PrevUpHomeNext -
                          -
                          -
                          -
                          -

                          Function operator-=

                          -

                          boost::local_time::operator-=

                          -
                          -

                          Synopsis

                          -
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          -
                          -
                          -local_date_time 
                          -operator-=(local_date_time & t, const boost::gregorian::months & m);
                          -
                          -

                          Description

                          -

                          Subtracts a months object from a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details

                          -
                          -
                          - - - -
                          -
                          -
                          -PrevUpHomeNext -
                          - - diff --git a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_5.html b/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_5.html deleted file mode 100644 index e33656b92b..0000000000 --- a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_5.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function operator+ - - - - - - - - - - - - - - - -
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          -
                          -
                          -PrevUpHomeNext -
                          -
                          -
                          -
                          -

                          Function operator+

                          -

                          boost::local_time::operator+

                          -
                          -

                          Synopsis

                          -
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          -
                          -
                          -local_date_time 
                          -operator+(const local_date_time & t, const boost::gregorian::years & y);
                          -
                          -

                          Description

                          -

                          Adds a years object and a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details

                          -
                          -
                          - - - -
                          -
                          -
                          -PrevUpHomeNext -
                          - - diff --git a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_6.html b/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_6.html deleted file mode 100644 index eef227aae7..0000000000 --- a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_6.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function operator+= - - - - - - - - - - - - - - - -
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          -
                          -
                          -PrevUpHomeNext -
                          -
                          -
                          -
                          -

                          Function operator+=

                          -

                          boost::local_time::operator+=

                          -
                          -

                          Synopsis

                          -
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          -
                          -
                          -local_date_time 
                          -operator+=(local_date_time & t, const boost::gregorian::years & y);
                          -
                          -

                          Description

                          -

                          Adds a years object to a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details

                          -
                          -
                          - - - -
                          -
                          -
                          -PrevUpHomeNext -
                          - - diff --git a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_7.html b/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_7.html deleted file mode 100644 index 85d68454d4..0000000000 --- a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_7.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function operator- - - - - - - - - - - - - - - - -
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          -
                          -
                          -PrevUpHomeNext -
                          -
                          -
                          -
                          -

                          Function operator-

                          -

                          boost::local_time::operator-

                          -
                          -

                          Synopsis

                          -
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          -
                          -
                          -local_date_time 
                          -operator-(const local_date_time & t, const boost::gregorian::years & y);
                          -
                          -

                          Description

                          -

                          Subtracts a years object and a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details

                          -
                          -
                          - - - -
                          -
                          -
                          -PrevUpHomeNext -
                          - - diff --git a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_8.html b/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_8.html deleted file mode 100644 index cd57c51943..0000000000 --- a/doc/html/boost/local_time/operat_1_3_12_15_6_4_2_1_8.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function operator-= - - - - - - - - - - - - - - - -
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          -
                          -
                          -PrevUpHomeNext -
                          -
                          -
                          -
                          -

                          Function operator-=

                          -

                          boost::local_time::operator-=

                          -
                          -

                          Synopsis

                          -
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          -
                          -
                          -local_date_time 
                          -operator-=(local_date_time & t, const boost::gregorian::years & y);
                          -
                          -

                          Description

                          -

                          Subtracts a years object from a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details

                          -
                          -
                          - - - -
                          -
                          -
                          -PrevUpHomeNext -
                          - - diff --git a/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_1.html b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_1.html new file mode 100644 index 0000000000..feec90940f --- /dev/null +++ b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_1.html @@ -0,0 +1,54 @@ + + + + +Function operator+ + + + + + + + + + + + + + + + +
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          +
                          +
                          +PrevUpHomeNext +
                          +
                          +
                          +
                          +

                          Function operator+

                          +

                          boost::local_time::operator+

                          +
                          +

                          Synopsis

                          +
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          +
                          +
                          +local_date_time 
                          +operator+(const local_date_time & t, const boost::gregorian::months & m);
                          +
                          +

                          Description

                          +

                          Adds a months object and a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details

                          +
                          +
                          + + + +
                          +
                          +
                          +PrevUpHomeNext +
                          + + diff --git a/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_2.html b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_2.html new file mode 100644 index 0000000000..795c4085d8 --- /dev/null +++ b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_2.html @@ -0,0 +1,54 @@ + + + + +Function operator+= + + + + + + + + + + + + + + + +
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          +
                          +
                          +PrevUpHomeNext +
                          +
                          +
                          +
                          +

                          Function operator+=

                          +

                          boost::local_time::operator+=

                          +
                          +

                          Synopsis

                          +
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          +
                          +
                          +local_date_time 
                          +operator+=(local_date_time & t, const boost::gregorian::months & m);
                          +
                          +

                          Description

                          +

                          Adds a months object to a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details

                          +
                          +
                          + + + +
                          +
                          +
                          +PrevUpHomeNext +
                          + + diff --git a/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_3.html b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_3.html new file mode 100644 index 0000000000..4258de95d5 --- /dev/null +++ b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_3.html @@ -0,0 +1,54 @@ + + + + +Function operator- + + + + + + + + + + + + + + + +
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          +
                          +
                          +PrevUpHomeNext +
                          +
                          +
                          +
                          +

                          Function operator-

                          +

                          boost::local_time::operator-

                          +
                          +

                          Synopsis

                          +
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          +
                          +
                          +local_date_time 
                          +operator-(const local_date_time & t, const boost::gregorian::months & m);
                          +
                          +

                          Description

                          +

                          Subtracts a months object and a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details

                          +
                          +
                          + + + +
                          +
                          +
                          +PrevUpHomeNext +
                          + + diff --git a/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_4.html b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_4.html new file mode 100644 index 0000000000..5d3d45d127 --- /dev/null +++ b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_4.html @@ -0,0 +1,54 @@ + + + + +Function operator-= + + + + + + + + + + + + + + + +
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          +
                          +
                          +PrevUpHomeNext +
                          +
                          +
                          +
                          +

                          Function operator-=

                          +

                          boost::local_time::operator-=

                          +
                          +

                          Synopsis

                          +
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          +
                          +
                          +local_date_time 
                          +operator-=(local_date_time & t, const boost::gregorian::months & m);
                          +
                          +

                          Description

                          +

                          Subtracts a months object from a local_date_time. Result will be same day-of-month as local_date_time unless original day was the last day of month. see date_time::months_duration for more details

                          +
                          +
                          + + + +
                          +
                          +
                          +PrevUpHomeNext +
                          + + diff --git a/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_5.html b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_5.html new file mode 100644 index 0000000000..ad273ad7da --- /dev/null +++ b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_5.html @@ -0,0 +1,54 @@ + + + + +Function operator+ + + + + + + + + + + + + + + + +
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          +
                          +
                          +PrevUpHomeNext +
                          +
                          +
                          +
                          +

                          Function operator+

                          +

                          boost::local_time::operator+

                          +
                          +

                          Synopsis

                          +
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          +
                          +
                          +local_date_time 
                          +operator+(const local_date_time & t, const boost::gregorian::years & y);
                          +
                          +

                          Description

                          +

                          Adds a years object and a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details

                          +
                          +
                          + + + +
                          +
                          +
                          +PrevUpHomeNext +
                          + + diff --git a/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_6.html b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_6.html new file mode 100644 index 0000000000..f703a8ccd9 --- /dev/null +++ b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_6.html @@ -0,0 +1,54 @@ + + + + +Function operator+= + + + + + + + + + + + + + + + +
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          +
                          +
                          +PrevUpHomeNext +
                          +
                          +
                          +
                          +

                          Function operator+=

                          +

                          boost::local_time::operator+=

                          +
                          +

                          Synopsis

                          +
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          +
                          +
                          +local_date_time 
                          +operator+=(local_date_time & t, const boost::gregorian::years & y);
                          +
                          +

                          Description

                          +

                          Adds a years object to a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details

                          +
                          +
                          + + + +
                          +
                          +
                          +PrevUpHomeNext +
                          + + diff --git a/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_7.html b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_7.html new file mode 100644 index 0000000000..a9d8586c5c --- /dev/null +++ b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_7.html @@ -0,0 +1,54 @@ + + + + +Function operator- + + + + + + + + + + + + + + + +
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          +
                          +
                          +PrevUpHomeNext +
                          +
                          +
                          +
                          +

                          Function operator-

                          +

                          boost::local_time::operator-

                          +
                          +

                          Synopsis

                          +
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          +
                          +
                          +local_date_time 
                          +operator-(const local_date_time & t, const boost::gregorian::years & y);
                          +
                          +

                          Description

                          +

                          Subtracts a years object and a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details

                          +
                          +
                          + + + +
                          +
                          +
                          +PrevUpHomeNext +
                          + + diff --git a/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_8.html b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_8.html new file mode 100644 index 0000000000..ccc1852c84 --- /dev/null +++ b/doc/html/boost/local_time/operat_1_3_13_15_6_4_2_1_8.html @@ -0,0 +1,54 @@ + + + + +Function operator-= + + + + + + + + + + + + + + + +
                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                          +
                          +
                          +PrevUpHomeNext +
                          +
                          +
                          +
                          +

                          Function operator-=

                          +

                          boost::local_time::operator-=

                          +
                          +

                          Synopsis

                          +
                          // In header: <boost/date_time/local_time/date_duration_operators.hpp>
                          +
                          +
                          +local_date_time 
                          +operator-=(local_date_time & t, const boost::gregorian::years & y);
                          +
                          +

                          Description

                          +

                          Subtracts a years object from a local_date_time. Result will be same month and day-of-month as local_date_time unless original day was the last day of month. see date_time::years_duration for more details

                          +
                          +
                          + + + +
                          +
                          +
                          +PrevUpHomeNext +
                          + + diff --git a/doc/html/boost/local_time/partial_date_rule_spec.html b/doc/html/boost/local_time/partial_date_rule_spec.html index 71de18f7bd..228204757b 100644 --- a/doc/html/boost/local_time/partial_date_rule_spec.html +++ b/doc/html/boost/local_time/partial_date_rule_spec.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
                          -PrevUpHomeNext +PrevUpHomeNext
                          @@ -48,7 +48,7 @@
                          -PrevUpHomeNext +PrevUpHomeNext
                          diff --git a/doc/html/boost/local_time/posix_time_zone_base.html b/doc/html/boost/local_time/posix_time_zone_base.html index 0521ba1e24..1bba875eb1 100644 --- a/doc/html/boost/local_time/posix_time_zone_base.html +++ b/doc/html/boost/local_time/posix_time_zone_base.html @@ -49,33 +49,33 @@ typedef tokenizer_type::iterator tokenizer_iterator_type; // construct/copy/destruct - posix_time_zone_base(const string_type &); - ~posix_time_zone_base(); + posix_time_zone_base(const string_type &); + ~posix_time_zone_base(); - // public member functions - virtual string_type std_zone_abbrev() const; - virtual string_type dst_zone_abbrev() const; - virtual string_type std_zone_name() const; - virtual string_type dst_zone_name() const; - virtual bool has_dst() const; - virtual posix_time::ptime dst_local_start_time(gregorian::greg_year) const; - virtual posix_time::ptime dst_local_end_time(gregorian::greg_year) const; - virtual time_duration_type base_utc_offset() const; - virtual time_duration_type dst_offset() const; - virtual string_type to_posix_string() const; + // public member functions + virtual string_type std_zone_abbrev() const; + virtual string_type dst_zone_abbrev() const; + virtual string_type std_zone_name() const; + virtual string_type dst_zone_name() const; + virtual bool has_dst() const; + virtual posix_time::ptime dst_local_start_time(gregorian::greg_year) const; + virtual posix_time::ptime dst_local_end_time(gregorian::greg_year) const; + virtual time_duration_type base_utc_offset() const; + virtual time_duration_type dst_offset() const; + virtual string_type to_posix_string() const; - // private member functions - void calc_zone(const string_type &); - void calc_rules(const string_type &, const string_type &); - void M_func(const string_type &, const string_type &); - void julian_no_leap(const string_type &, const string_type &); - void julian_day(const string_type &, const string_type &); + // private member functions + void calc_zone(const string_type &); + void calc_rules(const string_type &, const string_type &); + void M_func(const string_type &, const string_type &); + void julian_no_leap(const string_type &, const string_type &); + void julian_day(const string_type &, const string_type &); - // private static functions - static std::string td_as_string(const time_duration_type &); + // private static functions + static std::string td_as_string(const time_duration_type &); };
                          -

                          Description

                          +

                          Description

                          A POSIX time zone string takes the form of:
                          "std offset dst [offset],start[/time],end[/time]" (w/no spaces) 'std' specifies the abbrev of the time zone.
                          'offset' is the offset from UTC.
                          @@ -99,66 +99,66 @@

                          Note that UTC zone offsets can be greater than +12: http://www.worldtimezone.com/utc/utc+1200.html

                          -

                          +

                          posix_time_zone_base public construct/copy/destruct

                          1. -
                            posix_time_zone_base(const string_type & s);
                            Construct from a POSIX time zone string.
                          2. -
                          3. ~posix_time_zone_base();
                          4. +
                            posix_time_zone_base(const string_type & s);
                            Construct from a POSIX time zone string. +
                          5. ~posix_time_zone_base();
                          -

                          -posix_time_zone_base public member functions

                          +

                          +posix_time_zone_base public member functions

                          1. -
                            virtual string_type std_zone_abbrev() const;
                            String for the zone when not in daylight savings (eg: EST)
                          2. +
                            virtual string_type std_zone_abbrev() const;
                            String for the zone when not in daylight savings (eg: EST)
                          3. -
                            virtual string_type dst_zone_abbrev() const;
                            String for the timezone when in daylight savings (eg: EDT)

                            For those time zones that have no DST, an empty string is used

                            +
                            virtual string_type dst_zone_abbrev() const;
                            String for the timezone when in daylight savings (eg: EDT)

                            For those time zones that have no DST, an empty string is used

                          4. -
                            virtual string_type std_zone_name() const;
                            String for the zone when not in daylight savings (eg: Eastern Standard Time)

                            The full STD name is not extracted from the posix time zone string. Therefore, the STD abbreviation is used in it's place

                            +
                            virtual string_type std_zone_name() const;
                            String for the zone when not in daylight savings (eg: Eastern Standard Time)

                            The full STD name is not extracted from the posix time zone string. Therefore, the STD abbreviation is used in it's place

                          5. -
                            virtual string_type dst_zone_name() const;
                            String for the timezone when in daylight savings (eg: Eastern Daylight Time)

                            The full DST name is not extracted from the posix time zone string. Therefore, the STD abbreviation is used in it's place. For time zones that have no DST, an empty string is used

                            +
                            virtual string_type dst_zone_name() const;
                            String for the timezone when in daylight savings (eg: Eastern Daylight Time)

                            The full DST name is not extracted from the posix time zone string. Therefore, the STD abbreviation is used in it's place. For time zones that have no DST, an empty string is used

                          6. -
                            virtual bool has_dst() const;
                            True if zone uses daylight savings adjustments otherwise false.
                          7. +
                            virtual bool has_dst() const;
                            True if zone uses daylight savings adjustments otherwise false.
                          8. -
                            virtual posix_time::ptime dst_local_start_time(gregorian::greg_year y) const;
                            Local time that DST starts – NADT if has_dst is false.
                          9. +
                            virtual posix_time::ptime dst_local_start_time(gregorian::greg_year y) const;
                            Local time that DST starts – NADT if has_dst is false.
                          10. -
                            virtual posix_time::ptime dst_local_end_time(gregorian::greg_year y) const;
                            Local time that DST ends – NADT if has_dst is false.
                          11. +
                            virtual posix_time::ptime dst_local_end_time(gregorian::greg_year y) const;
                            Local time that DST ends – NADT if has_dst is false.
                          12. -
                            virtual time_duration_type base_utc_offset() const;
                            Base offset from UTC for zone (eg: -07:30:00)
                          13. +
                            virtual time_duration_type base_utc_offset() const;
                            Base offset from UTC for zone (eg: -07:30:00)
                          14. -
                            virtual time_duration_type dst_offset() const;
                            Adjustment forward or back made while DST is in effect.
                          15. +
                            virtual time_duration_type dst_offset() const;
                            Adjustment forward or back made while DST is in effect.
                          16. -
                            virtual string_type to_posix_string() const;
                            Returns a POSIX time_zone string for this object.
                          17. +
                            virtual string_type to_posix_string() const;
                            Returns a POSIX time_zone string for this object.
                          -

                          -posix_time_zone_base private member functions

                          +

                          +posix_time_zone_base private member functions

                          1. -
                            void calc_zone(const string_type & obj);
                            +
                            void calc_zone(const string_type & obj);

                            Extract time zone abbreviations for STD & DST as well as the offsets for the time shift that occurs and how much of a shift. At this time full time zone names are NOT extracted so the abbreviations are used in their place

                          2. -
                          3. void calc_rules(const string_type & start, const string_type & end);
                          4. -
                          5. void M_func(const string_type & s, const string_type & e);
                          6. +
                          7. void calc_rules(const string_type & start, const string_type & end);
                          8. +
                          9. void M_func(const string_type & s, const string_type & e);
                          10. -
                            void julian_no_leap(const string_type & s, const string_type & e);
                            Julian day. Feb29 is never counted, even in leap years.
                          11. +
                            void julian_no_leap(const string_type & s, const string_type & e);
                            Julian day. Feb29 is never counted, even in leap years.
                          12. -
                            void julian_day(const string_type & s, const string_type & e);
                            Julian day. Feb29 is always counted, but exception thrown in non-leap years.
                          13. +
                            void julian_day(const string_type & s, const string_type & e);
                            Julian day. Feb29 is always counted, but exception thrown in non-leap years.
                          -

                          -posix_time_zone_base private static functions

                          +

                          +posix_time_zone_base private static functions

                          1. -
                            static std::string td_as_string(const time_duration_type & td);
                            helper function used when throwing exceptions
                          +
                          static std::string td_as_string(const time_duration_type & td);
                          helper function used when throwing exceptions
                      diff --git a/doc/html/boost/local_time/time_label_invalid.html b/doc/html/boost/local_time/time_label_invalid.html index 0954f69d7a..89e33ca4ce 100644 --- a/doc/html/boost/local_time/time_label_invalid.html +++ b/doc/html/boost/local_time/time_label_invalid.html @@ -35,16 +35,16 @@ struct time_label_invalid : public logic_error { // construct/copy/destruct - time_label_invalid(std::string const & = std::string()); + time_label_invalid(std::string const & = std::string()); };
                      -

                      Description

                      +

                      Description

                      -

                      +

                      time_label_invalid public construct/copy/destruct

                      -
                      1. time_label_invalid(std::string const & msg = std::string());
                      +
                      1. time_label_invalid(std::string const & msg = std::string());
                      diff --git a/doc/html/boost/local_time/tz_database.html b/doc/html/boost/local_time/tz_database.html index f2a0d37b1b..f7e3bac205 100644 --- a/doc/html/boost/local_time/tz_database.html +++ b/doc/html/boost/local_time/tz_database.html @@ -8,7 +8,7 @@ - + @@ -35,7 +35,7 @@ typedefdate_time::tz_db_base<custom_time_zone,nth_kday_dst_rule>tz_database;
                      -

                      Description

                      +

                      Description

                      Object populated with boost::shared_ptr<time_zone_base> objects Database is populated from specs stored in external csv file. See date_time::tz_db_base for greater detail

                      diff --git a/doc/html/boost/lockfree/spsc_queue.html b/doc/html/boost/lockfree/spsc_queue.html index 2cdc155359..d648ab68ce 100644 --- a/doc/html/boost/lockfree/spsc_queue.html +++ b/doc/html/boost/lockfree/spsc_queue.html @@ -8,7 +8,7 @@ - +
                      @@ -21,7 +21,7 @@

                      -PrevUpHomeNext +PrevUpHomeNext
                      @@ -32,7 +32,7 @@

                      Synopsis

                      // In header: <boost/lockfree/spsc_queue.hpp>
                       
                      -template<typename T, typename... Options> 
                      +template<typename T, typename A0, typename A1> 
                       class spsc_queue {
                       public:
                         // types
                      @@ -40,41 +40,49 @@
                         typedef implementation_defined::allocator allocator; 
                         typedef implementation_defined::size_type size_type; 
                       
                      +  // member classes/structs/unions
                      +  template<typename T, typename... Options> 
                      +  struct implementation_defined {
                      +    // types
                      +    typedef allocator_arg allocator;
                      +    typedef std::size_t   size_type;
                      +  };
                      +
                         // construct/copy/destruct
                      -  spsc_queue(void);
                      +  spsc_queue(void);
                         template<typename U> 
                      -    explicit spsc_queue(typename allocator::template rebind< U >::other const &);
                      -  explicit spsc_queue(allocator const &);
                      -  explicit spsc_queue(size_type);
                      +    explicit spsc_queue(typename allocator::template rebind< U >::other const &);
                      +  explicit spsc_queue(allocator const &);
                      +  explicit spsc_queue(size_type);
                         template<typename U> 
                      -    spsc_queue(size_type, 
                      +    spsc_queue(size_type, 
                                      typename allocator::template rebind< U >::other const &);
                      -  spsc_queue(size_type, allocator_arg const &);
                      +  spsc_queue(size_type, allocator_arg const &);
                       
                      -  // public member functions
                      -  bool push(T const &);
                      -  bool pop();
                      +  // public member functions
                      +  bool push(T const &);
                      +  bool pop();
                         template<typename U> 
                           boost::enable_if< typename is_convertible< T, U >::type, bool >::type 
                      -    pop(U &);
                      -  size_type push(T const *, size_type);
                      -  template<size_type size> size_type push(T const (&));
                      +    pop(U &);
                      +  size_type push(T const *, size_type);
                      +  template<size_type size> size_type push(T const (&));
                         template<typename ConstIterator> 
                      -    ConstIterator push(ConstIterator, ConstIterator);
                      -  size_type pop(T *, size_type);
                      -  template<size_type size> size_type pop(T(&));
                      +    ConstIterator push(ConstIterator, ConstIterator);
                      +  size_type pop(T *, size_type);
                      +  template<size_type size> size_type pop(T(&));
                         template<typename OutputIterator> 
                           boost::disable_if< typename is_convertible< T, OutputIterator >::type, size_type >::type 
                      -    pop(OutputIterator);
                      -  template<typename Functor> bool consume_one(Functor &);
                      -  template<typename Functor> bool consume_one(Functor const &);
                      -  template<typename Functor> size_type consume_all(Functor &);
                      -  template<typename Functor> size_type consume_all(Functor const &);
                      -  size_type read_available() const;
                      -  size_type write_available() const;
                      -  const T & front() const;
                      -  T & front();
                      -  void reset(void);
                      +    pop(OutputIterator);
                      +  template<typename Functor> bool consume_one(Functor &);
                      +  template<typename Functor> bool consume_one(Functor const &);
                      +  template<typename Functor> size_type consume_all(Functor &);
                      +  template<typename Functor> size_type consume_all(Functor const &);
                      +  size_type read_available() const;
                      +  size_type write_available() const;
                      +  const T & front() const;
                      +  T & front();
                      +  void reset(void);
                       };

                      Description

                      @@ -102,7 +110,7 @@ construct/copy/destruct
                      1. -
                        spsc_queue(void);
                        +
                        spsc_queue(void);

                        Constructs a spsc_queue

                        @@ -118,10 +126,10 @@
                    8. template<typename U> 
                      -  explicit spsc_queue(typename allocator::template rebind< U >::other const &);
                    9. -
                    10. explicit spsc_queue(allocator const &);
                    11. + explicit spsc_queue(typename allocator::template rebind< U >::other const &); +
                    12. explicit spsc_queue(allocator const &);
                    13. -
                      explicit spsc_queue(size_type element_count);
                      +
                      explicit spsc_queue(size_type element_count);

                      Constructs a spsc_queue for element_count elements

                      @@ -137,17 +145,17 @@
                  8. template<typename U> 
                    -  spsc_queue(size_type element_count, 
                    +  spsc_queue(size_type element_count, 
                                  typename allocator::template rebind< U >::other const & alloc);
                  9. -
                  10. spsc_queue(size_type element_count, allocator_arg const & alloc);
                  11. +
                  12. spsc_queue(size_type element_count, allocator_arg const & alloc);

                  -spsc_queue public member functions

                  +spsc_queue public member functions
                  1. -
                    bool push(T const & t);
                    +
                    bool push(T const & t);

                    Pushes object t to the ringbuffer.

                    @@ -184,7 +192,7 @@

                5. -
                  bool pop();
                  +
                  bool pop();

                  Pops one object from ringbuffer.

                  @@ -223,7 +231,7 @@

                6. template<typename U> 
                     boost::enable_if< typename is_convertible< T, U >::type, bool >::type 
                  -  pop(U & ret);
                  + pop(U & ret);

                  Pops one object from ringbuffer.

                  @@ -260,7 +268,7 @@

                7. -
                  size_type push(T const * t, size_type size);
                  +
                  size_type push(T const * t, size_type size);

                  Pushes as many objects from the array t as there is space.

                  @@ -292,7 +300,7 @@

                8. -
                  template<size_type size> size_type push(T const (&) t);
                  +
                  template<size_type size> size_type push(T const (&) t);

                  Pushes as many objects from the array t as there is space available.

                  @@ -325,7 +333,7 @@

                9. template<typename ConstIterator> 
                  -  ConstIterator push(ConstIterator begin, ConstIterator end);
                  + ConstIterator push(ConstIterator begin, ConstIterator end);

                  Pushes as many objects from the range [begin, end) as there is space .

                  @@ -357,7 +365,7 @@

              38. -
                size_type pop(T * ret, size_type size);
                +
                size_type pop(T * ret, size_type size);

                Pops a maximum of size objects from ringbuffer.

                @@ -389,7 +397,7 @@

            8. -
              template<size_type size> size_type pop(T(&) ret);
              +
              template<size_type size> size_type pop(T(&) ret);

              Pops a maximum of size objects from spsc_queue.

              @@ -423,7 +431,7 @@

            9. template<typename OutputIterator> 
                 boost::disable_if< typename is_convertible< T, OutputIterator >::type, size_type >::type 
              -  pop(OutputIterator it);
              + pop(OutputIterator it);

              Pops objects to the output iterator it

              @@ -455,7 +463,7 @@

          8. -
            template<typename Functor> bool consume_one(Functor & f);
            +
            template<typename Functor> bool consume_one(Functor & f);

            consumes one element via a functor

            pops one element from the queue and applies the functor on this object

            @@ -481,7 +489,7 @@

        5. -
          template<typename Functor> bool consume_one(Functor const & f);
          +
          template<typename Functor> bool consume_one(Functor const & f);

          consumes one element via a functor

          pops one element from the queue and applies the functor on this object

          @@ -507,7 +515,7 @@

        6. -
          template<typename Functor> size_type consume_all(Functor & f);
          +
          template<typename Functor> size_type consume_all(Functor & f);

          consumes all elements via a functor

          sequentially pops all elements from the queue and applies the functor on each object

          @@ -533,7 +541,7 @@

        7. -
          template<typename Functor> size_type consume_all(Functor const & f);
          +
          template<typename Functor> size_type consume_all(Functor const & f);

          consumes all elements via a functor

          sequentially pops all elements from the queue and applies the functor on each object

          @@ -559,7 +567,7 @@

      38. -
        size_type read_available() const;
        +
        size_type read_available() const;

        get number of elements that are available for read

        @@ -584,7 +592,7 @@
    15. -
      size_type write_available() const;
      +
      size_type write_available() const;

      get write space to write elements

      @@ -609,7 +617,7 @@
  • -
    const T & front() const;
    +
    const T & front() const;

    get reference to element in the front of the queue

    Availability of front element can be checked using read_available().

    @@ -645,7 +653,7 @@

  • -
    T & front();
    +
    T & front();

    get reference to element in the front of the queue

    Availability of front element can be checked using read_available().

    @@ -681,7 +689,7 @@

  • -
    void reset(void);
    +
    void reset(void);

    reset the ringbuffer

    @@ -708,7 +716,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/lockfree/spsc_queue/implementation_defined.html b/doc/html/boost/lockfree/spsc_queue/implementation_defined.html new file mode 100644 index 0000000000..24a517be74 --- /dev/null +++ b/doc/html/boost/lockfree/spsc_queue/implementation_defined.html @@ -0,0 +1,57 @@ + + + + +Struct template implementation_defined + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Struct template implementation_defined

    +

    boost::lockfree::spsc_queue::implementation_defined

    +
    +

    Synopsis

    +
    // In header: <boost/lockfree/spsc_queue.hpp>
    +
    +
    +template<typename T, typename... Options> 
    +struct implementation_defined {
    +  // types
    +  typedef allocator_arg allocator;
    +  typedef std::size_t   size_type;
    +};
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/lockfree/stack.html b/doc/html/boost/lockfree/stack.html index aa807e0963..d3b7c8f5fe 100644 --- a/doc/html/boost/lockfree/stack.html +++ b/doc/html/boost/lockfree/stack.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -852,7 +852,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/logic/get_default_in_idp31765120.html b/doc/html/boost/logic/get_default_in_idp31765120.html new file mode 100644 index 0000000000..a57814d1ff --- /dev/null +++ b/doc/html/boost/logic/get_default_in_idp31765120.html @@ -0,0 +1,54 @@ + + + + +Function template get_default_indeterminate_name + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template get_default_indeterminate_name

    +

    boost::logic::get_default_indeterminate_name — Returns a string containing the default name for the indeterminate value of a tribool with the given character type T.

    +
    +

    Synopsis

    +
    // In header: <boost/logic/tribool_io.hpp>
    +
    +
    +template<typename T> std::basic_string< T > get_default_indeterminate_name();
    +
    +

    Description

    +

    This routine is used by the input and output streaming operators for tribool when there is no locale support or the stream's locale does not contain the indeterminate_name facet.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/logic/get_default_in_idp39719728.html b/doc/html/boost/logic/get_default_in_idp39719728.html deleted file mode 100644 index a9c0a62414..0000000000 --- a/doc/html/boost/logic/get_default_in_idp39719728.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Function template get_default_indeterminate_name - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template get_default_indeterminate_name

    -

    boost::logic::get_default_indeterminate_name — Returns a string containing the default name for the indeterminate value of a tribool with the given character type T.

    -
    -

    Synopsis

    -
    // In header: <boost/logic/tribool_io.hpp>
    -
    -
    -template<typename T> std::basic_string< T > get_default_indeterminate_name();
    -
    -

    Description

    -

    This routine is used by the input and output streaming operators for tribool when there is no locale support or the stream's locale does not contain the indeterminate_name facet.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/logic/indeterminate_name.html b/doc/html/boost/logic/indeterminate_name.html index a727f6912c..89fc97143e 100644 --- a/doc/html/boost/logic/indeterminate_name.html +++ b/doc/html/boost/logic/indeterminate_name.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -40,11 +40,11 @@ typedef std::basic_string< CharT > string_type; // construct/copy/destruct - indeterminate_name(); - explicit indeterminate_name(const string_type &); + indeterminate_name(); + explicit indeterminate_name(const string_type &); - // public member functions - string_type name() const; + // public member functions + string_type name() const; // public data members static std::locale::id id; // Uniquily identifies this facet with the locale. @@ -59,16 +59,16 @@ construct/copy/destruct
    1. -
      indeterminate_name();
      Construct the facet with the default name.
    2. +
      indeterminate_name();
      Construct the facet with the default name.
    3. -
      explicit indeterminate_name(const string_type & initial_name);
      Construct the facet with the given name for the indeterminate value.
    4. +
      explicit indeterminate_name(const string_type & initial_name);
      Construct the facet with the given name for the indeterminate value.

    -indeterminate_name public member functions

    +indeterminate_name public member functions
    1. -
      string_type name() const;
      Returns the name for the indeterminate value.
    +
    string_type name() const;
    Returns the name for the indeterminate value.
  • @@ -81,7 +81,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/logic/operator_idp31661568.html b/doc/html/boost/logic/operator_idp31661568.html new file mode 100644 index 0000000000..df7ba4df12 --- /dev/null +++ b/doc/html/boost/logic/operator_idp31661568.html @@ -0,0 +1,114 @@ + + + + +Function operator|| + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function operator||

    +

    boost::logic::operator|| — Computes the logical disjunction of two tribools.

    +
    +

    Synopsis

    +
    // In header: <boost/logic/tribool.hpp>
    +
    +
    +BOOST_CONSTEXPR tribool operator||(tribool x, tribool y);
    +BOOST_CONSTEXPR tribool operator||(tribool x, bool y);
    +BOOST_CONSTEXPR tribool operator||(bool x, tribool y);
    +BOOST_CONSTEXPR tribool operator||(indeterminate_keyword_t, tribool x);
    +BOOST_CONSTEXPR tribool operator||(tribool x, indeterminate_keyword_t);
    +
    +

    Description

    +

    + +

    +
    ++++ + + + + + + + + + + +

    Returns:

    +

    the result of logically ORing the two tribool values, according to the following table:

    +
    ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ||falsetrueindeterminate
    falsefalsetrueindeterminate
    truetruetruetrue
    indeterminateindeterminatetrueindeterminate
    +

    +

    +

    Throws:

    Will not throw.
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/logic/operator_idp31770720.html b/doc/html/boost/logic/operator_idp31770720.html new file mode 100644 index 0000000000..30605da674 --- /dev/null +++ b/doc/html/boost/logic/operator_idp31770720.html @@ -0,0 +1,71 @@ + + + + +Function template operator<< + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator<<

    +

    boost::logic::operator<< — Writes the value of a tribool to a stream.

    +
    +

    Synopsis

    +
    // In header: <boost/logic/tribool_io.hpp>
    +
    +
    +template<typename CharT, typename Traits> 
    +  std::basic_ostream< CharT, Traits > & 
    +  operator<<(std::basic_ostream< CharT, Traits > & out, tribool x);
    +
    +

    Description

    +

    When the value of x is either true or false, this routine is semantically equivalent to:

    +
    out << static_cast<bool>(x); 
    +
    +

    When x has an indeterminate value, it outputs either the integer value 2 (if (out.flags() & std::ios_base::boolalpha) == 0) or the name of the indeterminate value. The name of the indeterminate value comes from the indeterminate_name facet (if it is defined in the output stream's locale), or from the get_default_indeterminate_name function (if it is not defined in the locale or if the C++ standard library implementation does not support locales).

    +

    +

    +
    ++++ + + + + +

    Returns:

    out

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/logic/operator_idp31779280.html b/doc/html/boost/logic/operator_idp31779280.html new file mode 100644 index 0000000000..2a697c84f6 --- /dev/null +++ b/doc/html/boost/logic/operator_idp31779280.html @@ -0,0 +1,68 @@ + + + + +Function template operator<< + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator<<

    +

    boost::logic::operator<< — Writes the indeterminate tribool value to a stream.

    +
    +

    Synopsis

    +
    // In header: <boost/logic/tribool_io.hpp>
    +
    +
    +template<typename CharT, typename Traits> 
    +  std::basic_ostream< CharT, Traits > & 
    +  operator<<(std::basic_ostream< CharT, Traits > & out, unspecified);
    +
    +

    Description

    +

    This routine outputs either the integer value 2 (if (out.flags() & std::ios_base::boolalpha) == 0) or the name of the indeterminate value. The name of the indeterminate value comes from the indeterminate_name facet (if it is defined in the output stream's locale), or from the get_default_indeterminate_name function (if it is not defined in the locale or if the C++ standard library implementation does not support locales).

    +

    +

    +
    ++++ + + + + +

    Returns:

    out

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/logic/operator_idp31785552.html b/doc/html/boost/logic/operator_idp31785552.html new file mode 100644 index 0000000000..2703e21b7f --- /dev/null +++ b/doc/html/boost/logic/operator_idp31785552.html @@ -0,0 +1,69 @@ + + + + +Function template operator>> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template operator>>

    +

    boost::logic::operator>> — Reads a tribool value from a stream.

    +
    +

    Synopsis

    +
    // In header: <boost/logic/tribool_io.hpp>
    +
    +
    +template<typename CharT, typename Traits> 
    +  std::basic_istream< CharT, Traits > & 
    +  operator>>(std::basic_istream< CharT, Traits > & in, tribool & x);
    +
    +

    Description

    +

    When (out.flags() & std::ios_base::boolalpha) == 0, this function reads a long value from the input stream in and converts that value to a tribool. If that value is 0, x becomes false; if it is 1, x becomes true; if it is 2, becomes indetermine; otherwise, the operation fails (and the fail bit is set on the input stream in).

    +

    When (out.flags() & std::ios_base::boolalpha) != 0, this function first determines the names of the false, true, and indeterminate values. The false and true names are extracted from the std::numpunct facet of the input stream's locale (if the C++ standard library implementation supports locales), or from the default_false_name and default_true_name functions (if there is no locale support). The indeterminate name is extracted from the appropriate indeterminate_name facet (if it is available in the input stream's locale), or from the get_default_indeterminate_name function (if the C++ standard library implementation does not support locales, or the indeterminate_name facet is not specified for this locale object). The input is then matched to each of these names, and the tribool x is assigned the value corresponding to the longest name that matched. If no name is matched or all names are empty, the operation fails (and the fail bit is set on the input stream in).

    +

    +

    +
    ++++ + + + + +

    Returns:

    in

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/logic/operator_idp39616176.html b/doc/html/boost/logic/operator_idp39616176.html deleted file mode 100644 index 2f85a7aa5c..0000000000 --- a/doc/html/boost/logic/operator_idp39616176.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - -Function operator|| - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function operator||

    -

    boost::logic::operator|| — Computes the logical disjunction of two tribools.

    -
    -

    Synopsis

    -
    // In header: <boost/logic/tribool.hpp>
    -
    -
    -BOOST_CONSTEXPR tribool operator||(tribool x, tribool y);
    -BOOST_CONSTEXPR tribool operator||(tribool x, bool y);
    -BOOST_CONSTEXPR tribool operator||(bool x, tribool y);
    -BOOST_CONSTEXPR tribool operator||(indeterminate_keyword_t, tribool x);
    -BOOST_CONSTEXPR tribool operator||(tribool x, indeterminate_keyword_t);
    -
    -

    Description

    -

    - -

    -
    ---- - - - - - - - - - - -

    Returns:

    -

    the result of logically ORing the two tribool values, according to the following table:

    -
    ------ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ||falsetrueindeterminate
    falsefalsetrueindeterminate
    truetruetruetrue
    indeterminateindeterminatetrueindeterminate
    -

    -

    -

    Throws:

    Will not throw.
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/logic/operator_idp39725328.html b/doc/html/boost/logic/operator_idp39725328.html deleted file mode 100644 index 555283f834..0000000000 --- a/doc/html/boost/logic/operator_idp39725328.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -Function template operator<< - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator<<

    -

    boost::logic::operator<< — Writes the value of a tribool to a stream.

    -
    -

    Synopsis

    -
    // In header: <boost/logic/tribool_io.hpp>
    -
    -
    -template<typename CharT, typename Traits> 
    -  std::basic_ostream< CharT, Traits > & 
    -  operator<<(std::basic_ostream< CharT, Traits > & out, tribool x);
    -
    -

    Description

    -

    When the value of x is either true or false, this routine is semantically equivalent to:

    -
    out << static_cast<bool>(x); 
    -
    -

    When x has an indeterminate value, it outputs either the integer value 2 (if (out.flags() & std::ios_base::boolalpha) == 0) or the name of the indeterminate value. The name of the indeterminate value comes from the indeterminate_name facet (if it is defined in the output stream's locale), or from the get_default_indeterminate_name function (if it is not defined in the locale or if the C++ standard library implementation does not support locales).

    -

    -

    -
    ---- - - - - -

    Returns:

    out

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/logic/operator_idp39733888.html b/doc/html/boost/logic/operator_idp39733888.html deleted file mode 100644 index 0e0b4eef15..0000000000 --- a/doc/html/boost/logic/operator_idp39733888.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Function template operator<< - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator<<

    -

    boost::logic::operator<< — Writes the indeterminate tribool value to a stream.

    -
    -

    Synopsis

    -
    // In header: <boost/logic/tribool_io.hpp>
    -
    -
    -template<typename CharT, typename Traits> 
    -  std::basic_ostream< CharT, Traits > & 
    -  operator<<(std::basic_ostream< CharT, Traits > & out, unspecified);
    -
    -

    Description

    -

    This routine outputs either the integer value 2 (if (out.flags() & std::ios_base::boolalpha) == 0) or the name of the indeterminate value. The name of the indeterminate value comes from the indeterminate_name facet (if it is defined in the output stream's locale), or from the get_default_indeterminate_name function (if it is not defined in the locale or if the C++ standard library implementation does not support locales).

    -

    -

    -
    ---- - - - - -

    Returns:

    out

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/logic/operator_idp39740160.html b/doc/html/boost/logic/operator_idp39740160.html deleted file mode 100644 index ab5e749f8b..0000000000 --- a/doc/html/boost/logic/operator_idp39740160.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - -Function template operator>> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template operator>>

    -

    boost::logic::operator>> — Reads a tribool value from a stream.

    -
    -

    Synopsis

    -
    // In header: <boost/logic/tribool_io.hpp>
    -
    -
    -template<typename CharT, typename Traits> 
    -  std::basic_istream< CharT, Traits > & 
    -  operator>>(std::basic_istream< CharT, Traits > & in, tribool & x);
    -
    -

    Description

    -

    When (out.flags() & std::ios_base::boolalpha) == 0, this function reads a long value from the input stream in and converts that value to a tribool. If that value is 0, x becomes false; if it is 1, x becomes true; if it is 2, becomes indetermine; otherwise, the operation fails (and the fail bit is set on the input stream in).

    -

    When (out.flags() & std::ios_base::boolalpha) != 0, this function first determines the names of the false, true, and indeterminate values. The false and true names are extracted from the std::numpunct facet of the input stream's locale (if the C++ standard library implementation supports locales), or from the default_false_name and default_true_name functions (if there is no locale support). The indeterminate name is extracted from the appropriate indeterminate_name facet (if it is available in the input stream's locale), or from the get_default_indeterminate_name function (if the C++ standard library implementation does not support locales, or the indeterminate_name facet is not specified for this locale object). The input is then matched to each of these names, and the tribool x is assigned the value corresponding to the longest name that matched. If no name is matched or all names are empty, the operation fails (and the fail bit is set on the input stream in).

    -

    -

    -
    ---- - - - - -

    Returns:

    in

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/logic/tribool.html b/doc/html/boost/logic/tribool.html index add8d9df70..3fd02d0a3a 100644 --- a/doc/html/boost/logic/tribool.html +++ b/doc/html/boost/logic/tribool.html @@ -37,12 +37,12 @@ public: enum value_t; // construct/copy/destruct - tribool() noexcept; - tribool(bool) noexcept; - tribool(indeterminate_keyword_t) noexcept; + tribool() noexcept; + tribool(bool) noexcept; + tribool(indeterminate_keyword_t) noexcept; - // public member functions - BOOST_CONSTEXPR operator safe_bool() const noexcept; + // public member functions + BOOST_CONSTEXPR operator safe_bool() const noexcept; // public data members enum boost::logic::tribool::value_t value; @@ -57,7 +57,7 @@ construct/copy/destruct
    1. -
      tribool() noexcept;
      +
      tribool() noexcept;

      Construct a new 3-state boolean value with the value 'false'.

      @@ -73,7 +73,7 @@
  • -
    tribool(bool initial_value) noexcept;
    +
    tribool(bool initial_value) noexcept;

    Construct a new 3-state boolean value with the given boolean value, which may be true or false.

    @@ -89,7 +89,7 @@
  • -
    tribool(indeterminate_keyword_t) noexcept;
    +
    tribool(indeterminate_keyword_t) noexcept;

    Construct a new 3-state boolean value with an indeterminate value.

    @@ -108,9 +108,9 @@

    -tribool public member functions

    +tribool public member functions
    1. -
      BOOST_CONSTEXPR operator safe_bool() const noexcept;
      +
      BOOST_CONSTEXPR operator safe_bool() const noexcept;

      Use a 3-state boolean in a boolean context. Will evaluate true in a boolean context only when the 3-state boolean is definitely true.

      diff --git a/doc/html/boost/mpi/all_gather.html b/doc/html/boost/mpi/all_gather.html index 38385c15f7..c9c688c3fb 100644 --- a/doc/html/boost/mpi/all_gather.html +++ b/doc/html/boost/mpi/all_gather.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@


      -PrevUpHomeNext +PrevUpHomeNext
      @@ -30,7 +30,7 @@

      boost::mpi::all_gather — Gather the values stored at every process into vectors of values from each process.

      Synopsis

      -
      // In header: <boost/mpi/collectives.hpp>
      +
      // In header: <boost/mpi/collectives.hpp>
       
       
       template<typename T> 
      @@ -46,7 +46,7 @@
         void all_gather(const communicator & comm, const T * in_values, int n, 
                         T * out_values);
      -

      Description

      +

      Description

      all_gather is a collective algorithm that collects the values stored at each process into a vector of values indexed by the process number they came from. The type T of the values may be any type that is serializable or has an associated MPI data type.

      When the type T has an associated MPI data type, this routine invokes MPI_Allgather to gather the values.

      @@ -94,7 +94,7 @@


      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/mpi/all_reduce.html b/doc/html/boost/mpi/all_reduce.html index 982800a10e..e81a16d35c 100644 --- a/doc/html/boost/mpi/all_reduce.html +++ b/doc/html/boost/mpi/all_reduce.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      @@ -30,7 +30,7 @@

      boost::mpi::all_reduce — Combine the values stored by each process into a single value available to all processes.

      Synopsis

      -
      // In header: <boost/mpi/collectives.hpp>
      +
      // In header: <boost/mpi/collectives.hpp>
       
       
       template<typename T, typename Op> 
      @@ -47,7 +47,7 @@
       template<typename T, typename Op> 
         void all_reduce(const communicator & comm, inplace_t< T > value, Op op);
      -

      Description

      +

      Description

      all_reduce is a collective algorithm that combines the values stored by each process into a single value available to all processes. The values are combined in a user-defined way, specified via a function object. The type T of the values may be any type that is serializable or has an associated MPI data type. One can think of this operation as a all_gather, followed by an std::accumulate() over the gather values and using the operation op.

      When the type T has an associated MPI data type, this routine invokes MPI_Allreduce to perform the reduction. If possible, built-in MPI operations will be used; otherwise, all_reduce() will create a custom MPI_Op for the call to MPI_Allreduce.

      @@ -112,7 +112,7 @@ If wrapped in a


      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/mpi/all_to_all.html b/doc/html/boost/mpi/all_to_all.html index dbf9ecbdd3..2639bd0826 100644 --- a/doc/html/boost/mpi/all_to_all.html +++ b/doc/html/boost/mpi/all_to_all.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      @@ -30,7 +30,7 @@

      boost::mpi::all_to_all — Send data from every process to every other process.

      Synopsis

      -
      // In header: <boost/mpi/collectives.hpp>
      +
      // In header: <boost/mpi/collectives.hpp>
       
       
       template<typename T> 
      @@ -48,7 +48,7 @@
         void all_to_all(const communicator & comm, const T * in_values, int n, 
                         T * out_values);
      -

      Description

      +

      Description

      all_to_all is a collective algorithm that transmits p values from every process to every other process. On process i, jth value of the in_values vector is sent to process j and placed in the ith position of the out_values vector in process j. The type T of the values may be any type that is serializable or has an associated MPI data type. If n is provided, then arrays of n values will be transferred from one process to another.

      When the type T has an associated MPI data type, this routine invokes MPI_Alltoall to scatter the values.

      @@ -96,7 +96,7 @@


      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2.html b/doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2.html new file mode 100644 index 0000000000..81abf6abd5 --- /dev/null +++ b/doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2.html @@ -0,0 +1,70 @@ + + + + +Class allocator<void> + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Class allocator<void>

      +

      boost::mpi::allocator<void> — Allocator specialization for void value types.

      +
      +

      Synopsis

      +
      // In header: <boost/mpi/allocator.hpp>
      +
      +
      +class allocator<void> {
      +public:
      +  // types
      +  typedef void *       pointer;      
      +  typedef const void * const_pointer;
      +  typedef void         value_type;   
      +
      +  // member classes/structs/unions
      +  template<typename U> 
      +  struct rebind {
      +    // types
      +    typedef allocator< U > other;
      +  };
      +};
      +
      +

      Description

      +

      The void specialization of allocator is useful only for rebinding to another, different value type.

      +
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2/rebind.html b/doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2/rebind.html new file mode 100644 index 0000000000..3b9efbebfc --- /dev/null +++ b/doc/html/boost/mpi/alloca_1_3_26_5_14_2_2_1_2/rebind.html @@ -0,0 +1,57 @@ + + + + +Struct template rebind + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Struct template rebind

      +

      boost::mpi::allocator<void>::rebind

      +
      +

      Synopsis

      +
      // In header: <boost/mpi/allocator.hpp>
      +
      +
      +template<typename U> 
      +struct rebind {
      +  // types
      +  typedef allocator< U > other;
      +};
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/mpi/allocator.html b/doc/html/boost/mpi/allocator.html index 1b75bf8a4e..939357914c 100644 --- a/doc/html/boost/mpi/allocator.html +++ b/doc/html/boost/mpi/allocator.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      @@ -30,7 +30,7 @@

      boost::mpi::allocator — Standard Library-compliant allocator for the MPI-2 memory allocation routines.

      Synopsis

      -
      // In header: <boost/mpi/allocator.hpp>
      +
      // In header: <boost/mpi/allocator.hpp>
       
       template<typename T> 
       class allocator {
      @@ -55,62 +55,62 @@
         };
       
         // construct/copy/destruct
      -  allocator();
      -  allocator(const allocator &);
      -  template<typename U> allocator(const allocator< U > &);
      -  ~allocator();
      +  allocator();
      +  allocator(const allocator &);
      +  template<typename U> allocator(const allocator< U > &);
      +  ~allocator();
       
      -  // public member functions
      -  pointer address(reference) const;
      -  const_pointer address(const_reference) const;
      -  pointer allocate(size_type, allocator< void >::const_pointer = 0);
      -  void deallocate(pointer, size_type);
      -  size_type max_size() const;
      -  void construct(pointer, const T &);
      -  void destroy(pointer);
      +  // public member functions
      +  pointer address(reference) const;
      +  const_pointer address(const_reference) const;
      +  pointer allocate(size_type, allocator< void >::const_pointer = 0);
      +  void deallocate(pointer, size_type);
      +  size_type max_size() const;
      +  void construct(pointer, const T &);
      +  void destroy(pointer);
       };
      -

      Description

      +

      Description

      This allocator provides a standard C++ interface to the MPI_Alloc_mem and MPI_Free_mem routines of MPI-2. It is intended to be used with the containers in the Standard Library (vector, in particular) in cases where the contents of the container will be directly transmitted via MPI. This allocator is also used internally by the library for character buffers that will be used in the transmission of data.

      The allocator class template only provides MPI memory allocation when the underlying MPI implementation is either MPI-2 compliant or is known to provide MPI_Alloc_mem and MPI_Free_mem as extensions. When the MPI memory allocation routines are not available, allocator is brought in directly from namespace std, so that standard allocators are used throughout. The macro BOOST_MPI_HAS_MEMORY_ALLOCATION will be defined when the MPI-2 memory allocation facilities are available.

      -

      +

      allocator public construct/copy/destruct

      1. -
        allocator();
        +
        allocator();

        Default-construct an allocator.

      2. -
        allocator(const allocator &);
        +
        allocator(const allocator &);

        Copy-construct an allocator.

      3. -
        template<typename U> allocator(const allocator< U > &);
        +
        template<typename U> allocator(const allocator< U > &);

        Copy-construct an allocator from another allocator for a different value type.

      4. -
        ~allocator();
        +
        ~allocator();

        Destroy an allocator.

      -

      -allocator public member functions

      +

      +allocator public member functions

      1. -
        pointer address(reference x) const;
        +
        pointer address(reference x) const;

        Returns the address of object x.

      2. -
        const_pointer address(const_reference x) const;
        +
        const_pointer address(const_reference x) const;

        Returns the address of object x.

      3. -
        pointer allocate(size_type n, allocator< void >::const_pointer = 0);
        +
        pointer allocate(size_type n, allocator< void >::const_pointer = 0);

        Allocate enough memory for n elements of type T.

        @@ -142,7 +142,7 @@

    2. -
      void deallocate(pointer p, size_type);
      +
      void deallocate(pointer p, size_type);

      Deallocate memory referred to by the pointer p.

      @@ -167,22 +167,22 @@
  • -
    size_type max_size() const;
    +
    size_type max_size() const;

    Returns the maximum number of elements that can be allocated with allocate().

  • -
    void construct(pointer p, const T & val);
    +
    void construct(pointer p, const T & val);

    Construct a copy of val at the location referenced by p.

  • -
    void destroy(pointer p);
    +
    void destroy(pointer p);

    Destroy the object referenced by p.

  • -

    Specializations

    - +

    Specializations

    +
    @@ -198,7 +198,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/allocator/rebind.html b/doc/html/boost/mpi/allocator/rebind.html index d2e395022d..55866568db 100644 --- a/doc/html/boost/mpi/allocator/rebind.html +++ b/doc/html/boost/mpi/allocator/rebind.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,7 +30,7 @@

    boost::mpi::allocator::rebind — Retrieve the type of an allocator similar to this allocator but for a different value type.

    Synopsis

    -
    // In header: <boost/mpi/allocator.hpp>
    +
    // In header: <boost/mpi/allocator.hpp>
     
     
     
    @@ -54,7 +54,7 @@
     
     
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2.html b/doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2.html deleted file mode 100644 index 44ebf4c2ac..0000000000 --- a/doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -Class allocator<void> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class allocator<void>

    -

    boost::mpi::allocator<void> — Allocator specialization for void value types.

    -
    -

    Synopsis

    -
    // In header: <boost/mpi/allocator.hpp>
    -
    -
    -class allocator<void> {
    -public:
    -  // types
    -  typedef void *       pointer;      
    -  typedef const void * const_pointer;
    -  typedef void         value_type;   
    -
    -  // member classes/structs/unions
    -  template<typename U> 
    -  struct rebind {
    -    // types
    -    typedef allocator< U > other;
    -  };
    -};
    -
    -

    Description

    -

    The void specialization of allocator is useful only for rebinding to another, different value type.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2/rebind.html b/doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2/rebind.html deleted file mode 100644 index dc251e8ab5..0000000000 --- a/doc/html/boost/mpi/allocator_1_3_26_6_2_2_1_2/rebind.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Struct template rebind - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Struct template rebind

    -

    boost::mpi::allocator<void>::rebind

    -
    -

    Synopsis

    -
    // In header: <boost/mpi/allocator.hpp>
    -
    -
    -template<typename U> 
    -struct rebind {
    -  // types
    -  typedef allocator< U > other;
    -};
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/mpi/any_source.html b/doc/html/boost/mpi/any_source.html index a3aaaccd3a..2b99a27f6b 100644 --- a/doc/html/boost/mpi/any_source.html +++ b/doc/html/boost/mpi/any_source.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,11 +30,11 @@

    boost::mpi::any_source — A constant representing "any process.".

    Synopsis

    -
    // In header: <boost/mpi/communicator.hpp>
    +
    // In header: <boost/mpi/communicator.hpp>
     
     const int any_source;
    -

    Description

    +

    Description

    This constant may be used for the source parameter of receive operations to indicate that a message may be received from any source.

    @@ -50,7 +50,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/any_tag.html b/doc/html/boost/mpi/any_tag.html index 581d82aea9..8b301c8935 100644 --- a/doc/html/boost/mpi/any_tag.html +++ b/doc/html/boost/mpi/any_tag.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,11 +30,11 @@

    boost::mpi::any_tag — A constant representing "any tag.".

    Synopsis

    -
    // In header: <boost/mpi/communicator.hpp>
    +
    // In header: <boost/mpi/communicator.hpp>
     
     const int any_tag;
    -

    Description

    +

    Description

    This constant may be used for the tag parameter of receive operations to indicate that a send with any tag will be matched by the receive.

    @@ -50,7 +50,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/bitwise_and.html b/doc/html/boost/mpi/bitwise_and.html index 2dcd154d2c..3ca0af4e72 100644 --- a/doc/html/boost/mpi/bitwise_and.html +++ b/doc/html/boost/mpi/bitwise_and.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,22 +30,26 @@

    boost::mpi::bitwise_and — Compute the bitwise AND of two integral values.

    Synopsis

    -
    // In header: <boost/mpi/operations.hpp>
    +
    // In header: <boost/mpi/operations.hpp>
     
     template<typename T> 
    -struct bitwise_and : public std::binary_function< T, T, T > {
    +struct bitwise_and {
    +  // types
    +  typedef T first_argument_type; 
    +  typedef T second_argument_type;
    +  typedef T result_type;         
     
    -  // public member functions
    -  T operator()(const T &, const T &) const;
    +  // public member functions
    +  T operator()(const T &, const T &) const;
     };
    -

    Description

    +

    Description

    This binary function object computes the bitwise AND of the two values it is given. When used with MPI and a type T that has an associated, built-in MPI data type, translates to MPI_BAND.

    -

    -bitwise_and public member functions

    +

    +bitwise_and public member functions

    1. -
      T operator()(const T & x, const T & y) const;
      +
      T operator()(const T & x, const T & y) const;

      @@ -74,7 +78,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/mpi/bitwise_or.html b/doc/html/boost/mpi/bitwise_or.html index 8cc212ec5f..2047e69b8e 100644 --- a/doc/html/boost/mpi/bitwise_or.html +++ b/doc/html/boost/mpi/bitwise_or.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      @@ -30,22 +30,26 @@

      boost::mpi::bitwise_or — Compute the bitwise OR of two integral values.

      Synopsis

      -
      // In header: <boost/mpi/operations.hpp>
      +
      // In header: <boost/mpi/operations.hpp>
       
       template<typename T> 
      -struct bitwise_or : public std::binary_function< T, T, T > {
      +struct bitwise_or {
      +  // types
      +  typedef T first_argument_type; 
      +  typedef T second_argument_type;
      +  typedef T result_type;         
       
      -  // public member functions
      -  T operator()(const T &, const T &) const;
      +  // public member functions
      +  T operator()(const T &, const T &) const;
       };
      -

      Description

      +

      Description

      This binary function object computes the bitwise OR of the two values it is given. When used with MPI and a type T that has an associated, built-in MPI data type, translates to MPI_BOR.

      -

      -bitwise_or public member functions

      +

      +bitwise_or public member functions

      1. -
        T operator()(const T & x, const T & y) const;
        +
        T operator()(const T & x, const T & y) const;

        @@ -74,7 +78,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/mpi/bitwise_xor.html b/doc/html/boost/mpi/bitwise_xor.html index 05333a446b..5975368e77 100644 --- a/doc/html/boost/mpi/bitwise_xor.html +++ b/doc/html/boost/mpi/bitwise_xor.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        @@ -30,22 +30,26 @@

        boost::mpi::bitwise_xor — Compute the bitwise exclusive OR of two integral values.

        Synopsis

        -
        // In header: <boost/mpi/operations.hpp>
        +
        // In header: <boost/mpi/operations.hpp>
         
         template<typename T> 
        -struct bitwise_xor : public std::binary_function< T, T, T > {
        +struct bitwise_xor {
        +  // types
        +  typedef T first_argument_type; 
        +  typedef T second_argument_type;
        +  typedef T result_type;         
         
        -  // public member functions
        -  T operator()(const T &, const T &) const;
        +  // public member functions
        +  T operator()(const T &, const T &) const;
         };
        -

        Description

        +

        Description

        This binary function object computes the bitwise exclusive OR of the two values it is given. When used with MPI and a type T that has an associated, built-in MPI data type, translates to MPI_BXOR.

        -

        -bitwise_xor public member functions

        +

        +bitwise_xor public member functions

        1. -
          T operator()(const T & x, const T & y) const;
          +
          T operator()(const T & x, const T & y) const;

          @@ -74,7 +78,7 @@

          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/broadcast.html b/doc/html/boost/mpi/broadcast.html index 2df105a1e5..943061ae12 100644 --- a/doc/html/boost/mpi/broadcast.html +++ b/doc/html/boost/mpi/broadcast.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,7 +30,7 @@

          boost::mpi::broadcast — Broadcast a value from a root process to all other processes.

          Synopsis

          -
          // In header: <boost/mpi/collectives.hpp>
          +
          // In header: <boost/mpi/collectives.hpp>
           
           
           template<typename T> 
          @@ -44,7 +44,7 @@
             void broadcast(const communicator & comm, const skeleton_proxy< T > & value, 
                            int root);
          -

          Description

          +

          Description

          broadcast is a collective algorithm that transfers a value from an arbitrary root process to every other process that is part of the given communicator. The broadcast algorithm can transmit any Serializable value, values that have associated MPI data types, packed archives, skeletons, and the content of skeletons; see the send primitive for communicators for a complete list. The type T shall be the same for all processes that are a part of the communicator comm, unless packed archives are being transferred: with packed archives, the root sends a packed_oarchive or packed_skeleton_oarchive whereas the other processes receive a packed_iarchive or packed_skeleton_iarchve, respectively.

          When the type T has an associated MPI data type, this routine invokes MPI_Bcast to perform the broadcast.

          @@ -92,7 +92,7 @@


          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/cartesian_communicator.html b/doc/html/boost/mpi/cartesian_communicator.html new file mode 100644 index 0000000000..f527ea26c9 --- /dev/null +++ b/doc/html/boost/mpi/cartesian_communicator.html @@ -0,0 +1,263 @@ + + + + +Class cartesian_communicator + + + + + + + + + + + + + + + +
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          +
          +
          +PrevUpHomeNext +
          +
          +
          +
          +

          Class cartesian_communicator

          +

          boost::mpi::cartesian_communicator — An MPI communicator with a cartesian topology.

          +
          +

          Synopsis

          +
          // In header: <boost/mpi/cartesian_communicator.hpp>
          +
          +
          +class cartesian_communicator : public boost::mpi::communicator {
          +public:
          +  // construct/copy/destruct
          +  cartesian_communicator(const MPI_Comm &, comm_create_kind);
          +  cartesian_communicator(const communicator &, const cartesian_topology &, 
          +                         bool = false);
          +  cartesian_communicator(const cartesian_communicator &, 
          +                         const std::vector< int > &);
          +
          +  // public member functions
          +  int ndims() const;
          +  int rank(const std::vector< int > &) const;
          +  std::pair< int, int > shifted_ranks(int, int) const;
          +  std::vector< int > coordinates(int) const;
          +  void topology(cartesian_topology &, std::vector< int > &) const;
          +  cartesian_topology topology() const;
          +};
          +
          +

          Description

          +

          A cartesian_communicator is a communicator whose topology is expressed as a grid. Cartesian communicators have the same functionality as (intra)communicators, but also allow one to query the relationships among processes and the properties of the grid.

          +
          +

          +cartesian_communicator + public + construct/copy/destruct

          +
            +
          1. +
            cartesian_communicator(const MPI_Comm & comm, comm_create_kind kind);
            +

            Build a new Boost.MPI cartesian communicator based on the MPI communicator comm with cartesian topology.

            +

            comm may be any valid MPI communicator. If comm is MPI_COMM_NULL, an empty communicator (that cannot be used for communication) is created and the kind parameter is ignored. Otherwise, the kind parameter determines how the Boost.MPI communicator will be related to comm:

            +
              +
            • If kind is comm_duplicate, duplicate comm to create a new communicator. This new communicator will be freed when the Boost.MPI communicator (and all copies of it) is destroyed. This option is only permitted if the underlying MPI implementation supports MPI 2.0; duplication of intercommunicators is not available in MPI 1.x.

            • +
            • If kind is comm_take_ownership, take ownership of comm. It will be freed automatically when all of the Boost.MPI communicators go out of scope.

            • +
            • If kind is comm_attach, this Boost.MPI communicator will reference the existing MPI communicator comm but will not free comm when the Boost.MPI communicator goes out of scope. This option should only be used when the communicator is managed by the user.

            • +
            +

            +

            +
          2. +
          3. +
            cartesian_communicator(const communicator & comm, 
            +                       const cartesian_topology & dims, bool reorder = false);
            +

            Create a new communicator whose topology is described by the given cartesian. The indices of the vertices in the cartesian will be assumed to be the ranks of the processes within the communicator. There may be fewer vertices in the cartesian than there are processes in the communicator; in this case, the resulting communicator will be a NULL communicator.

            +

            +

            +
            ++++ + + + + +

            Parameters:

            ++++ + + + + + + + + + + + + + + +

            comm

            The communicator that the new, cartesian communicator will be based on.

            dims

            the cartesian dimension of the new communicator. The size indicate the number of dimension. Some dimensions be set to zero, in which case the corresponding dimension value is left to the system.

            reorder

            Whether MPI is permitted to re-order the process ranks within the returned communicator, to better optimize communication. If false, the ranks of each process in the returned process will match precisely the rank of that process within the original communicator.

            +
          4. +
          5. +
            cartesian_communicator(const cartesian_communicator & comm, 
            +                       const std::vector< int > & keep);
            +

            Create a new cartesian communicator whose topology is a subset of an existing cartesian cimmunicator. +

            +
            ++++ + + + + +

            Parameters:

            ++++ + + + + + + + + + + +

            comm

            the original communicator.

            keep

            and array containiing the dimension to keep from the existing communicator.

            +
          6. +
          +
          +
          +

          +cartesian_communicator public member functions

          +
            +
          1. +
            int ndims() const;
            +

            Retrive the number of dimension of the underlying toppology.

            +
          2. +
          3. +
            int rank(const std::vector< int > & coords) const;
            +

            Return the rank of the process at the given coordinates. +

            +
            ++++ + + + + +

            Parameters:

            ++++ + + + + +

            coords

            the coordinates. the size must match the communicator's topology.

            +
          4. +
          5. +
            std::pair< int, int > shifted_ranks(int dim, int disp) const;
            +

            Return the rank of the source and target destination process through a shift. +

            +
            ++++ + + + + +

            Parameters:

            ++++ + + + + + + + + + + +

            dim

            the dimension in which the shift takes place. 0 <= dim <= ndim().

            disp

            the shift displacement, can be positive (upward) or negative (downward).

            +
          6. +
          7. +
            std::vector< int > coordinates(int rk) const;
            +

            Provides the coordinates of the process with the given rank. + +

            +
            ++++ + + + + + + + + + + +

            Parameters:

            ++++ + + + + +

            rk

            the ranks in this communicator.

            Returns:

            the coordinates.

            +
          8. +
          9. +
            void topology(cartesian_topology & dims, std::vector< int > & coords) const;
            +

            Retrieve the topology and coordinates of this process in the grid.

            +
          10. +
          11. +
            cartesian_topology topology() const;
            +

            Retrieve the topology of the grid.

            +
          12. +
          +
          +
          +
          + + + +
          +
          +
          +PrevUpHomeNext +
          + + diff --git a/doc/html/boost/mpi/cartesian_dimension.html b/doc/html/boost/mpi/cartesian_dimension.html new file mode 100644 index 0000000000..b588a74457 --- /dev/null +++ b/doc/html/boost/mpi/cartesian_dimension.html @@ -0,0 +1,96 @@ + + + + +Struct cartesian_dimension + + + + + + + + + + + + + + + +
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          +
          +
          +PrevUpHomeNext +
          +
          +
          +
          +

          Struct cartesian_dimension

          +

          boost::mpi::cartesian_dimension — Specify the size and periodicity of the grid in a single dimension.

          +
          +

          Synopsis

          +
          // In header: <boost/mpi/cartesian_communicator.hpp>
          +
          +
          +struct cartesian_dimension {
          +  // construct/copy/destruct
          +  cartesian_dimension(int = 0, bool = false);
          +
          +  // private member functions
          +  template<typename Archive> void serialize(Archive &, const unsigned int);
          +
          +  // public data members
          +  int size;
          +  bool periodic;
          +};
          +
          +

          Description

          +

          POD lightweight object.

          +
          +

          +cartesian_dimension + public + construct/copy/destruct

          +
          1. cartesian_dimension(int sz = 0, bool p = false);
          +
          +
          +

          +cartesian_dimension private member functions

          +
          1. template<typename Archive> 
            +  void serialize(Archive & ar, const unsigned int version);
          +
          +
          +

          +cartesian_dimension + public + public data members

          +
            +
          1. +
            int size;
            +

            The size of the grid n this dimension.

            +
          2. +
          3. +
            bool periodic;
            +

            Is the grid periodic in this dimension.

            +
          4. +
          +
          +
          +
          + + + +
          +
          +
          +PrevUpHomeNext +
          + + diff --git a/doc/html/boost/mpi/cartesian_dimensions.html b/doc/html/boost/mpi/cartesian_dimensions.html new file mode 100644 index 0000000000..bce41db0c4 --- /dev/null +++ b/doc/html/boost/mpi/cartesian_dimensions.html @@ -0,0 +1,84 @@ + + + + +Function cartesian_dimensions + + + + + + + + + + + + + + + +
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          +
          +
          +PrevUpHomeNext +
          +
          +
          +
          +

          Function cartesian_dimensions

          +

          boost::mpi::cartesian_dimensions

          +
          +

          Synopsis

          +
          // In header: <boost/mpi/cartesian_communicator.hpp>
          +
          +
          +std::vector< int > & 
          +cartesian_dimensions(int nb_proc, std::vector< int > & dims);
          +
          +

          Description

          +

          Given en number of processes, and a partially filled sequence of dimension, try to complete the dimension sequence. +

          +
          ++++ + + + + +

          Parameters:

          ++++ + + + + + + + + + + +

          dims

          a sequence of positive or null dimensions. Non zero dimension will be left untouched.

          nb_proc

          the numer of mpi processes.fill a sequence of dimension.

          +
          +
          + + + +
          +
          +
          +PrevUpHomeNext +
          + + diff --git a/doc/html/boost/mpi/cartesian_topology.html b/doc/html/boost/mpi/cartesian_topology.html new file mode 100644 index 0000000000..b65e9f6697 --- /dev/null +++ b/doc/html/boost/mpi/cartesian_topology.html @@ -0,0 +1,182 @@ + + + + +Class cartesian_topology + + + + + + + + + + + + + + + +
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          +
          +
          +PrevUpHomeNext +
          +
          +
          +
          +

          Class cartesian_topology

          +

          boost::mpi::cartesian_topology — Describe the topology of a cartesian grid.

          +
          +

          Synopsis

          +
          // In header: <boost/mpi/cartesian_communicator.hpp>
          +
          +
          +class cartesian_topology : private std::vector< cartesian_dimension > {
          +public:
          +  // construct/copy/destruct
          +  cartesian_topology() = delete;
          +  cartesian_topology(cartesian_topology const &) = default;
          +  cartesian_topology(cartesian_topology const &&);
          +  cartesian_topology(int);
          +  cartesian_topology(std::vector< cartesian_dimension > const &);
          +  template<typename InitArr> explicit cartesian_topology(InitArr);
          +  explicit cartesian_topology(std::initializer_list< cartesian_dimension >);
          +  template<int NDIM> explicit cartesian_topology(cartesian_dimension(&));
          +  template<typename DimRg, typename PerRg> 
          +    cartesian_topology(DimRg const &, PerRg const &);
          +  template<typename DimIter, typename PerIter> 
          +    cartesian_topology(DimIter, PerIter, int);
          +  cartesian_topology & operator=(cartesian_topology const &) = default;
          +  cartesian_topology & operator=(cartesian_topology const &&);
          +  ~cartesian_topology();
          +
          +  // public member functions
          +  std::vector< cartesian_dimension > & stl();
          +  std::vector< cartesian_dimension > const & stl() const;
          +  void split(std::vector< int > &, std::vector< bool > &) const;
          +};
          +
          +

          Description

          +

          Behave mostly like a sequence of cartesian_dimension with the notable exception that its size is fixed. This is a lightweight object, so that any constructor that could be considered missing could be replaced with a function (move constructor provided when supported).

          +
          +

          +cartesian_topology + public + construct/copy/destruct

          +
            +
          1. cartesian_topology() = delete;
          2. +
          3. cartesian_topology(cartesian_topology const &) = default;
          4. +
          5. cartesian_topology(cartesian_topology const && other);
          6. +
          7. +
            cartesian_topology(int ndim);
            Create a N dimension space. Each dimension is initialized as non periodic of size 0.
          8. +
          9. +
            cartesian_topology(std::vector< cartesian_dimension > const & dims);
            Use the provided dimensions specification as initial values.
          10. +
          11. +
            template<typename InitArr> explicit cartesian_topology(InitArr dims);
            Use dimensions specification provided in the sequence container as initial values. #param dims must be a sequence container.
          12. +
          13. +
            explicit cartesian_topology(std::initializer_list< cartesian_dimension > dims);
            Use dimensions specification provided in the initialization list as initial values. #param dims can be of the form { dim_1, false}, .... {dim_n, true}.
          14. +
          15. +
            template<int NDIM> explicit cartesian_topology(cartesian_dimension(&) dims);
            Use dimensions specification provided in the array. #param dims can be of the form { dim_1, false}, .... {dim_n, true}.
          16. +
          17. +
            template<typename DimRg, typename PerRg> 
            +  cartesian_topology(DimRg const & dim_rg, PerRg const & period_rg);
            Use dimensions specification provided in the input ranges The ranges do not need to be the same size. If the sizes are different, the missing values will be complete with zeros of the dim and assumed non periodic.

            +

            +
            ++++ + + + + +

            Parameters:

            ++++ + + + + + + + + + + +

            dim_rg

            the dimensions, values must convert to integers.

            period_rg

            the periodicities, values must convert to booleans. #param dims can be of the form { dim_1, false}, .... {dim_n, true}

            +
          18. +
          19. +
            template<typename DimIter, typename PerIter> 
            +  cartesian_topology(DimIter dit, PerIter pit, int n);
            Iterator based initializer. Will use the first n iterated values. Both iterators can be single pass.

            +

            +
            ++++ + + + + +

            Parameters:

            ++++ + + + + + + + + + + +

            dit

            dimension iterator, value must convert to integer type.

            pit

            periodicity iterator, value must convert to booleans..

            +
          20. +
          21. cartesian_topology & operator=(cartesian_topology const &) = default;
          22. +
          23. cartesian_topology & operator=(cartesian_topology const && other);
          24. +
          25. ~cartesian_topology();
          26. +
          +
          +
          +

          +cartesian_topology public member functions

          +
            +
          1. +
            std::vector< cartesian_dimension > & stl();
            +

            Export as an stl sequence.

            +
          2. +
          3. +
            std::vector< cartesian_dimension > const & stl() const;
            +

            Export as an stl sequence.

            +
          4. +
          5. +
            void split(std::vector< int > & dims, std::vector< bool > & periodics) const;
            +

            Split the topology in two sequences of sizes and periodicities.

            +
          6. +
          +
          +
          +
          + + + +
          +
          +
          +PrevUpHomeNext +
          + + diff --git a/doc/html/boost/mpi/comm_create_kind.html b/doc/html/boost/mpi/comm_create_kind.html index 8f5957bbf0..829f6490e3 100644 --- a/doc/html/boost/mpi/comm_create_kind.html +++ b/doc/html/boost/mpi/comm_create_kind.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,13 +30,13 @@

          boost::mpi::comm_create_kind — Enumeration used to describe how to adopt a C MPI_Comm into a Boost.MPI communicator.

          Synopsis

          -
          // In header: <boost/mpi/communicator.hpp>
          +
          // In header: <boost/mpi/communicator.hpp>
           
           
           
           enum comm_create_kind { comm_duplicate, comm_take_ownership, comm_attach };
          -

          Description

          +

          Description

          The values for this enumeration determine how a Boost.MPI communicator will behave when constructed with an MPI communicator. The options are:

          • comm_duplicate: Duplicate the MPI_Comm communicator to create a new communicator (e.g., with MPI_Comm_dup). This new MPI_Comm communicator will be automatically freed when the Boost.MPI communicator (and all copies of it) is destroyed.

          • @@ -59,7 +59,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/communicator.html b/doc/html/boost/mpi/communicator.html index 3eba689907..983d1664b1 100644 --- a/doc/html/boost/mpi/communicator.html +++ b/doc/html/boost/mpi/communicator.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,80 +30,82 @@

            boost::mpi::communicator — A communicator that permits communication and synchronization among a set of processes.

            Synopsis

            -
            // In header: <boost/mpi/communicator.hpp>
            +
            // In header: <boost/mpi/communicator.hpp>
             
             
             class communicator {
             public:
               // construct/copy/destruct
            -  communicator();
            -  communicator(const MPI_Comm &, comm_create_kind);
            -  communicator(const communicator &, const boost::mpi::group &);
            +  communicator();
            +  communicator(const MPI_Comm &, comm_create_kind);
            +  communicator(const communicator &, const boost::mpi::group &);
             
            -  // public member functions
            -  int rank() const;
            -  int size() const;
            -  boost::mpi::group group() const;
            -  template<typename T> void send(int, int, const T &) const;
            +  // public member functions
            +  int rank() const;
            +  int size() const;
            +  boost::mpi::group group() const;
            +  template<typename T> void send(int, int, const T &) const;
               template<typename T, typename A> 
            -    void send(int, int, const std::vector< T, A > &) const;
            +    void send(int, int, const std::vector< T, A > &) const;
               template<typename T, typename A> 
            -    void send_vector(int, int, const std::vector< T, A > &, mpl::true_) const;
            +    void send_vector(int, int, const std::vector< T, A > &, mpl::true_) const;
               template<typename T, typename A> 
            -    void send_vector(int, int, const std::vector< T, A > &, mpl::false_) const;
            -  template<typename T> void send(int, int, const skeleton_proxy< T > &) const;
            -  template<typename T> void send(int, int, const T *, int) const;
            -  void send(int, int) const;
            -  template<typename T> status recv(int, int, T &) const;
            +    void send_vector(int, int, const std::vector< T, A > &, mpl::false_) const;
            +  template<typename T> void send(int, int, const skeleton_proxy< T > &) const;
            +  template<typename T> void send(int, int, const T *, int) const;
            +  void send(int, int) const;
            +  template<typename T> status recv(int, int, T &) const;
               template<typename T, typename A> 
            -    status recv(int, int, std::vector< T, A > &) const;
            +    status recv(int, int, std::vector< T, A > &) const;
               template<typename T, typename A> 
            -    status recv_vector(int, int, std::vector< T, A > &, mpl::true_) const;
            +    status recv_vector(int, int, std::vector< T, A > &, mpl::true_) const;
               template<typename T, typename A> 
            -    status recv_vector(int, int, std::vector< T, A > &, mpl::false_) const;
            +    status recv_vector(int, int, std::vector< T, A > &, mpl::false_) const;
               template<typename T> 
            -    status recv(int, int, const skeleton_proxy< T > &) const;
            -  template<typename T> status recv(int, int, skeleton_proxy< T > &) const;
            -  template<typename T> status recv(int, int, T *, int) const;
            -  status recv(int, int) const;
            +    status recv(int, int, const skeleton_proxy< T > &) const;
            +  template<typename T> status recv(int, int, skeleton_proxy< T > &) const;
            +  template<typename T> status recv(int, int, T *, int) const;
            +  status recv(int, int) const;
               template<typename T> 
            -    status sendrecv(int, int, const T &, int, int, T &) const;
            -  template<typename T> request isend(int, int, const T &) const;
            +    status sendrecv(int, int, const T &, int, int, T &) const;
            +  template<typename T> request isend(int, int, const T &) const;
               template<typename T> 
            -    request isend(int, int, const skeleton_proxy< T > &) const;
            -  template<typename T> request isend(int, int, const T *, int) const;
            -  request isend(int, int) const;
            -  template<typename T> request irecv(int, int, T &) const;
            -  template<typename T> request irecv(int, int, T *, int) const;
            -  request irecv(int, int) const;
            -  status probe(int = any_source, int = any_tag) const;
            -  optional< status > iprobe(int = any_source, int = any_tag) const;
            -  void barrier() const;
            -  operator bool() const;
            -  operator MPI_Comm() const;
            -  communicator split(int) const;
            -  communicator split(int, int) const;
            -  optional< intercommunicator > as_intercommunicator() const;
            -  optional< graph_communicator > as_graph_communicator() const;
            -  bool has_cartesian_topology() const;
            -  void abort(int) const;
            +    request isend(int, int, const skeleton_proxy< T > &) const;
            +  template<typename T> request isend(int, int, const T *, int) const;
            +  request isend(int, int) const;
            +  template<typename T> request irecv(int, int, T &) const;
            +  template<typename T> request irecv(int, int, T *, int) const;
            +  request irecv(int, int) const;
            +  status probe(int = any_source, int = any_tag) const;
            +  optional< status > iprobe(int = any_source, int = any_tag) const;
            +  void barrier() const;
            +  operator bool() const;
            +  operator MPI_Comm() const;
            +  communicator split(int) const;
            +  communicator split(int, int) const;
            +  optional< intercommunicator > as_intercommunicator() const;
            +  optional< graph_communicator > as_graph_communicator() const;
            +  bool has_graph_topology() const;
            +  optional< cartesian_communicator > as_cartesian_communicator() const;
            +  bool has_cartesian_topology() const;
            +  void abort(int) const;
             };
            -

            Description

            +

            Description

            The communicator class abstracts a set of communicating processes in MPI. All of the processes that belong to a certain communicator can determine the size of the communicator, their rank within the communicator, and communicate with any other processes in the communicator.

            -

            +

            communicator public construct/copy/destruct

            1. -
              communicator();
              +
              communicator();

              Build a new Boost.MPI communicator for MPI_COMM_WORLD.

              Constructs a Boost.MPI communicator that attaches to MPI_COMM_WORLD. This is the equivalent of constructing with (MPI_COMM_WORLD, comm_attach).

            2. -
              communicator(const MPI_Comm & comm, comm_create_kind kind);
              +
              communicator(const MPI_Comm & comm, comm_create_kind kind);

              Build a new Boost.MPI communicator based on the MPI communicator comm.

              comm may be any valid MPI communicator. If comm is MPI_COMM_NULL, an empty communicator (that cannot be used for communication) is created and the kind parameter is ignored. Otherwise, the kind parameters determines how the Boost.MPI communicator will be related to comm:

                @@ -115,7 +117,7 @@

              • -
                communicator(const communicator & comm, const boost::mpi::group & subgroup);
                +
                communicator(const communicator & comm, const boost::mpi::group & subgroup);

                Build a new Boost.MPI communicator based on a subgroup of another MPI communicator.

                This routine will construct a new communicator containing all of the processes from communicator comm that are listed within the group subgroup. Equivalent to MPI_Comm_create.

                @@ -149,11 +151,11 @@

            -

            -communicator public member functions

            +

            +communicator public member functions

            1. -
              int rank() const;
              Determine the rank of the executing process in a communicator.

              This routine is equivalent to MPI_Comm_rank.

              +
              int rank() const;
              Determine the rank of the executing process in a communicator.

              This routine is equivalent to MPI_Comm_rank.

              @@ -168,7 +170,7 @@
            2. -
              int size() const;
              Determine the number of processes in a communicator.

              This routine is equivalent to MPI_Comm_size.

              +
              int size() const;
              Determine the number of processes in a communicator.

              This routine is equivalent to MPI_Comm_size.

              @@ -183,11 +185,11 @@
            3. -
              boost::mpi::group group() const;
              +
              boost::mpi::group group() const;

              This routine constructs a new group whose members are the processes within this communicator. Equivalent to calling MPI_Comm_group.

            4. -
              template<typename T> void send(int dest, int tag, const T & value) const;
              Send data to another process.

              This routine executes a potentially blocking send with tag tag to the process with rank dest. It can be received by the destination process with a matching recv call.

              +
              template<typename T> void send(int dest, int tag, const T & value) const;
              Send data to another process.

              This routine executes a potentially blocking send with tag tag to the process with rank dest. It can be received by the destination process with a matching recv call.

              The given value must be suitable for transmission over MPI. There are several classes of types that meet these requirements:

              • Types with mappings to MPI data types: If is_mpi_datatype<T> is convertible to mpl::true_, then value will be transmitted using the MPI data type get_mpi_datatype<T>(). All primitive C++ data types that have MPI equivalents, e.g., int, float, char, double, etc., have built-in mappings to MPI data types. You may turn a Serializable type with fixed structure into an MPI data type by specializing is_mpi_datatype for your type.

              • @@ -231,16 +233,16 @@
            5. template<typename T, typename A> 
              -  void send(int dest, int tag, const std::vector< T, A > & value) const;
            6. + void send(int dest, int tag, const std::vector< T, A > & value) const;
          • template<typename T, typename A> 
            -  void send_vector(int dest, int tag, const std::vector< T, A > & value, 
            +  void send_vector(int dest, int tag, const std::vector< T, A > & value, 
                                mpl::true_) const;
          • template<typename T, typename A> 
            -  void send_vector(int dest, int tag, const std::vector< T, A > & value, 
            +  void send_vector(int dest, int tag, const std::vector< T, A > & value, 
                                mpl::false_) const;
          • template<typename T> 
            -  void send(int dest, int tag, const skeleton_proxy< T > & proxy) const;
            Send the skeleton of an object.

            This routine executes a potentially blocking send with tag tag to the process with rank dest. It can be received by the destination process with a matching recv call. This variation on send will be used when a send of a skeleton is explicitly requested via code such as:

            + void send(int dest, int tag, const skeleton_proxy< T > & proxy) const;
          Send the skeleton of an object.

          This routine executes a potentially blocking send with tag tag to the process with rank dest. It can be received by the destination process with a matching recv call. This variation on send will be used when a send of a skeleton is explicitly requested via code such as:

          comm.send(dest, tag, skeleton(object));
           

          The semantics of this routine are equivalent to that of sending a packed_skeleton_oarchive storing the skeleton of the object.

          @@ -278,7 +280,7 @@
        2. template<typename T> 
          -  void send(int dest, int tag, const T * values, int n) const;
          Send an array of values to another process.

          This routine executes a potentially blocking send of an array of data with tag tag to the process with rank dest. It can be received by the destination process with a matching array recv call.

          + void send(int dest, int tag, const T * values, int n) const;
        Send an array of values to another process.

        This routine executes a potentially blocking send of an array of data with tag tag to the process with rank dest. It can be received by the destination process with a matching array recv call.

        If T is an MPI datatype, an invocation of this routine will be mapped to a single call to MPI_Send, using the datatype get_mpi_datatype<T>().

        @@ -317,7 +319,7 @@
      2. -
        void send(int dest, int tag) const;
        Send a message to another process without any data.

        This routine executes a potentially blocking send of a message to another process. The message contains no extra data, and can therefore only be received by a matching call to recv().

        +
        void send(int dest, int tag) const;
        Send a message to another process without any data.

        This routine executes a potentially blocking send of a message to another process. The message contains no extra data, and can therefore only be received by a matching call to recv().

        @@ -347,7 +349,7 @@
      3. -
        template<typename T> status recv(int source, int tag, T & value) const;
        Receive data from a remote process.

        This routine blocks until it receives a message from the process source with the given tag. The type T of the value must be suitable for transmission over MPI, which includes serializable types, types that can be mapped to MPI data types (including most built-in C++ types), packed MPI archives, skeletons, and content associated with skeletons; see the documentation of send for a complete description.

        +
        template<typename T> status recv(int source, int tag, T & value) const;
        Receive data from a remote process.

        This routine blocks until it receives a message from the process source with the given tag. The type T of the value must be suitable for transmission over MPI, which includes serializable types, types that can be mapped to MPI data types (including most built-in C++ types), packed MPI archives, skeletons, and content associated with skeletons; see the documentation of send for a complete description.

        @@ -388,16 +390,16 @@
    2. template<typename T, typename A> 
      -  status recv(int source, int tag, std::vector< T, A > & value) const;
    3. + status recv(int source, int tag, std::vector< T, A > & value) const;
  • template<typename T, typename A> 
    -  status recv_vector(int source, int tag, std::vector< T, A > & value, 
    +  status recv_vector(int source, int tag, std::vector< T, A > & value, 
                          mpl::true_) const;
  • template<typename T, typename A> 
    -  status recv_vector(int source, int tag, std::vector< T, A > & value, 
    +  status recv_vector(int source, int tag, std::vector< T, A > & value, 
                          mpl::false_) const;
  • template<typename T> 
    -  status recv(int source, int tag, const skeleton_proxy< T > & proxy) const;
    Receive a skeleton from a remote process.

    This routine blocks until it receives a message from the process source with the given tag containing a skeleton.

    + status recv(int source, int tag, const skeleton_proxy< T > & proxy) const;
  • Receive a skeleton from a remote process.

    This routine blocks until it receives a message from the process source with the given tag containing a skeleton.

    @@ -439,7 +441,7 @@
  • template<typename T> 
    -  status recv(int source, int tag, skeleton_proxy< T > & proxy) const;
    Receive a skeleton from a remote process.

    This routine blocks until it receives a message from the process source with the given tag containing a skeleton.

    + status recv(int source, int tag, skeleton_proxy< T > & proxy) const;
  • Receive a skeleton from a remote process.

    This routine blocks until it receives a message from the process source with the given tag containing a skeleton.

    @@ -480,7 +482,7 @@
  • -
    template<typename T> status recv(int source, int tag, T * values, int n) const;
    Receive an array of values from a remote process.

    This routine blocks until it receives an array of values from the process source with the given tag. If the type T is

    +
    template<typename T> status recv(int source, int tag, T * values, int n) const;
    Receive an array of values from a remote process.

    This routine blocks until it receives an array of values from the process source with the given tag. If the type T is

    @@ -530,7 +532,7 @@

  • -
    status recv(int source, int tag) const;
    Receive a message from a remote process without any data.

    This routine blocks until it receives a message from the process source with the given tag.

    +
    status recv(int source, int tag) const;
    Receive a message from a remote process without any data.

    This routine blocks until it receives a message from the process source with the given tag.

    @@ -568,10 +570,10 @@
  • template<typename T> 
    -  status sendrecv(int dest, int stag, const T & sval, int src, int rtag, 
    +  status sendrecv(int dest, int stag, const T & sval, int src, int rtag, 
                       T & rval) const;
    Send a message to remote process nd receive another message from another process.
  • -
    template<typename T> request isend(int dest, int tag, const T & value) const;
    Send a message to a remote process without blocking.

    The isend method is functionality identical to the send method and transmits data in the same way, except that isend will not block while waiting for the data to be transmitted. Instead, a request object will be immediately returned, allowing one to query the status of the communication or wait until it has completed.

    +
    template<typename T> request isend(int dest, int tag, const T & value) const;
    Send a message to a remote process without blocking.

    The isend method is functionality identical to the send method and transmits data in the same way, except that isend will not block while waiting for the data to be transmitted. Instead, a request object will be immediately returned, allowing one to query the status of the communication or wait until it has completed.

    @@ -613,7 +615,7 @@
  • template<typename T> 
    -  request isend(int dest, int tag, const skeleton_proxy< T > & proxy) const;
    Send the skeleton of an object without blocking.

    This routine is functionally identical to the send method for skeleton_proxy objects except that isend will not block while waiting for the data to be transmitted. Instead, a request object will be immediately returned, allowing one to query the status of the communication or wait until it has completed.

    + request isend(int dest, int tag, const skeleton_proxy< T > & proxy) const;Send the skeleton of an object without blocking.

    This routine is functionally identical to the send method for skeleton_proxy objects except that isend will not block while waiting for the data to be transmitted. Instead, a request object will be immediately returned, allowing one to query the status of the communication or wait until it has completed.

    The semantics of this routine are equivalent to a non-blocking send of a packed_skeleton_oarchive storing the skeleton of the object.

    @@ -656,7 +658,7 @@

  • template<typename T> 
    -  request isend(int dest, int tag, const T * values, int n) const;
    Send an array of values to another process without blocking.

    This routine is functionally identical to the send method for arrays except that isend will not block while waiting for the data to be transmitted. Instead, a request object will be immediately returned, allowing one to query the status of the communication or wait until it has completed.

    + request isend(int dest, int tag, const T * values, int n) const;Send an array of values to another process without blocking.

    This routine is functionally identical to the send method for arrays except that isend will not block while waiting for the data to be transmitted. Instead, a request object will be immediately returned, allowing one to query the status of the communication or wait until it has completed.

    @@ -701,7 +703,7 @@
  • -
    request isend(int dest, int tag) const;
    Send a message to another process without any data without blocking.

    This routine is functionally identical to the send method for sends with no data, except that isend will not block while waiting for the message to be transmitted. Instead, a request object will be immediately returned, allowing one to query the status of the communication or wait until it has completed.

    +
    request isend(int dest, int tag) const;
    Send a message to another process without any data without blocking.

    This routine is functionally identical to the send method for sends with no data, except that isend will not block while waiting for the message to be transmitted. Instead, a request object will be immediately returned, allowing one to query the status of the communication or wait until it has completed.

    @@ -738,7 +740,7 @@
  • -
    template<typename T> request irecv(int source, int tag, T & value) const;
    Prepare to receive a message from a remote process.

    The irecv method is functionally identical to the recv method and receive data in the same way, except that irecv will not block while waiting for data to be transmitted. Instead, it immediately returns a request object that allows one to query the status of the receive or wait until it has completed.

    +
    template<typename T> request irecv(int source, int tag, T & value) const;
    Prepare to receive a message from a remote process.

    The irecv method is functionally identical to the recv method and receive data in the same way, except that irecv will not block while waiting for data to be transmitted. Instead, it immediately returns a request object that allows one to query the status of the receive or wait until it has completed.

    @@ -780,7 +782,7 @@
  • template<typename T> 
    -  request irecv(int source, int tag, T * values, int n) const;
    Initiate receipt of an array of values from a remote process.

    This routine initiates a receive operation for an array of values transmitted by process source with the given tag.

    + request irecv(int source, int tag, T * values, int n) const;Initiate receipt of an array of values from a remote process.

    This routine initiates a receive operation for an array of values transmitted by process source with the given tag.

    @@ -825,7 +827,7 @@
  • -
    request irecv(int source, int tag) const;
    Initiate receipt of a message from a remote process that carries no data.

    This routine initiates a receive operation for a message from process source with the given tag that carries no data.

    +
    request irecv(int source, int tag) const;
    Initiate receipt of a message from a remote process that carries no data.

    This routine initiates a receive operation for a message from process source with the given tag that carries no data.

    @@ -862,7 +864,7 @@
  • -
    status probe(int source = any_source, int tag = any_tag) const;
    Waits until a message is available to be received.

    This operation waits until a message matching (source, tag) is available to be received. It then returns information about that message. The functionality is equivalent to MPI_Probe. To check if a message is available without blocking, use iprobe.

    +
    status probe(int source = any_source, int tag = any_tag) const;
    Waits until a message is available to be received.

    This operation waits until a message matching (source, tag) is available to be received. It then returns information about that message. The functionality is equivalent to MPI_Probe. To check if a message is available without blocking, use iprobe.

    @@ -899,7 +901,7 @@
  • -
    optional< status > iprobe(int source = any_source, int tag = any_tag) const;
    Determine if a message is available to be received.

    This operation determines if a message matching (source, tag) is available to be received. If so, it returns information about that message; otherwise, it returns immediately with an empty optional. The functionality is equivalent to MPI_Iprobe. To wait until a message is available, use wait.

    +
    optional< status > iprobe(int source = any_source, int tag = any_tag) const;
    Determine if a message is available to be received.

    This operation determines if a message matching (source, tag) is available to be received. If so, it returns information about that message; otherwise, it returns immediately with an empty optional. The functionality is equivalent to MPI_Iprobe. To wait until a message is available, use wait.

    @@ -936,13 +938,13 @@
  • -
    void barrier() const;
    Wait for all processes within a communicator to reach the barrier.

    This routine is a collective operation that blocks each process until all processes have entered it, then releases all of the processes "simultaneously". It is equivalent to MPI_Barrier.

    +
    void barrier() const;
    Wait for all processes within a communicator to reach the barrier.

    This routine is a collective operation that blocks each process until all processes have entered it, then releases all of the processes "simultaneously". It is equivalent to MPI_Barrier.

  • -
    operator bool() const;
    Determine if this communicator is valid for communication.

    Evaluates true in a boolean context if this communicator is valid for communication, i.e., does not represent MPI_COMM_NULL. Otherwise, evaluates false.

    +
    operator bool() const;
    Determine if this communicator is valid for communication.

    Evaluates true in a boolean context if this communicator is valid for communication, i.e., does not represent MPI_COMM_NULL. Otherwise, evaluates false.

  • -
    operator MPI_Comm() const;
    Access the MPI communicator associated with a Boost.MPI communicator.

    This routine permits the implicit conversion from a Boost.MPI communicator to an MPI communicator.

    +
    operator MPI_Comm() const;
    Access the MPI communicator associated with a Boost.MPI communicator.

    This routine permits the implicit conversion from a Boost.MPI communicator to an MPI communicator.

    @@ -957,7 +959,7 @@
  • -
    communicator split(int color) const;
    +
    communicator split(int color) const;

    Split the communicator into multiple, disjoint communicators each of which is based on a particular color. This is a collective operation that returns a new communicator that is a subgroup of this. This routine is functionally equivalent to MPI_Comm_split.

    @@ -989,7 +991,7 @@

  • -
    communicator split(int color, int key) const;
    +
    communicator split(int color, int key) const;

    Split the communicator into multiple, disjoint communicators each of which is based on a particular color. This is a collective operation that returns a new communicator that is a subgroup of this. This routine is functionally equivalent to MPI_Comm_split.

    @@ -1027,7 +1029,7 @@

  • -
    optional< intercommunicator > as_intercommunicator() const;
    +
    optional< intercommunicator > as_intercommunicator() const;

    Determine if the communicator is in fact an intercommunicator and, if so, return that intercommunicator.

    @@ -1043,7 +1045,7 @@
  • -
    optional< graph_communicator > as_graph_communicator() const;
    +
    optional< graph_communicator > as_graph_communicator() const;

    Determine if the communicator has a graph topology and, if so, return that graph_communicator. Even though the communicators have different types, they refer to the same underlying communication space and can be used interchangeably for communication.

    @@ -1059,11 +1061,31 @@
  • -
    bool has_cartesian_topology() const;
    +
    bool has_graph_topology() const;
    +

    Determines whether this communicator has a Graph topology.

    +
  • +
  • +
    optional< cartesian_communicator > as_cartesian_communicator() const;
    +

    Determine if the communicator has a cartesian topology and, if so, return that cartesian_communicator. Even though the communicators have different types, they refer to the same underlying communication space and can be used interchangeably for communication.

    +

    +

    +
    ++++ + + + + +

    Returns:

    an optional containing the cartesian communicator, if this communicator does in fact have a cartesian topology. Otherwise, returns an empty optional.

    +
  • +
  • +
    bool has_cartesian_topology() const;

    Determines whether this communicator has a Cartesian topology.

  • -
    void abort(int errcode) const;
    +
    void abort(int errcode) const;

    Abort all tasks in the group of this communicator.

    Makes a "best attempt" to abort all of the tasks in the group of this communicator. Depending on the underlying MPI implementation, this may either abort the entire program (and possibly return errcode to the environment) or only abort some processes, allowing the others to continue. Consult the documentation for your MPI implementation. This is equivalent to a call to MPI_Abort

    @@ -1111,7 +1133,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/content.html b/doc/html/boost/mpi/content.html index db4b16ecba..db59073153 100644 --- a/doc/html/boost/mpi/content.html +++ b/doc/html/boost/mpi/content.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,36 +30,36 @@

    boost::mpi::content — A proxy object that transfers the content of an object without its structure.

    Synopsis

    -
    // In header: <boost/mpi/skeleton_and_content.hpp>
    +
    // In header: <boost/mpi/skeleton_and_content.hpp>
     
     
     class content {
     public:
       // construct/copy/destruct
    -  content();
    -  content(MPI_Datatype, bool = true);
    -  const content & operator=(MPI_Datatype);
    +  content();
    +  content(MPI_Datatype, bool = true);
    +  const content & operator=(MPI_Datatype);
     
    -  // public member functions
    -  MPI_Datatype get_mpi_datatype() const;
    -  void commit();
    +  // public member functions
    +  MPI_Datatype get_mpi_datatype() const;
    +  void commit();
     };
    -

    Description

    +

    Description

    The content class indicates that Boost.MPI should transmit or receive the content of an object, but without any information about the structure of the object. It is only meaningful to transmit the content of an object after the receiver has already received the skeleton for the same object.

    Most users will not use content objects directly. Rather, they will invoke send, recv, or broadcast operations using get_content().

    -

    +

    content public construct/copy/destruct

    1. -
      content();
      +
      content();

      Constructs an empty content object. This object will not be useful for any Boost.MPI operations until it is reassigned.

    2. -
      content(MPI_Datatype d, bool committed = true);
      +
      content(MPI_Datatype d, bool committed = true);

      This routine initializes the content object with an MPI data type that refers to the content of an object without its structure.

      @@ -90,7 +90,7 @@
  • -
    const content & operator=(MPI_Datatype d);
    +
    const content & operator=(MPI_Datatype d);

    Replace the MPI data type referencing the content of an object.

    @@ -124,11 +124,11 @@

    -

    -content public member functions

    +

    +content public member functions

    1. -
      MPI_Datatype get_mpi_datatype() const;
      +
      MPI_Datatype get_mpi_datatype() const;

      Retrieve the MPI data type that refers to the content of the object.

      @@ -144,7 +144,7 @@
  • -
    void commit();
    +
    void commit();

    Commit the MPI data type referring to the content of the object.

  • @@ -163,7 +163,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/environment.html b/doc/html/boost/mpi/environment.html index 27bb76065b..840d116239 100644 --- a/doc/html/boost/mpi/environment.html +++ b/doc/html/boost/mpi/environment.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,32 +30,33 @@

    boost::mpi::environment — Initialize, finalize, and query the MPI environment.

    Synopsis

    -
    // In header: <boost/mpi/environment.hpp>
    +
    // In header: <boost/mpi/environment.hpp>
     
     
     class environment : private noncopyable {
     public:
       // construct/copy/destruct
    -  explicit environment(bool = true);
    -  explicit environment(threading::level, bool = true);
    -  environment(int &, char **&, bool = true);
    -  environment(int &, char **&, threading::level, bool = true);
    -  ~environment();
    +  explicit environment(bool = true);
    +  explicit environment(threading::level, bool = true);
    +  environment(int &, char **&, bool = true);
    +  environment(int &, char **&, threading::level, bool = true);
    +  ~environment();
     
    -  // public static functions
    -  static void abort(int);
    -  static bool initialized();
    -  static bool finalized();
    -  static int max_tag();
    -  static int collectives_tag();
    -  static optional< int > host_rank();
    -  static optional< int > io_rank();
    -  static std::string processor_name();
    -  static threading::level thread_level();
    -  static bool is_main_thread();
    +  // public static functions
    +  static void abort(int);
    +  static bool initialized();
    +  static bool finalized();
    +  static int max_tag();
    +  static int collectives_tag();
    +  static optional< int > host_rank();
    +  static optional< int > io_rank();
    +  static std::string processor_name();
    +  static threading::level thread_level();
    +  static bool is_main_thread();
    +  static std::pair< int, int > version();
     };
    -

    Description

    +

    Description

    The environment class is used to initialize, finalize, and query the MPI environment. It will typically be used in the main() function of a program, which will create a single instance of environment initialized with the arguments passed to the program:

    int main(int argc, char* argv[])
     {
    @@ -65,13 +66,13 @@
     

    The instance of environment will initialize MPI (by calling MPI_Init) in its constructor and finalize MPI (by calling MPI_Finalize for normal termination or MPI_Abort for an uncaught exception) in its destructor.

    The use of environment is not mandatory. Users may choose to invoke MPI_Init and MPI_Finalize manually. In this case, no environment object is needed. If one is created, however, it will do nothing on either construction or destruction.

    -

    +

    environment public construct/copy/destruct

    1. -
      explicit environment(bool abort_on_exception = true);
      +
      explicit environment(bool abort_on_exception = true);

      Initialize the MPI environment.

      If the MPI environment has not already been initialized, initializes MPI with a call to MPI_Init. Since this constructor does not take command-line arguments (argc and argv), it is only available when the underlying MPI implementation supports calling MPI_Init with NULL arguments, indicated by the macro BOOST_MPI_HAS_NOARG_INITIALIZATION.

      @@ -97,7 +98,7 @@

  • -
    explicit environment(threading::level mt_level, 
    +
    explicit environment(threading::level mt_level, 
                          bool abort_on_exception = true);

    Initialize the MPI environment.

    If the MPI environment has not already been initialized, initializes MPI with a call to MPI_Init_thread. Since this constructor does not take command-line arguments (argc and argv), it is only available when the underlying MPI implementation supports calling MPI_Init with NULL arguments, indicated by the macro BOOST_MPI_HAS_NOARG_INITIALIZATION.

    @@ -130,7 +131,7 @@
  • -
    environment(int & argc, char **& argv, bool abort_on_exception = true);
    +
    environment(int & argc, char **& argv, bool abort_on_exception = true);

    Initialize the MPI environment.

    If the MPI environment has not already been initialized, initializes MPI with a call to MPI_Init.

    @@ -166,7 +167,7 @@

  • -
    environment(int & argc, char **& argv, threading::level mt_level, 
    +
    environment(int & argc, char **& argv, threading::level mt_level, 
                 bool abort_on_exception = true);

    Initialize the MPI environment.

    If the MPI environment has not already been initialized, initializes MPI with a call to MPI_Init_thread.

    @@ -207,18 +208,18 @@
  • -
    ~environment();
    +
    ~environment();

    Shuts down the MPI environment.

    If this environment object was used to initialize the MPI environment, and the MPI environment has not already been shut down (finalized), this destructor will shut down the MPI environment. Under normal circumstances, this only involves invoking MPI_Finalize. However, if destruction is the result of an uncaught exception and the abort_on_exception parameter of the constructor had the value true, this destructor will invoke MPI_Abort with MPI_COMM_WORLD to abort the entire MPI program with a result code of -1.

  • -

    -environment public static functions

    +

    +environment public static functions

    1. -
      static void abort(int errcode);
      +
      static void abort(int errcode);

      Abort all MPI processes.

      Aborts all MPI processes and returns to the environment. The precise behavior will be defined by the underlying MPI implementation. This is equivalent to a call to MPI_Abort with MPI_COMM_WORLD.

      @@ -251,7 +252,7 @@

  • -
    static bool initialized();
    +
    static bool initialized();

    Determine if the MPI environment has already been initialized.

    This routine is equivalent to a call to MPI_Initialized.

    @@ -268,7 +269,7 @@

  • -
    static bool finalized();
    +
    static bool finalized();

    Determine if the MPI environment has already been finalized.

    The routine is equivalent to a call to MPI_Finalized.

    @@ -285,7 +286,7 @@

  • -
    static int max_tag();
    +
    static int max_tag();

    Retrieves the maximum tag value.

    Returns the maximum value that may be used for the tag parameter of send/receive operations. This value will be somewhat smaller than the value of MPI_TAG_UB, because the Boost.MPI implementation reserves some tags for collective operations.

    @@ -302,7 +303,7 @@

  • -
    static int collectives_tag();
    +
    static int collectives_tag();

    The tag value used for collective operations.

    Returns the reserved tag value used by the Boost.MPI implementation for collective operations. Although users are not permitted to use this tag to send or receive messages, it may be useful when monitoring communication patterns.

    @@ -319,7 +320,7 @@

  • -
    static optional< int > host_rank();
    +
    static optional< int > host_rank();

    Retrieves the rank of the host process, if one exists.

    If there is a host process, this routine returns the rank of that process. Otherwise, it returns an empty optional<int>. MPI does not define the meaning of a "host" process: consult the documentation for the MPI implementation. This routine examines the MPI_HOST attribute of MPI_COMM_WORLD.

    @@ -336,7 +337,7 @@

  • -
    static optional< int > io_rank();
    +
    static optional< int > io_rank();

    Retrieves the rank of a process that can perform input/output.

    This routine returns the rank of a process that can perform input/output via the standard C and C++ I/O facilities. If every process can perform I/O using the standard facilities, this routine will return any_source; if no process can perform I/O, this routine will return no value (an empty optional). This routine examines the MPI_IO attribute of MPI_COMM_WORLD.

    @@ -353,7 +354,7 @@

  • -
    static std::string processor_name();
    +
    static std::string processor_name();

    Retrieve the name of this processor.

    This routine returns the name of this processor. The actual form of the name is unspecified, but may be documented by the underlying MPI implementation. This routine is implemented as a call to MPI_Get_processor_name.

    @@ -370,13 +371,16 @@

  • -
    static threading::level thread_level();
    +
    static threading::level thread_level();

    Query the current level of thread support.

  • -
    static bool is_main_thread();
    +
    static bool is_main_thread();

    Are we in the main thread?

  • +
  • +
    static std::pair< int, int > version();
    MPI version.

    Returns a pair with the version and sub-version number.

    +
  • @@ -393,7 +397,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/exception.html b/doc/html/boost/mpi/exception.html index db76493639..f52f3a2f7e 100644 --- a/doc/html/boost/mpi/exception.html +++ b/doc/html/boost/mpi/exception.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,32 +30,32 @@

    boost::mpi::exception — Catch-all exception class for MPI errors.

    Synopsis

    -
    // In header: <boost/mpi/exception.hpp>
    +
    // In header: <boost/mpi/exception.hpp>
     
     
     class exception : public exception {
     public:
       // construct/copy/destruct
    -  exception(const char *, int);
    -  ~exception();
    +  exception(const char *, int);
    +  ~exception();
     
    -  // public member functions
    -  virtual const char * what() const;
    -  const char * routine() const;
    -  int result_code() const;
    -  int error_class() const;
    +  // public member functions
    +  virtual const char * what() const;
    +  const char * routine() const;
    +  int result_code() const;
    +  int error_class() const;
     };
    -

    Description

    +

    Description

    Instances of this class will be thrown when an MPI error occurs. MPI failures that trigger these exceptions may or may not be recoverable, depending on the underlying MPI implementation. Consult the documentation for your MPI implementation to determine the effect of MPI errors.

    -

    +

    exception public construct/copy/destruct

    1. -
      exception(const char * routine, int result_code);
      +
      exception(const char * routine, int result_code);

      Build a new exception exception.

      @@ -85,25 +85,25 @@
    -
  • ~exception();
  • +
  • ~exception();
  • -

    -exception public member functions

    +

    +exception public member functions

    1. -
      virtual const char * what() const;
      +
      virtual const char * what() const;

      A description of the error that occurred.

    2. -
      const char * routine() const;
      +
      const char * routine() const;

      Retrieve the name of the MPI routine that reported the error.

    3. -
      int result_code() const;
      Retrieve the result code returned from the MPI routine that reported the error.
    4. +
      int result_code() const;
      Retrieve the result code returned from the MPI routine that reported the error.
    5. -
      int error_class() const;
      Returns the MPI error class associated with the error that triggered this exception.
    6. +
      int error_class() const;
      Returns the MPI error class associated with the error that triggered this exception.
    @@ -120,7 +120,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/gather.html b/doc/html/boost/mpi/gather.html index 9da52eedfb..1a9e38377e 100644 --- a/doc/html/boost/mpi/gather.html +++ b/doc/html/boost/mpi/gather.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,7 +30,7 @@

    boost::mpi::gather — Gather the values stored at every process into a vector at the root process.

    Synopsis

    -
    // In header: <boost/mpi/collectives.hpp>
    +
    // In header: <boost/mpi/collectives.hpp>
     
     
     template<typename T> 
    @@ -50,7 +50,7 @@
     template<typename T> 
       void gather(const communicator & comm, const T * in_values, int n, int root);
    -

    Description

    +

    Description

    gather is a collective algorithm that collects the values stored at each process into a vector of values at the root process. This vector is indexed by the process number that the value came from. The type T of the values may be any type that is serializable or has an associated MPI data type.

    When the type T has an associated MPI data type, this routine invokes MPI_Gather to gather the values.

    @@ -102,7 +102,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/gatherv.html b/doc/html/boost/mpi/gatherv.html index 0d61f8cd68..62ca980e25 100644 --- a/doc/html/boost/mpi/gatherv.html +++ b/doc/html/boost/mpi/gatherv.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,7 +30,7 @@

    boost::mpi::gatherv — Similar to boost::mpi::gather with the difference that the number of values to be send by non-root processes can vary.

    Synopsis

    -
    // In header: <boost/mpi/collectives.hpp>
    +
    // In header: <boost/mpi/collectives.hpp>
     
     
     template<typename T> 
    @@ -54,7 +54,7 @@
       void gatherv(const communicator & comm, const std::vector< T > & in_values, 
                    T * out_values, const std::vector< int > & sizes, int root);
    -

    Description

    +

    Description

    @@ -112,7 +112,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_11.html b/doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_11.html new file mode 100644 index 0000000000..82e8a6b81e --- /dev/null +++ b/doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_11.html @@ -0,0 +1,57 @@ + + + + +Function get + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function get

    +

    boost::mpi::get — Returns a property map that maps from vertices in a communicator's graph topology to their index values.

    +
    +

    Synopsis

    +
    // In header: <boost/mpi/graph_communicator.hpp>
    +
    +
    +identity_property_map get(vertex_index_t, const graph_communicator &);
    +
    +

    Description

    +

    Since the vertices are ranks in the communicator, the returned property map is the identity property map.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_12.html b/doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_12.html new file mode 100644 index 0000000000..ad0833b390 --- /dev/null +++ b/doc/html/boost/mpi/get_1_3_26_5_14_12_2_2_12.html @@ -0,0 +1,57 @@ + + + + +Function get + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function get

    +

    boost::mpi::get — Returns the index of a vertex in the communicator's graph topology.

    +
    +

    Synopsis

    +
    // In header: <boost/mpi/graph_communicator.hpp>
    +
    +
    +int get(vertex_index_t, const graph_communicator &, int vertex);
    +
    +

    Description

    +

    Since the vertices are ranks in the communicator, this is the identity function.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/mpi/get_1_3_26_6_11_2_2_11.html b/doc/html/boost/mpi/get_1_3_26_6_11_2_2_11.html deleted file mode 100644 index 4e8440535f..0000000000 --- a/doc/html/boost/mpi/get_1_3_26_6_11_2_2_11.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function get - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function get

    -

    boost::mpi::get — Returns a property map that maps from vertices in a communicator's graph topology to their index values.

    -
    -

    Synopsis

    -
    // In header: <boost/mpi/graph_communicator.hpp>
    -
    -
    -identity_property_map get(vertex_index_t, const graph_communicator &);
    -
    -

    Description

    -

    Since the vertices are ranks in the communicator, the returned property map is the identity property map.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/mpi/get_1_3_26_6_11_2_2_12.html b/doc/html/boost/mpi/get_1_3_26_6_11_2_2_12.html deleted file mode 100644 index bf90c9ee43..0000000000 --- a/doc/html/boost/mpi/get_1_3_26_6_11_2_2_12.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function get - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function get

    -

    boost::mpi::get — Returns the index of a vertex in the communicator's graph topology.

    -
    -

    Synopsis

    -
    // In header: <boost/mpi/graph_communicator.hpp>
    -
    -
    -int get(vertex_index_t, const graph_communicator &, int vertex);
    -
    -

    Description

    -

    Since the vertices are ranks in the communicator, this is the identity function.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/mpi/get_content.html b/doc/html/boost/mpi/get_content.html index d07248cf1b..aaebfad2ef 100644 --- a/doc/html/boost/mpi/get_content.html +++ b/doc/html/boost/mpi/get_content.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,12 +30,12 @@

    boost::mpi::get_content — Returns the content of an object, suitable for transmission via Boost.MPI.

    Synopsis

    -
    // In header: <boost/mpi/skeleton_and_content.hpp>
    +
    // In header: <boost/mpi/skeleton_and_content.hpp>
     
     
     template<typename T> const content get_content(const T & x);
    -

    Description

    +

    Description

    The function creates an absolute MPI datatype for the object, where all offsets are counted from the address 0 (a.k.a. MPI_BOTTOM) instead of the address &x of the object. This allows the creation of MPI data types for complex data structures containing pointers, such as linked lists or trees.

    The disadvantage, compared to relative MPI data types is that for each object a new MPI data type has to be created.

    The contents of an object can only be transmitted when the receiver already has an object with the same structure or shape as the sender. To accomplish this, first transmit the skeleton of the object using, e.g., skeleton() or skeleton_proxy.

    @@ -82,7 +82,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/mpi/get_mp_1_3_26_5_14_8_2_1_8.html b/doc/html/boost/mpi/get_mp_1_3_26_5_14_8_2_1_8.html new file mode 100644 index 0000000000..69a5c20e73 --- /dev/null +++ b/doc/html/boost/mpi/get_mp_1_3_26_5_14_8_2_1_8.html @@ -0,0 +1,87 @@ + + + + +Function template get_mpi_datatype + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Function template get_mpi_datatype

    +

    boost::mpi::get_mpi_datatype — Returns an MPI data type for a C++ type.

    +
    +

    Synopsis

    +
    // In header: <boost/mpi/datatype.hpp>
    +
    +
    +template<typename T> MPI_Datatype get_mpi_datatype(const T & x);
    +
    +

    Description

    +

    The function creates an MPI data type for the given object x. The first time it is called for a class T, the MPI data type is created and cached. Subsequent calls for objects of the same type T return the cached MPI data type. The type T must allow creation of an MPI data type. That is, it must be Serializable and is_mpi_datatype<T> must derive mpl::true_.

    +

    For fundamental MPI types, a copy of the MPI data type of the MPI library is returned.

    +

    Note that since the data types are cached, the caller should never call MPI_Type_free() for the MPI data type returned by this call.

    +

    + +

    +
    ++++ + + + + + + + + + + +

    Parameters:

    ++++ + + + + +

    x

    for an optimized call, a constructed object of the type should be passed; otherwise, an object will be default-constructed.

    Returns:

    The MPI data type corresponding to type T.

    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/mpi/get_mpi_d_1_3_26_6_7_2_1_8.html b/doc/html/boost/mpi/get_mpi_d_1_3_26_6_7_2_1_8.html deleted file mode 100644 index ffc1c4b9e8..0000000000 --- a/doc/html/boost/mpi/get_mpi_d_1_3_26_6_7_2_1_8.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -Function template get_mpi_datatype - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Function template get_mpi_datatype

    -

    boost::mpi::get_mpi_datatype — Returns an MPI data type for a C++ type.

    -
    -

    Synopsis

    -
    // In header: <boost/mpi/datatype.hpp>
    -
    -
    -template<typename T> MPI_Datatype get_mpi_datatype(const T & x);
    -
    -

    Description

    -

    The function creates an MPI data type for the given object x. The first time it is called for a class T, the MPI data type is created and cached. Subsequent calls for objects of the same type T return the cached MPI data type. The type T must allow creation of an MPI data type. That is, it must be Serializable and is_mpi_datatype<T> must derive mpl::true_.

    -

    For fundamental MPI types, a copy of the MPI data type of the MPI library is returned.

    -

    Note that since the data types are cached, the caller should never call MPI_Type_free() for the MPI data type returned by this call.

    -

    - -

    -
    ---- - - - - - - - - - - -

    Parameters:

    ---- - - - - -

    x

    for an optimized call, a constructed object of the type should be passed; otherwise, an object will be default-constructed.

    Returns:

    The MPI data type corresponding to type T.

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/mpi/graph_communicator.html b/doc/html/boost/mpi/graph_communicator.html index 3d0c95a536..6a15879948 100644 --- a/doc/html/boost/mpi/graph_communicator.html +++ b/doc/html/boost/mpi/graph_communicator.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,31 +30,31 @@

    boost::mpi::graph_communicator — An MPI communicator with a graph topology.

    Synopsis

    -
    // In header: <boost/mpi/graph_communicator.hpp>
    +
    // In header: <boost/mpi/graph_communicator.hpp>
     
     
     class graph_communicator : public boost::mpi::communicator {
     public:
       // construct/copy/destruct
    -  graph_communicator(const MPI_Comm &, comm_create_kind);
    +  graph_communicator(const MPI_Comm &, comm_create_kind);
       template<typename Graph> 
    -    explicit graph_communicator(const communicator &, const Graph &, 
    +    explicit graph_communicator(const communicator &, const Graph &, 
                                     bool = false);
       template<typename Graph, typename RankMap> 
    -    explicit graph_communicator(const communicator &, const Graph &, RankMap, 
    +    explicit graph_communicator(const communicator &, const Graph &, RankMap, 
                                     bool = false);
     };
    -

    Description

    +

    Description

    A graph_communicator is a communicator whose topology is expressed as a graph. Graph communicators have the same functionality as (intra)communicators, but also allow one to query the relationships among processes. Those relationships are expressed via a graph, using the interface defined by the Boost Graph Library. The graph_communicator class meets the requirements of the BGL Graph, Incidence Graph, Adjacency Graph, Vertex List Graph, and Edge List Graph concepts.

    -

    +

    graph_communicator public construct/copy/destruct

    1. -
      graph_communicator(const MPI_Comm & comm, comm_create_kind kind);
      +
      graph_communicator(const MPI_Comm & comm, comm_create_kind kind);

      Build a new Boost.MPI graph communicator based on the MPI communicator comm with graph topology.

      comm may be any valid MPI communicator. If comm is MPI_COMM_NULL, an empty communicator (that cannot be used for communication) is created and the kind parameter is ignored. Otherwise, the kind parameter determines how the Boost.MPI communicator will be related to comm:

        @@ -67,7 +67,7 @@
      • template<typename Graph> 
        -  explicit graph_communicator(const communicator & comm, const Graph & graph, 
        +  explicit graph_communicator(const communicator & comm, const Graph & graph, 
                                       bool reorder = false);

        Create a new communicator whose topology is described by the given graph. The indices of the vertices in the graph will be assumed to be the ranks of the processes within the communicator. There may be fewer vertices in the graph than there are processes in the communicator; in this case, the resulting communicator will be a NULL communicator.

        @@ -104,7 +104,7 @@

      • template<typename Graph, typename RankMap> 
        -  explicit graph_communicator(const communicator & comm, const Graph & graph, 
        +  explicit graph_communicator(const communicator & comm, const Graph & graph, 
                                       RankMap rank, bool reorder = false);

        Create a new communicator whose topology is described by the given graph. The rank map (rank) gives the mapping from vertices in the graph to ranks within the communicator. There may be fewer vertices in the graph than there are processes in the communicator; in this case, the resulting communicator will be a NULL communicator.

        @@ -159,7 +159,7 @@


        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/mpi/group.html b/doc/html/boost/mpi/group.html index eaf449ee10..4a4626b8e3 100644 --- a/doc/html/boost/mpi/group.html +++ b/doc/html/boost/mpi/group.html @@ -6,9 +6,9 @@ - - - + + + @@ -21,7 +21,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        @@ -30,40 +30,40 @@

        boost::mpi::group — A group is a representation of a subset of the processes within a communicator.

        Synopsis

        -
        // In header: <boost/mpi/group.hpp>
        +
        // In header: <boost/mpi/group.hpp>
         
         
         class group {
         public:
           // construct/copy/destruct
        -  group();
        -  group(const MPI_Group &, bool);
        +  group();
        +  group(const MPI_Group &, bool);
         
        -  // public member functions
        -  optional< int > rank() const;
        -  int size() const;
        +  // public member functions
        +  optional< int > rank() const;
        +  int size() const;
           template<typename InputIterator, typename OutputIterator> 
             OutputIterator 
        -    translate_ranks(InputIterator, InputIterator, const group &, 
        +    translate_ranks(InputIterator, InputIterator, const group &, 
                             OutputIterator);
        -  operator bool() const;
        -  operator MPI_Group() const;
        -  template<typename InputIterator> group include(InputIterator, InputIterator);
        -  template<typename InputIterator> group exclude(InputIterator, InputIterator);
        +  operator bool() const;
        +  operator MPI_Group() const;
        +  template<typename InputIterator> group include(InputIterator, InputIterator);
        +  template<typename InputIterator> group exclude(InputIterator, InputIterator);
         };
        -

        Description

        +

        Description

        The group class allows one to create arbitrary subsets of the processes within a communicator. One can compute the union, intersection, or difference of two groups, or create new groups by specifically including or excluding certain processes. Given a group, one can create a new communicator containing only the processes in that group.

        -

        +

        group public construct/copy/destruct

        1. -
          group();
          Constructs an empty group.
        2. +
          group();
          Constructs an empty group.
        3. -
          group(const MPI_Group & in_group, bool adopt);
          Constructs a group from an MPI_Group.

          This routine allows one to construct a Boost.MPI group from a C MPI_Group. The group object can (optionally) adopt the MPI_Group, after which point the group object becomes responsible for freeing the MPI_Group when the last copy of group disappears.

          +
          group(const MPI_Group & in_group, bool adopt);
          Constructs a group from an MPI_Group.

          This routine allows one to construct a Boost.MPI group from a C MPI_Group. The group object can (optionally) adopt the MPI_Group, after which point the group object becomes responsible for freeing the MPI_Group when the last copy of group disappears.

          @@ -95,11 +95,11 @@
          -

          -group public member functions

          +

          +group public member functions

          1. -
            optional< int > rank() const;
            Determine the rank of the calling process in the group.

            This routine is equivalent to MPI_Group_rank.

            +
            optional< int > rank() const;
            Determine the rank of the calling process in the group.

            This routine is equivalent to MPI_Group_rank.

          @@ -114,7 +114,7 @@
        4. -
          int size() const;
          Determine the number of processes in the group.

          This routine is equivalent to MPI_Group_size.

          +
          int size() const;
          Determine the number of processes in the group.

          This routine is equivalent to MPI_Group_size.

          @@ -131,7 +131,7 @@
        5. template<typename InputIterator, typename OutputIterator> 
             OutputIterator 
          -  translate_ranks(InputIterator first, InputIterator last, 
          +  translate_ranks(InputIterator first, InputIterator last, 
                             const group & to_group, OutputIterator out);
          Translates the ranks from one group into the ranks of the same processes in another group.

          This routine translates each of the integer rank values in the iterator range [first, last) from the current group into rank values of the corresponding processes in to_group. The corresponding rank values are written via the output iterator out. When there is no correspondence between a rank in the current group and a rank in to_group, the value MPI_UNDEFINED is written to the output iterator.

          @@ -177,7 +177,7 @@

        6. -
          operator bool() const;
          Determines whether the group is non-empty.

          +

          operator bool() const;
          Determines whether the group is non-empty.

          @@ -191,7 +191,7 @@
        7. -
          operator MPI_Group() const;
          Retrieves the underlying MPI_Group associated with this group.

          +

          operator MPI_Group() const;
          Retrieves the underlying MPI_Group associated with this group.

          @@ -206,7 +206,7 @@
        8. template<typename InputIterator> 
          -  group include(InputIterator first, InputIterator last);
          Creates a new group including a subset of the processes in the current group.

          This routine creates a new group which includes only those processes in the current group that are listed in the integer iterator range [first, last). Equivalent to MPI_Group_incl.

          + group include(InputIterator first, InputIterator last);Creates a new group including a subset of the processes in the current group.

          This routine creates a new group which includes only those processes in the current group that are listed in the integer iterator range [first, last). Equivalent to MPI_Group_incl.

          first The beginning of the iterator range of ranks to include.

          last Past the end of the iterator range of ranks to include.

          @@ -224,7 +224,7 @@

        9. template<typename InputIterator> 
          -  group exclude(InputIterator first, InputIterator last);
          Creates a new group from all of the processes in the current group, exluding a specific subset of the processes.

          This routine creates a new group which includes all of the processes in the current group except those whose ranks are listed in the integer iterator range [first, last). Equivalent to MPI_Group_excl.

          + group exclude(InputIterator first, InputIterator last);Creates a new group from all of the processes in the current group, exluding a specific subset of the processes.

          This routine creates a new group which includes all of the processes in the current group except those whose ranks are listed in the integer iterator range [first, last). Equivalent to MPI_Group_excl.

          first The beginning of the iterator range of ranks to exclude.

          last Past the end of the iterator range of ranks to exclude.

          @@ -256,7 +256,7 @@


        10. -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/inpla_1_3_26_5_14_14_2_1_2.html b/doc/html/boost/mpi/inpla_1_3_26_5_14_14_2_1_2.html new file mode 100644 index 0000000000..d67d36c799 --- /dev/null +++ b/doc/html/boost/mpi/inpla_1_3_26_5_14_14_2_1_2.html @@ -0,0 +1,69 @@ + + + + +Struct template inplace_t<T *> + + + + + + + + + + + + + + + +
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          +
          +
          +PrevUpHomeNext +
          +
          +
          +
          +

          Struct template inplace_t<T *>

          +

          boost::mpi::inplace_t<T *>

          +
          +

          Synopsis

          +
          // In header: <boost/mpi/inplace.hpp>
          +
          +template<typename T> 
          +struct inplace_t<T *> {
          +  // construct/copy/destruct
          +  inplace_t(T *);
          +
          +  // public data members
          +  T * buffer;
          +};
          +
          +

          Description

          +
          +

          +inplace_t + public + construct/copy/destruct

          +
          1. inplace_t(T * inout);
          +
          +
          +
          + + + +
          +
          +
          +PrevUpHomeNext +
          + + diff --git a/doc/html/boost/mpi/inplace.html b/doc/html/boost/mpi/inplace.html index bca16100a3..0ba37b5090 100644 --- a/doc/html/boost/mpi/inplace.html +++ b/doc/html/boost/mpi/inplace.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,13 +30,13 @@

          boost::mpi::inplace — Wrapp a input data to indicate that it can be overriden with an ouput value.

          Synopsis

          -
          // In header: <boost/mpi/inplace.hpp>
          +
          // In header: <boost/mpi/inplace.hpp>
           
           
           template<typename T> inplace_t< T > inplace(T & inout);
           template<typename T> inplace_t< T * > inplace(T * inout);
          -

          Description

          +

          Description

          @@ -79,7 +79,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/inplace__1_3_26_6_13_2_1_2.html b/doc/html/boost/mpi/inplace__1_3_26_6_13_2_1_2.html deleted file mode 100644 index 01624b1d9b..0000000000 --- a/doc/html/boost/mpi/inplace__1_3_26_6_13_2_1_2.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - -Struct template inplace_t<T *> - - - - - - - - - - - - - - - -
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          -
          -
          -PrevUpHomeNext -
          -
          -
          -
          -

          Struct template inplace_t<T *>

          -

          boost::mpi::inplace_t<T *>

          -
          -

          Synopsis

          -
          // In header: <boost/mpi/inplace.hpp>
          -
          -template<typename T> 
          -struct inplace_t<T *> {
          -  // construct/copy/destruct
          -  inplace_t(T *);
          -
          -  // public data members
          -  T * buffer;
          -};
          -
          -

          Description

          -
          -

          -inplace_t - public - construct/copy/destruct

          -
          1. inplace_t(T * inout);
          -
          -
          -
          - - - -
          -
          -
          -PrevUpHomeNext -
          - - diff --git a/doc/html/boost/mpi/inplace_t.html b/doc/html/boost/mpi/inplace_t.html index c1b4cfcaf6..7ebb55f3dc 100644 --- a/doc/html/boost/mpi/inplace_t.html +++ b/doc/html/boost/mpi/inplace_t.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,24 +30,24 @@

          boost::mpi::inplace_t — Wrapper type to explicitly indicate that a input data can be overriden with an output value.

          Synopsis

          -
          // In header: <boost/mpi/inplace.hpp>
          +
          // In header: <boost/mpi/inplace.hpp>
           
           template<typename T> 
           struct inplace_t {
             // construct/copy/destruct
          -  inplace_t(T &);
          +  inplace_t(T &);
           
             // public data members
             T & buffer;
           };
          -

          Description

          +

          Description

          -

          +

          inplace_t public construct/copy/destruct

          -
          1. inplace_t(T & inout);
          +
          1. inplace_t(T & inout);
          @@ -63,7 +63,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/intercommunicator.html b/doc/html/boost/mpi/intercommunicator.html index 318bcc97bc..d10f97b84c 100644 --- a/doc/html/boost/mpi/intercommunicator.html +++ b/doc/html/boost/mpi/intercommunicator.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,35 +30,35 @@

          boost::mpi::intercommunicator — Communication facilities among processes in different groups.

          Synopsis

          -
          // In header: <boost/mpi/intercommunicator.hpp>
          +
          // In header: <boost/mpi/intercommunicator.hpp>
           
           
           class intercommunicator : public boost::mpi::communicator {
           public:
             // construct/copy/destruct
          -  intercommunicator(const MPI_Comm &, comm_create_kind);
          -  intercommunicator(const communicator &, int, const communicator &, int);
          +  intercommunicator(const MPI_Comm &, comm_create_kind);
          +  intercommunicator(const communicator &, int, const communicator &, int);
           
          -  // public member functions
          -  int local_size() const;
          -  boost::mpi::group local_group() const;
          -  int local_rank() const;
          -  int remote_size() const;
          -  boost::mpi::group remote_group() const;
          -  communicator merge(bool) const;
          +  // public member functions
          +  int local_size() const;
          +  boost::mpi::group local_group() const;
          +  int local_rank() const;
          +  int remote_size() const;
          +  boost::mpi::group remote_group() const;
          +  communicator merge(bool) const;
           };
          -

          Description

          +

          Description

          The intercommunicator class provides communication facilities among processes from different groups. An intercommunicator is always associated with two process groups: one "local" process group, containing the process that initiates an MPI operation (e.g., the sender in a send operation), and one "remote" process group, containing the process that is the target of the MPI operation.

          While intercommunicators have essentially the same point-to-point operations as intracommunicators (the latter communicate only within a single process group), all communication with intercommunicators occurs between the processes in the local group and the processes in the remote group; communication within a group must use a different (intra-)communicator.

          -

          +

          intercommunicator public construct/copy/destruct

          1. -
            intercommunicator(const MPI_Comm & comm, comm_create_kind kind);
            +
            intercommunicator(const MPI_Comm & comm, comm_create_kind kind);

            Build a new Boost.MPI intercommunicator based on the MPI intercommunicator comm.

            comm may be any valid MPI intercommunicator. If comm is MPI_COMM_NULL, an empty communicator (that cannot be used for communication) is created and the kind parameter is ignored. Otherwise, the kind parameter determines how the Boost.MPI communicator will be related to comm:

              @@ -70,7 +70,7 @@

            • -
              intercommunicator(const communicator & local, int local_leader, 
              +
              intercommunicator(const communicator & local, int local_leader, 
                                 const communicator & peer, int remote_leader);

              Constructs a new intercommunicator whose local group is local and whose remote group is peer. The intercommunicator can then be used to communicate between processes in the two groups. This constructor is equivalent to a call to MPI_Intercomm_create.

              @@ -112,31 +112,31 @@

          -

          -intercommunicator public member functions

          +

          +intercommunicator public member functions

          1. -
            int local_size() const;
            +
            int local_size() const;

            Returns the size of the local group, i.e., the number of local processes that are part of the group.

          2. -
            boost::mpi::group local_group() const;
            +
            boost::mpi::group local_group() const;

            Returns the local group, containing all of the local processes in this intercommunicator.

          3. -
            int local_rank() const;
            +
            int local_rank() const;

            Returns the rank of this process within the local group.

          4. -
            int remote_size() const;
            +
            int remote_size() const;

            Returns the size of the remote group, i.e., the number of processes that are part of the remote group.

          5. -
            boost::mpi::group remote_group() const;
            +
            boost::mpi::group remote_group() const;

            Returns the remote group, containing all of the remote processes in this intercommunicator.

          6. -
            communicator merge(bool high) const;
            +
            communicator merge(bool high) const;

            Merge the local and remote groups in this intercommunicator into a new intracommunicator containing the union of the processes in both groups. This method is equivalent to MPI_Intercomm_merge.

            @@ -183,7 +183,7 @@


            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/is_commutative.html b/doc/html/boost/mpi/is_commutative.html index e4cc3b9be5..5f983c8d5a 100644 --- a/doc/html/boost/mpi/is_commutative.html +++ b/doc/html/boost/mpi/is_commutative.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,13 +30,13 @@

            boost::mpi::is_commutative — Determine if a function object type is commutative.

            Synopsis

            -
            // In header: <boost/mpi/operations.hpp>
            +
            // In header: <boost/mpi/operations.hpp>
             
             template<typename Op, typename T> 
             struct is_commutative : public false_ {
             };
            -

            Description

            +

            Description

            This trait determines if an operation Op is commutative when applied to values of type T. Parallel operations such as reduce and prefix_sum can be implemented more efficiently with commutative operations. To mark an operation as commutative, users should specialize is_commutative and derive from the class mpl::true_.

            @@ -52,7 +52,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/is_mpi_1_3_26_5_14_3_2_1_2.html b/doc/html/boost/mpi/is_mpi_1_3_26_5_14_3_2_1_2.html new file mode 100644 index 0000000000..b0acc16323 --- /dev/null +++ b/doc/html/boost/mpi/is_mpi_1_3_26_5_14_3_2_1_2.html @@ -0,0 +1,54 @@ + + + + +Struct is_mpi_datatype<cartesian_dimension> + + + + + + + + + + + + + + + +
            Boost C++ LibrariesHomeLibrariesPeopleFAQMore
            +
            +
            +PrevUpHomeNext +
            +
            +
            +
            +

            Struct is_mpi_datatype<cartesian_dimension>

            +

            boost::mpi::is_mpi_datatype<cartesian_dimension>

            +
            +

            Synopsis

            +
            // In header: <boost/mpi/cartesian_communicator.hpp>
            +
            +
            +struct is_mpi_datatype<cartesian_dimension> : public true_ {
            +};
            +
            + + + +
            +
            +
            +PrevUpHomeNext +
            + + diff --git a/doc/html/boost/mpi/is_mpi_1_3_26_5_14_8_2_1_2.html b/doc/html/boost/mpi/is_mpi_1_3_26_5_14_8_2_1_2.html new file mode 100644 index 0000000000..4ed1d6ea41 --- /dev/null +++ b/doc/html/boost/mpi/is_mpi_1_3_26_5_14_8_2_1_2.html @@ -0,0 +1,58 @@ + + + + +Struct template is_mpi_floating_point_datatype + + + + + + + + + + + + + + + +
            Boost C++ LibrariesHomeLibrariesPeopleFAQMore
            +
            +
            +PrevUpHomeNext +
            +
            +
            +
            +

            Struct template is_mpi_floating_point_datatype

            +

            boost::mpi::is_mpi_floating_point_datatype — Type trait that determines if there exists a built-in floating point MPI data type for a given C++ type.

            +
            +

            Synopsis

            +
            // In header: <boost/mpi/datatype.hpp>
            +
            +template<typename T> 
            +struct is_mpi_floating_point_datatype : public false_ {
            +};
            +
            +

            Description

            +

            This type trait determines when there is a direct mapping from a C++ type to an MPI data type that is classified as a floating point data type. See is_mpi_builtin_datatype for general information about built-in MPI data types.

            +
            +
            + + + +
            +
            +
            +PrevUpHomeNext +
            + + diff --git a/doc/html/boost/mpi/is_mpi_builtin_datatype.html b/doc/html/boost/mpi/is_mpi_builtin_datatype.html index e089964003..fdd9a4c977 100644 --- a/doc/html/boost/mpi/is_mpi_builtin_datatype.html +++ b/doc/html/boost/mpi/is_mpi_builtin_datatype.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,16 +30,16 @@

            boost::mpi::is_mpi_builtin_datatype — Type trait that determines if there exists a built-in MPI data type for a given C++ type.

            Synopsis

            -
            // In header: <boost/mpi/datatype.hpp>
            +
            // In header: <boost/mpi/datatype.hpp>
             
             template<typename T> 
             struct is_mpi_builtin_datatype : public boost::mpl::or_< is_mpi_integer_datatype< T >, is_mpi_floating_point_datatype< T >, is_mpi_logical_datatype< T >, is_mpi_complex_datatype< T >, is_mpi_byte_datatype< T > >
             {
             };
            -

            Description

            +

            Description

            This type trait determines when there is a direct mapping from a C++ type to an MPI type. For instance, the C++ int type maps directly to the MPI type MPI_INT. When there is a direct mapping from the type T to an MPI type, is_mpi_builtin_datatype will derive from mpl::true_ and the MPI data type will be accessible via get_mpi_datatype.

            -

            In general, users should not need to specialize this trait. However, if you have an additional C++ type that can map directly to only of MPI's built-in types, specialize either this trait or one of the traits corresponding to categories of MPI data types (is_mpi_integer_datatype, is_mpi_floating_point_datatype, is_mpi_logical_datatype, is_mpi_complex_datatype, or is_mpi_builtin_datatype). is_mpi_builtin_datatype derives mpl::true_ if any of the traits corresponding to MPI data type categories derived mpl::true_.

            +

            In general, users should not need to specialize this trait. However, if you have an additional C++ type that can map directly to only of MPI's built-in types, specialize either this trait or one of the traits corresponding to categories of MPI data types (is_mpi_integer_datatype, is_mpi_floating_point_datatype, is_mpi_logical_datatype, is_mpi_complex_datatype, or is_mpi_builtin_datatype). is_mpi_builtin_datatype derives mpl::true_ if any of the traits corresponding to MPI data type categories derived mpl::true_.

            @@ -54,7 +54,7 @@

            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/is_mpi_byte_datatype.html b/doc/html/boost/mpi/is_mpi_byte_datatype.html index b09cfe7500..6a8bf6f80f 100644 --- a/doc/html/boost/mpi/is_mpi_byte_datatype.html +++ b/doc/html/boost/mpi/is_mpi_byte_datatype.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,13 +30,13 @@

            boost::mpi::is_mpi_byte_datatype — Type trait that determines if there exists a built-in byte MPI data type for a given C++ type.

            Synopsis

            -
            // In header: <boost/mpi/datatype.hpp>
            +
            // In header: <boost/mpi/datatype.hpp>
             
             template<typename T> 
             struct is_mpi_byte_datatype : public false_ {
             };
            -

            Description

            +

            Description

            This type trait determines when there is a direct mapping from a C++ type to an MPI data type that is classified as an byte data type. See is_mpi_builtin_datatype for general information about built-in MPI data types.

            @@ -52,7 +52,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/is_mpi_complex_datatype.html b/doc/html/boost/mpi/is_mpi_complex_datatype.html index 5134327c48..b415119231 100644 --- a/doc/html/boost/mpi/is_mpi_complex_datatype.html +++ b/doc/html/boost/mpi/is_mpi_complex_datatype.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,13 +30,13 @@

            boost::mpi::is_mpi_complex_datatype — Type trait that determines if there exists a built-in complex MPI data type for a given C++ type.

            Synopsis

            -
            // In header: <boost/mpi/datatype.hpp>
            +
            // In header: <boost/mpi/datatype.hpp>
             
             template<typename T> 
             struct is_mpi_complex_datatype : public false_ {
             };
            -

            Description

            +

            Description

            This type trait determines when there is a direct mapping from a C++ type to an MPI data type that is classified as an complex data type. See is_mpi_builtin_datatype for general information about built-in MPI data types.

            @@ -52,7 +52,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/is_mpi_datatype.html b/doc/html/boost/mpi/is_mpi_datatype.html index 520a8ba288..16d9badb0b 100644 --- a/doc/html/boost/mpi/is_mpi_datatype.html +++ b/doc/html/boost/mpi/is_mpi_datatype.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,13 +30,13 @@

            boost::mpi::is_mpi_datatype — Type trait that determines if a C++ type can be mapped to an MPI data type.

            Synopsis

            -
            // In header: <boost/mpi/datatype.hpp>
            +
            // In header: <boost/mpi/datatype.hpp>
             
             template<typename T> 
             struct is_mpi_datatype : public boost::mpi::is_mpi_builtin_datatype< T > {
             };
            -

            Description

            +

            Description

            This type trait determines if it is possible to build an MPI data type that represents a C++ data type. When this is the case, is_mpi_datatype derives mpl::true_ and the MPI data type will be accessible via get_mpi_datatype.

            For any C++ type that maps to a built-in MPI data type (see is_mpi_builtin_datatype), is_mpi_data_type is trivially true. However, any POD ("Plain Old Data") type containing types that themselves can be represented by MPI data types can itself be represented as an MPI data type. For instance, a point3d class containing three double values can be represented as an MPI data type. To do so, first make the data type Serializable (using the Boost.Serialization library); then, specialize the is_mpi_datatype trait for the point type so that it will derive mpl::true_:

            namespace boost { namespace mpi {
            @@ -59,7 +59,7 @@
             
             
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/is_mpi_fl_1_3_26_6_7_2_1_2.html b/doc/html/boost/mpi/is_mpi_fl_1_3_26_6_7_2_1_2.html deleted file mode 100644 index 7afcee13a0..0000000000 --- a/doc/html/boost/mpi/is_mpi_fl_1_3_26_6_7_2_1_2.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -Struct template is_mpi_floating_point_datatype - - - - - - - - - - - - - - - -
            Boost C++ LibrariesHomeLibrariesPeopleFAQMore
            -
            -
            -PrevUpHomeNext -
            -
            -
            -
            -

            Struct template is_mpi_floating_point_datatype

            -

            boost::mpi::is_mpi_floating_point_datatype — Type trait that determines if there exists a built-in floating point MPI data type for a given C++ type.

            -
            -

            Synopsis

            -
            // In header: <boost/mpi/datatype.hpp>
            -
            -template<typename T> 
            -struct is_mpi_floating_point_datatype : public false_ {
            -};
            -
            -

            Description

            -

            This type trait determines when there is a direct mapping from a C++ type to an MPI data type that is classified as a floating point data type. See is_mpi_builtin_datatype for general information about built-in MPI data types.

            -
            -
            - - - -
            -
            -
            -PrevUpHomeNext -
            - - diff --git a/doc/html/boost/mpi/is_mpi_integer_datatype.html b/doc/html/boost/mpi/is_mpi_integer_datatype.html index 3929c160ce..13d0aa2259 100644 --- a/doc/html/boost/mpi/is_mpi_integer_datatype.html +++ b/doc/html/boost/mpi/is_mpi_integer_datatype.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,13 +30,13 @@

            boost::mpi::is_mpi_integer_datatype — Type trait that determines if there exists a built-in integer MPI data type for a given C++ type.

            Synopsis

            -
            // In header: <boost/mpi/datatype.hpp>
            +
            // In header: <boost/mpi/datatype.hpp>
             
             template<typename T> 
             struct is_mpi_integer_datatype : public false_ {
             };
            -

            Description

            +

            Description

            This type trait determines when there is a direct mapping from a C++ type to an MPI data type that is classified as an integer data type. See is_mpi_builtin_datatype for general information about built-in MPI data types.

            @@ -52,7 +52,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/is_mpi_logical_datatype.html b/doc/html/boost/mpi/is_mpi_logical_datatype.html index 89fc6f0b35..449cda012c 100644 --- a/doc/html/boost/mpi/is_mpi_logical_datatype.html +++ b/doc/html/boost/mpi/is_mpi_logical_datatype.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,13 +30,13 @@

            boost::mpi::is_mpi_logical_datatype — Type trait that determines if there exists a built-in logical MPI data type for a given C++ type.

            Synopsis

            -
            // In header: <boost/mpi/datatype.hpp>
            +
            // In header: <boost/mpi/datatype.hpp>
             
             template<typename T> 
             struct is_mpi_logical_datatype : public false_ {
             };
            -

            Description

            +

            Description

            This type trait determines when there is a direct mapping from a C++ type to an MPI data type that is classified as an logical data type. See is_mpi_builtin_datatype for general information about built-in MPI data types.

            @@ -52,7 +52,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/is_mpi_op.html b/doc/html/boost/mpi/is_mpi_op.html index 80912187bc..99773671f6 100644 --- a/doc/html/boost/mpi/is_mpi_op.html +++ b/doc/html/boost/mpi/is_mpi_op.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,13 +30,13 @@

            boost::mpi::is_mpi_op — Determine if a function object has an associated MPI_Op.

            Synopsis

            -
            // In header: <boost/mpi/operations.hpp>
            +
            // In header: <boost/mpi/operations.hpp>
             
             template<typename Op, typename T> 
             struct is_mpi_op : public false_ {
             };
            -

            Description

            +

            Description

            This trait determines if a function object type Op, when used with argument type T, has an associated MPI_Op. If so, is_mpi_op<Op,T> will derive from mpl::false_ and will contain a static member function op that takes no arguments but returns the associated MPI_Op value. For instance, is_mpi_op<std::plus<int>,int>::op() returns MPI_SUM.

            Users may specialize is_mpi_op for any other class templates that map onto operations that have MPI_Op equivalences, such as bitwise OR, logical and, or maximum. However, users are encouraged to use the standard function objects in the functional and boost/mpi/operations.hpp headers whenever possible. For function objects that are class templates with a single template parameter, it may be easier to specialize is_builtin_mpi_op.

            @@ -53,7 +53,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/logical_xor.html b/doc/html/boost/mpi/logical_xor.html index e7829b786c..4eb88b2a05 100644 --- a/doc/html/boost/mpi/logical_xor.html +++ b/doc/html/boost/mpi/logical_xor.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,22 +30,26 @@

            boost::mpi::logical_xor — Compute the logical exclusive OR of two integral values.

            Synopsis

            -
            // In header: <boost/mpi/operations.hpp>
            +
            // In header: <boost/mpi/operations.hpp>
             
             template<typename T> 
            -struct logical_xor : public std::binary_function< T, T, T > {
            +struct logical_xor {
            +  // types
            +  typedef T first_argument_type; 
            +  typedef T second_argument_type;
            +  typedef T result_type;         
             
            -  // public member functions
            -  T operator()(const T &, const T &) const;
            +  // public member functions
            +  T operator()(const T &, const T &) const;
             };
            -

            Description

            +

            Description

            This binary function object computes the logical exclusive of the two values it is given. When used with MPI and a type T that has an associated, built-in MPI data type, translates to MPI_LXOR.

            -

            -logical_xor public member functions

            +

            +logical_xor public member functions

            1. -
              T operator()(const T & x, const T & y) const;
              +
              T operator()(const T & x, const T & y) const;

              @@ -74,7 +78,7 @@

              -PrevUpHomeNext +PrevUpHomeNext
              diff --git a/doc/html/boost/mpi/maximum.html b/doc/html/boost/mpi/maximum.html index 2f68f0ae93..eb4a7a0602 100644 --- a/doc/html/boost/mpi/maximum.html +++ b/doc/html/boost/mpi/maximum.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
              -PrevUpHomeNext +PrevUpHomeNext
              @@ -30,22 +30,26 @@

              boost::mpi::maximum — Compute the maximum of two values.

              Synopsis

              -
              // In header: <boost/mpi/operations.hpp>
              +
              // In header: <boost/mpi/operations.hpp>
               
               template<typename T> 
              -struct maximum : public std::binary_function< T, T, T > {
              +struct maximum {
              +  // types
              +  typedef T first_argument_type; 
              +  typedef T second_argument_type;
              +  typedef T result_type;         
               
              -  // public member functions
              -  const T & operator()(const T &, const T &) const;
              +  // public member functions
              +  const T & operator()(const T &, const T &) const;
               };
              -

              Description

              +

              Description

              This binary function object computes the maximum of the two values it is given. When used with MPI and a type T that has an associated, built-in MPI data type, translates to MPI_MAX.

              -

              -maximum public member functions

              +

              +maximum public member functions

              1. -
                const T & operator()(const T & x, const T & y) const;
                +
                const T & operator()(const T & x, const T & y) const;

                @@ -74,7 +78,7 @@

                -PrevUpHomeNext +PrevUpHomeNext
                diff --git a/doc/html/boost/mpi/minimum.html b/doc/html/boost/mpi/minimum.html index 46b93d9ee9..164041cfe4 100644 --- a/doc/html/boost/mpi/minimum.html +++ b/doc/html/boost/mpi/minimum.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
                -PrevUpHomeNext +PrevUpHomeNext
                @@ -30,22 +30,26 @@

                boost::mpi::minimum — Compute the minimum of two values.

                Synopsis

                -
                // In header: <boost/mpi/operations.hpp>
                +
                // In header: <boost/mpi/operations.hpp>
                 
                 template<typename T> 
                -struct minimum : public std::binary_function< T, T, T > {
                +struct minimum {
                +  // types
                +  typedef T first_argument_type; 
                +  typedef T second_argument_type;
                +  typedef T result_type;         
                 
                -  // public member functions
                -  const T & operator()(const T &, const T &) const;
                +  // public member functions
                +  const T & operator()(const T &, const T &) const;
                 };
                -

                Description

                +

                Description

                This binary function object computes the minimum of the two values it is given. When used with MPI and a type T that has an associated, built-in MPI data type, translates to MPI_MIN.

                -

                -minimum public member functions

                +

                +minimum public member functions

                1. -
                  const T & operator()(const T & x, const T & y) const;
                  +
                  const T & operator()(const T & x, const T & y) const;

                  @@ -74,7 +78,7 @@

                  -PrevUpHomeNext +PrevUpHomeNext
                  diff --git a/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_2.html b/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_2.html new file mode 100644 index 0000000000..0acc6e0e86 --- /dev/null +++ b/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_2.html @@ -0,0 +1,69 @@ + + + + +Function operator== + + + + + + + + + + + + + + + +
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  +
                  +
                  +PrevUpHomeNext +
                  +
                  +
                  +
                  +

                  Function operator==

                  +

                  boost::mpi::operator== — Determines whether two process groups are identical.

                  +
                  +

                  Synopsis

                  +
                  // In header: <boost/mpi/group.hpp>
                  +
                  +
                  +BOOST_MPI_DECL bool operator==(const group & g1, const group & g2);
                  +
                  +

                  Description

                  +

                  Equivalent to calling MPI_Group_compare and checking whether the result is MPI_IDENT.

                  +

                  +

                  +
                  ++++ + + + + +

                  Returns:

                  True when the two process groups contain the same processes in the same order.

                  +
                  +
                  + + + +
                  +
                  +
                  +PrevUpHomeNext +
                  + + diff --git a/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_3.html b/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_3.html new file mode 100644 index 0000000000..fbe5961814 --- /dev/null +++ b/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_3.html @@ -0,0 +1,69 @@ + + + + +Function operator!= + + + + + + + + + + + + + + + +
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  +
                  +
                  +PrevUpHomeNext +
                  +
                  +
                  +
                  +

                  Function operator!=

                  +

                  boost::mpi::operator!= — Determines whether two process groups are not identical.

                  +
                  +

                  Synopsis

                  +
                  // In header: <boost/mpi/group.hpp>
                  +
                  +
                  +bool operator!=(const group & g1, const group & g2);
                  +
                  +

                  Description

                  +

                  Equivalent to calling MPI_Group_compare and checking whether the result is not MPI_IDENT.

                  +

                  +

                  +
                  ++++ + + + + +

                  Returns:

                  False when the two process groups contain the same processes in the same order.

                  +
                  +
                  + + + +
                  +
                  +
                  +PrevUpHomeNext +
                  + + diff --git a/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_4.html b/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_4.html new file mode 100644 index 0000000000..de9ad43685 --- /dev/null +++ b/doc/html/boost/mpi/opera_1_3_26_5_14_13_2_1_4.html @@ -0,0 +1,57 @@ + + + + +Function operator| + + + + + + + + + + + + + + + +
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  +
                  +
                  +PrevUpHomeNext +
                  +
                  +
                  +
                  +

                  Function operator|

                  +

                  boost::mpi::operator| — Computes the union of two process groups.

                  +
                  +

                  Synopsis

                  +
                  // In header: <boost/mpi/group.hpp>
                  +
                  +
                  +BOOST_MPI_DECL group operator|(const group & g1, const group & g2);
                  +
                  +

                  Description

                  +

                  This routine returns a new group that contains all processes that are either in group g1 or in group g2 (or both). The processes that are in g1 will be first in the resulting group, followed by the processes from g2 (but not also in g1). Equivalent to MPI_Group_union.

                  +
                  +
                  + + + +
                  +
                  +
                  +PrevUpHomeNext +
                  + + diff --git a/doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_3.html b/doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_3.html new file mode 100644 index 0000000000..8734dd1be9 --- /dev/null +++ b/doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_3.html @@ -0,0 +1,70 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  +
                  +
                  +PrevUpHomeNext +
                  +
                  +
                  +
                  +

                  Function template operator==

                  +

                  boost::mpi::operator== — Compare two allocators for equality.

                  +
                  +

                  Synopsis

                  +
                  // In header: <boost/mpi/allocator.hpp>
                  +
                  +
                  +template<typename T1, typename T2> 
                  +  bool operator==(const allocator< T1 > &, const allocator< T2 > &);
                  +
                  +

                  Description

                  +

                  Since MPI allocators have no state, all MPI allocators are equal.

                  +

                  +

                  +
                  ++++ + + + + +

                  Returns:

                  true

                  +
                  +
                  + + + +
                  +
                  +
                  +PrevUpHomeNext +
                  + + diff --git a/doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_4.html b/doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_4.html new file mode 100644 index 0000000000..88f3de1c1e --- /dev/null +++ b/doc/html/boost/mpi/operat_1_3_26_5_14_2_2_1_4.html @@ -0,0 +1,70 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  +
                  +
                  +PrevUpHomeNext +
                  +
                  +
                  +
                  +

                  Function template operator!=

                  +

                  boost::mpi::operator!= — Compare two allocators for inequality.

                  +
                  +

                  Synopsis

                  +
                  // In header: <boost/mpi/allocator.hpp>
                  +
                  +
                  +template<typename T1, typename T2> 
                  +  bool operator!=(const allocator< T1 > &, const allocator< T2 > &);
                  +
                  +

                  Description

                  +

                  Since MPI allocators have no state, all MPI allocators are equal.

                  +

                  +

                  +
                  ++++ + + + + +

                  Returns:

                  false

                  +
                  +
                  + + + +
                  +
                  +
                  +PrevUpHomeNext +
                  + + diff --git a/doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_5.html b/doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_5.html new file mode 100644 index 0000000000..7a71c59097 --- /dev/null +++ b/doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_5.html @@ -0,0 +1,70 @@ + + + + +Function operator== + + + + + + + + + + + + + + + +
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  +
                  +
                  +PrevUpHomeNext +
                  +
                  +
                  +
                  +

                  Function operator==

                  +

                  boost::mpi::operator== — Determines whether two communicators are identical.

                  +
                  +

                  Synopsis

                  +
                  // In header: <boost/mpi/communicator.hpp>
                  +
                  +
                  +BOOST_MPI_DECL bool 
                  +operator==(const communicator & comm1, const communicator & comm2);
                  +
                  +

                  Description

                  +

                  Equivalent to calling MPI_Comm_compare and checking whether the result is MPI_IDENT.

                  +

                  +

                  +
                  ++++ + + + + +

                  Returns:

                  True when the two communicators refer to the same underlying MPI communicator.

                  +
                  +
                  + + + +
                  +
                  +
                  +PrevUpHomeNext +
                  + + diff --git a/doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_6.html b/doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_6.html new file mode 100644 index 0000000000..92c2294b98 --- /dev/null +++ b/doc/html/boost/mpi/operat_1_3_26_5_14_6_2_1_6.html @@ -0,0 +1,68 @@ + + + + +Function operator!= + + + + + + + + + + + + + + + +
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  +
                  +
                  +PrevUpHomeNext +
                  +
                  +
                  +
                  +

                  Function operator!=

                  +

                  boost::mpi::operator!= — Determines whether two communicators are different.

                  +
                  +

                  Synopsis

                  +
                  // In header: <boost/mpi/communicator.hpp>
                  +
                  +
                  +bool operator!=(const communicator & comm1, const communicator & comm2);
                  +
                  +

                  Description

                  +

                  +

                  +
                  ++++ + + + + +

                  Returns:

                  !(comm1 == comm2)

                  +
                  +
                  + + + +
                  +
                  +
                  +PrevUpHomeNext +
                  + + diff --git a/doc/html/boost/mpi/operator-.html b/doc/html/boost/mpi/operator-.html index b5ba694b7d..b74bc41b96 100644 --- a/doc/html/boost/mpi/operator-.html +++ b/doc/html/boost/mpi/operator-.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
                  -PrevUpHomeNext +PrevUpHomeNext
                  @@ -30,12 +30,12 @@

                  boost::mpi::operator- — Computes the difference between two process groups.

                  Synopsis

                  -
                  // In header: <boost/mpi/group.hpp>
                  +
                  // In header: <boost/mpi/group.hpp>
                   
                   
                   BOOST_MPI_DECL group operator-(const group & g1, const group & g2);
                  -

                  Description

                  +

                  Description

                  This routine returns a new group that contains all processes that are in group g1 but not in group g2, ordered in the same way as g1. Equivalent to MPI_Group_difference.

                  @@ -51,7 +51,7 @@
                  -PrevUpHomeNext +PrevUpHomeNext
                  diff --git a/doc/html/boost/mpi/operator_.html b/doc/html/boost/mpi/operator_.html index f5039011ce..816785f972 100644 --- a/doc/html/boost/mpi/operator_.html +++ b/doc/html/boost/mpi/operator_.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
                  -PrevUpHomeNext +PrevUpHomeNext
                  @@ -30,12 +30,12 @@

                  boost::mpi::operator& — Computes the intersection of two process groups.

                  Synopsis

                  -
                  // In header: <boost/mpi/group.hpp>
                  +
                  // In header: <boost/mpi/group.hpp>
                   
                   
                   BOOST_MPI_DECL group operator&(const group & g1, const group & g2);
                  -

                  Description

                  +

                  Description

                  This routine returns a new group that contains all processes that are in group g1 and in group g2, ordered in the same way as g1. Equivalent to MPI_Group_intersection.

                  @@ -51,7 +51,7 @@
                  -PrevUpHomeNext +PrevUpHomeNext
                  diff --git a/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_2.html b/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_2.html deleted file mode 100644 index b5e67faa37..0000000000 --- a/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_2.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - -Function operator== - - - - - - - - - - - - - - - -
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  -
                  -
                  -PrevUpHomeNext -
                  -
                  -
                  -
                  -

                  Function operator==

                  -

                  boost::mpi::operator== — Determines whether two process groups are identical.

                  -
                  -

                  Synopsis

                  -
                  // In header: <boost/mpi/group.hpp>
                  -
                  -
                  -BOOST_MPI_DECL bool operator==(const group & g1, const group & g2);
                  -
                  -

                  Description

                  -

                  Equivalent to calling MPI_Group_compare and checking whether the result is MPI_IDENT.

                  -

                  -

                  -
                  ---- - - - - -

                  Returns:

                  True when the two process groups contain the same processes in the same order.

                  -
                  -
                  - - - -
                  -
                  -
                  -PrevUpHomeNext -
                  - - diff --git a/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_3.html b/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_3.html deleted file mode 100644 index 40b29036ce..0000000000 --- a/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - -Function operator!= - - - - - - - - - - - - - - - -
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  -
                  -
                  -PrevUpHomeNext -
                  -
                  -
                  -
                  -

                  Function operator!=

                  -

                  boost::mpi::operator!= — Determines whether two process groups are not identical.

                  -
                  -

                  Synopsis

                  -
                  // In header: <boost/mpi/group.hpp>
                  -
                  -
                  -bool operator!=(const group & g1, const group & g2);
                  -
                  -

                  Description

                  -

                  Equivalent to calling MPI_Group_compare and checking whether the result is not MPI_IDENT.

                  -

                  -

                  -
                  ---- - - - - -

                  Returns:

                  False when the two process groups contain the same processes in the same order.

                  -
                  -
                  - - - -
                  -
                  -
                  -PrevUpHomeNext -
                  - - diff --git a/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_4.html b/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_4.html deleted file mode 100644 index 788fbee250..0000000000 --- a/doc/html/boost/mpi/operator_1_3_26_6_12_2_1_4.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function operator| - - - - - - - - - - - - - - - -
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  -
                  -
                  -PrevUpHomeNext -
                  -
                  -
                  -
                  -

                  Function operator|

                  -

                  boost::mpi::operator| — Computes the union of two process groups.

                  -
                  -

                  Synopsis

                  -
                  // In header: <boost/mpi/group.hpp>
                  -
                  -
                  -BOOST_MPI_DECL group operator|(const group & g1, const group & g2);
                  -
                  -

                  Description

                  -

                  This routine returns a new group that contains all processes that are either in group g1 or in group g2 (or both). The processes that are in g1 will be first in the resulting group, followed by the processes from g2 (but not also in g1). Equivalent to MPI_Group_union.

                  -
                  -
                  - - - -
                  -
                  -
                  -PrevUpHomeNext -
                  - - diff --git a/doc/html/boost/mpi/operator__1_3_26_6_2_2_1_3.html b/doc/html/boost/mpi/operator__1_3_26_6_2_2_1_3.html deleted file mode 100644 index ebe79efa98..0000000000 --- a/doc/html/boost/mpi/operator__1_3_26_6_2_2_1_3.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  -
                  -
                  -PrevUpHomeNext -
                  -
                  -
                  -
                  -

                  Function template operator==

                  -

                  boost::mpi::operator== — Compare two allocators for equality.

                  -
                  -

                  Synopsis

                  -
                  // In header: <boost/mpi/allocator.hpp>
                  -
                  -
                  -template<typename T1, typename T2> 
                  -  bool operator==(const allocator< T1 > &, const allocator< T2 > &);
                  -
                  -

                  Description

                  -

                  Since MPI allocators have no state, all MPI allocators are equal.

                  -

                  -

                  -
                  ---- - - - - -

                  Returns:

                  true

                  -
                  -
                  - - - -
                  -
                  -
                  -PrevUpHomeNext -
                  - - diff --git a/doc/html/boost/mpi/operator__1_3_26_6_2_2_1_4.html b/doc/html/boost/mpi/operator__1_3_26_6_2_2_1_4.html deleted file mode 100644 index c048e53816..0000000000 --- a/doc/html/boost/mpi/operator__1_3_26_6_2_2_1_4.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  -
                  -
                  -PrevUpHomeNext -
                  -
                  -
                  -
                  -

                  Function template operator!=

                  -

                  boost::mpi::operator!= — Compare two allocators for inequality.

                  -
                  -

                  Synopsis

                  -
                  // In header: <boost/mpi/allocator.hpp>
                  -
                  -
                  -template<typename T1, typename T2> 
                  -  bool operator!=(const allocator< T1 > &, const allocator< T2 > &);
                  -
                  -

                  Description

                  -

                  Since MPI allocators have no state, all MPI allocators are equal.

                  -

                  -

                  -
                  ---- - - - - -

                  Returns:

                  false

                  -
                  -
                  - - - -
                  -
                  -
                  -PrevUpHomeNext -
                  - - diff --git a/doc/html/boost/mpi/operator__1_3_26_6_5_2_1_5.html b/doc/html/boost/mpi/operator__1_3_26_6_5_2_1_5.html deleted file mode 100644 index 0dc49ddc26..0000000000 --- a/doc/html/boost/mpi/operator__1_3_26_6_5_2_1_5.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -Function operator== - - - - - - - - - - - - - - - -
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  -
                  -
                  -PrevUpHomeNext -
                  -
                  -
                  -
                  -

                  Function operator==

                  -

                  boost::mpi::operator== — Determines whether two communicators are identical.

                  -
                  -

                  Synopsis

                  -
                  // In header: <boost/mpi/communicator.hpp>
                  -
                  -
                  -BOOST_MPI_DECL bool 
                  -operator==(const communicator & comm1, const communicator & comm2);
                  -
                  -

                  Description

                  -

                  Equivalent to calling MPI_Comm_compare and checking whether the result is MPI_IDENT.

                  -

                  -

                  -
                  ---- - - - - -

                  Returns:

                  True when the two communicators refer to the same underlying MPI communicator.

                  -
                  -
                  - - - -
                  -
                  -
                  -PrevUpHomeNext -
                  - - diff --git a/doc/html/boost/mpi/operator__1_3_26_6_5_2_1_6.html b/doc/html/boost/mpi/operator__1_3_26_6_5_2_1_6.html deleted file mode 100644 index a7c57e1f22..0000000000 --- a/doc/html/boost/mpi/operator__1_3_26_6_5_2_1_6.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - -Function operator!= - - - - - - - - - - - - - - - -
                  Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                  -
                  -
                  -PrevUpHomeNext -
                  -
                  -
                  -
                  -

                  Function operator!=

                  -

                  boost::mpi::operator!= — Determines whether two communicators are different.

                  -
                  -

                  Synopsis

                  -
                  // In header: <boost/mpi/communicator.hpp>
                  -
                  -
                  -bool operator!=(const communicator & comm1, const communicator & comm2);
                  -
                  -

                  Description

                  -

                  -

                  -
                  ---- - - - - -

                  Returns:

                  !(comm1 == comm2)

                  -
                  -
                  - - - -
                  -
                  -
                  -PrevUpHomeNext -
                  - - diff --git a/doc/html/boost/mpi/packed.html b/doc/html/boost/mpi/packed.html index fcfecb1f95..2e2e465da5 100644 --- a/doc/html/boost/mpi/packed.html +++ b/doc/html/boost/mpi/packed.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
                  -PrevUpHomeNext +PrevUpHomeNext
                  @@ -30,7 +30,7 @@

                  boost::mpi::packed — a dummy data type giving MPI_PACKED as its MPI_Datatype

                  Synopsis

                  -
                  // In header: <boost/mpi/datatype_fwd.hpp>
                  +
                  // In header: <boost/mpi/datatype_fwd.hpp>
                   
                   
                   struct packed {
                  @@ -48,7 +48,7 @@
                   
                   
                  -PrevUpHomeNext +PrevUpHomeNext
                  diff --git a/doc/html/boost/mpi/packed_iarchive.html b/doc/html/boost/mpi/packed_iarchive.html index 687798a3a4..c8db0f7282 100644 --- a/doc/html/boost/mpi/packed_iarchive.html +++ b/doc/html/boost/mpi/packed_iarchive.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
                  -PrevUpHomeNext +PrevUpHomeNext
                  @@ -30,38 +30,38 @@

                  boost::mpi::packed_iarchive — An archive that unpacks binary data from an MPI buffer.

                  Synopsis

                  -
                  // In header: <boost/mpi/packed_iarchive.hpp>
                  +
                  // In header: <boost/mpi/packed_iarchive.hpp>
                   
                   
                   class packed_iarchive : public iprimitive {
                   public:
                     // construct/copy/destruct
                  -  packed_iarchive(MPI_Comm const &, buffer_type &, 
                  +  packed_iarchive(MPI_Comm const &, buffer_type &, 
                                     unsigned int = boost::archive::no_header, int = 0);
                  -  packed_iarchive(MPI_Comm const &, std::size_t = 0, 
                  +  packed_iarchive(MPI_Comm const &, std::size_t = 0, 
                                     unsigned int = boost::archive::no_header);
                   
                  -  // public member functions
                  -  template<typename T> void load_override(T &, mpl::false_);
                  -  template<typename T> void load_override(T &, mpl::true_);
                  -  template<typename T> void load_override(T &);
                  -  void load_override(archive::class_id_optional_type &);
                  -  void load_override(archive::class_id_type &);
                  -  void load_override(archive::version_type &);
                  -  void load_override(archive::class_id_reference_type &);
                  -  void load_override(archive::class_name_type &);
                  +  // public member functions
                  +  template<typename T> void load_override(T &, mpl::false_);
                  +  template<typename T> void load_override(T &, mpl::true_);
                  +  template<typename T> void load_override(T &);
                  +  void load_override(archive::class_id_optional_type &);
                  +  void load_override(archive::class_id_type &);
                  +  void load_override(archive::version_type &);
                  +  void load_override(archive::class_id_reference_type &);
                  +  void load_override(archive::class_name_type &);
                   };
                  -

                  Description

                  +

                  Description

                  The packed_oarchive class is an Archiver (as in the Boost.Serialization library) that unpacks binary data from a buffer received via MPI. It can operate on any Serializable data type and will use the MPI_Unpack function of the underlying MPI implementation to perform deserialization.

                  -

                  +

                  packed_iarchive public construct/copy/destruct

                  1. -
                    packed_iarchive(MPI_Comm const & comm, buffer_type & b, 
                    +
                    packed_iarchive(MPI_Comm const & comm, buffer_type & b, 
                                     unsigned int flags = boost::archive::no_header, 
                                     int position = 0);

                    Construct a packed_iarchive to receive data over the given MPI communicator and with an initial buffer.

                    @@ -98,7 +98,7 @@
                2. -
                  packed_iarchive(MPI_Comm const & comm, std::size_t s = 0, 
                  +
                  packed_iarchive(MPI_Comm const & comm, std::size_t s = 0, 
                                   unsigned int flags = boost::archive::no_header);

                  Construct a packed_iarchive to receive data over the given MPI communicator.

                  @@ -132,17 +132,17 @@

                -

                -packed_iarchive public member functions

                +

                +packed_iarchive public member functions

                  -
                1. template<typename T> void load_override(T & x, mpl::false_);
                2. -
                3. template<typename T> void load_override(T & x, mpl::true_);
                4. -
                5. template<typename T> void load_override(T & x);
                6. -
                7. void load_override(archive::class_id_optional_type &);
                8. -
                9. void load_override(archive::class_id_type & t);
                10. -
                11. void load_override(archive::version_type & t);
                12. -
                13. void load_override(archive::class_id_reference_type & t);
                14. -
                15. void load_override(archive::class_name_type & t);
                16. +
                17. template<typename T> void load_override(T & x, mpl::false_);
                18. +
                19. template<typename T> void load_override(T & x, mpl::true_);
                20. +
                21. template<typename T> void load_override(T & x);
                22. +
                23. void load_override(archive::class_id_optional_type &);
                24. +
                25. void load_override(archive::class_id_type & t);
                26. +
                27. void load_override(archive::version_type & t);
                28. +
                29. void load_override(archive::class_id_reference_type & t);
                30. +
                31. void load_override(archive::class_name_type & t);
                @@ -159,7 +159,7 @@
                -PrevUpHomeNext +PrevUpHomeNext
                diff --git a/doc/html/boost/mpi/packed_oarchive.html b/doc/html/boost/mpi/packed_oarchive.html index 157eb626b0..1ce3466631 100644 --- a/doc/html/boost/mpi/packed_oarchive.html +++ b/doc/html/boost/mpi/packed_oarchive.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
                -PrevUpHomeNext +PrevUpHomeNext
                @@ -30,36 +30,36 @@

                boost::mpi::packed_oarchive — An archive that packs binary data into an MPI buffer.

                Synopsis

                -
                // In header: <boost/mpi/packed_oarchive.hpp>
                +
                // In header: <boost/mpi/packed_oarchive.hpp>
                 
                 
                 class packed_oarchive : public oprimitive {
                 public:
                   // construct/copy/destruct
                -  packed_oarchive(MPI_Comm const &, buffer_type &, 
                +  packed_oarchive(MPI_Comm const &, buffer_type &, 
                                   unsigned int = boost::archive::no_header);
                -  packed_oarchive(MPI_Comm const &, unsigned int = boost::archive::no_header);
                +  packed_oarchive(MPI_Comm const &, unsigned int = boost::archive::no_header);
                 
                -  // public member functions
                -  template<typename T> void save_override(T const &, mpl::false_);
                -  template<typename T> void save_override(T const &, mpl::true_);
                -  template<typename T> void save_override(T const &);
                -  void save_override(const archive::class_id_optional_type &);
                -  void save_override(const archive::class_name_type &);
                -  void save_override(const archive::class_id_type &);
                -  void save_override(const archive::version_type &);
                +  // public member functions
                +  template<typename T> void save_override(T const &, mpl::false_);
                +  template<typename T> void save_override(T const &, mpl::true_);
                +  template<typename T> void save_override(T const &);
                +  void save_override(const archive::class_id_optional_type &);
                +  void save_override(const archive::class_name_type &);
                +  void save_override(const archive::class_id_type &);
                +  void save_override(const archive::version_type &);
                 };
                -

                Description

                +

                Description

                The packed_iarchive class is an Archiver (as in the Boost.Serialization library) that packs binary data into a buffer for transmission via MPI. It can operate on any Serializable data type and will use the MPI_Pack function of the underlying MPI implementation to perform serialization.

                -

                +

                packed_oarchive public construct/copy/destruct

                1. -
                  packed_oarchive(MPI_Comm const & comm, buffer_type & b, 
                  +
                  packed_oarchive(MPI_Comm const & comm, buffer_type & b, 
                                   unsigned int flags = boost::archive::no_header);

                  Construct a packed_oarchive for transmission over the given MPI communicator and with an initial buffer.

                  @@ -95,7 +95,7 @@

              2. -
                packed_oarchive(MPI_Comm const & comm, 
                +
                packed_oarchive(MPI_Comm const & comm, 
                                 unsigned int flags = boost::archive::no_header);

                Construct a packed_oarchive for transmission over the given MPI communicator.

                @@ -129,16 +129,16 @@

              -

              -packed_oarchive public member functions

              +

              +packed_oarchive public member functions

                -
              1. template<typename T> void save_override(T const & x, mpl::false_);
              2. -
              3. template<typename T> void save_override(T const & x, mpl::true_);
              4. -
              5. template<typename T> void save_override(T const & x);
              6. -
              7. void save_override(const archive::class_id_optional_type &);
              8. -
              9. void save_override(const archive::class_name_type & t);
              10. -
              11. void save_override(const archive::class_id_type & t);
              12. -
              13. void save_override(const archive::version_type & t);
              14. +
              15. template<typename T> void save_override(T const & x, mpl::false_);
              16. +
              17. template<typename T> void save_override(T const & x, mpl::true_);
              18. +
              19. template<typename T> void save_override(T const & x);
              20. +
              21. void save_override(const archive::class_id_optional_type &);
              22. +
              23. void save_override(const archive::class_name_type & t);
              24. +
              25. void save_override(const archive::class_id_type & t);
              26. +
              27. void save_override(const archive::version_type & t);
              @@ -155,7 +155,7 @@
              -PrevUpHomeNext +PrevUpHomeNext
              diff --git a/doc/html/boost/mpi/packed_skeleton_iarchive.html b/doc/html/boost/mpi/packed_skeleton_iarchive.html index 02a11345a6..3202bcbfaf 100644 --- a/doc/html/boost/mpi/packed_skeleton_iarchive.html +++ b/doc/html/boost/mpi/packed_skeleton_iarchive.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
              -PrevUpHomeNext +PrevUpHomeNext
              @@ -30,32 +30,32 @@

              boost::mpi::packed_skeleton_iarchive — An archiver that reconstructs a data structure based on the binary skeleton stored in a buffer.

              Synopsis

              -
              // In header: <boost/mpi/skeleton_and_content.hpp>
              +
              // In header: <boost/mpi/skeleton_and_content.hpp>
               
               
               class packed_skeleton_iarchive : public ignore_iprimitive {
               public:
                 // construct/copy/destruct
              -  packed_skeleton_iarchive(MPI_Comm const &, 
              +  packed_skeleton_iarchive(MPI_Comm const &, 
                                          unsigned int = boost::archive::no_header);
              -  explicit packed_skeleton_iarchive(packed_iarchive &);
              +  explicit packed_skeleton_iarchive(packed_iarchive &);
               
              -  // public member functions
              -  const packed_iarchive & get_skeleton() const;
              -  packed_iarchive & get_skeleton();
              +  // public member functions
              +  const packed_iarchive & get_skeleton() const;
              +  packed_iarchive & get_skeleton();
               };
              -

              Description

              +

              Description

              The packed_skeleton_iarchive class is an Archiver (as in the Boost.Serialization library) that can construct the the shape of a data structure based on a binary skeleton stored in a buffer. The packed_skeleton_iarchive is typically used by the receiver of a skeleton, to prepare a data structure that will eventually receive content separately.

              Users will not generally need to use packed_skeleton_iarchive directly. Instead, use skeleton or get_skeleton.

              -

              +

              packed_skeleton_iarchive public construct/copy/destruct

              1. -
                packed_skeleton_iarchive(MPI_Comm const & comm, 
                +
                packed_skeleton_iarchive(MPI_Comm const & comm, 
                                          unsigned int flags = boost::archive::no_header);

                Construct a packed_skeleton_iarchive for the given communicator.

                @@ -87,7 +87,7 @@

            2. -
              explicit packed_skeleton_iarchive(packed_iarchive & archive);
              +
              explicit packed_skeleton_iarchive(packed_iarchive & archive);

              Construct a packed_skeleton_iarchive that unpacks a skeleton from the given archive.

              @@ -114,15 +114,15 @@
            -

            -packed_skeleton_iarchive public member functions

            +

            +packed_skeleton_iarchive public member functions

            1. -
              const packed_iarchive & get_skeleton() const;
              +
              const packed_iarchive & get_skeleton() const;

              Retrieve the archive corresponding to this skeleton.

            2. -
              packed_iarchive & get_skeleton();
              +
              packed_iarchive & get_skeleton();

              Retrieve the archive corresponding to this skeleton.

            @@ -141,7 +141,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/packed_skeleton_oarchive.html b/doc/html/boost/mpi/packed_skeleton_oarchive.html index 8c7af4f02d..205da15845 100644 --- a/doc/html/boost/mpi/packed_skeleton_oarchive.html +++ b/doc/html/boost/mpi/packed_skeleton_oarchive.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,31 +30,31 @@

            boost::mpi::packed_skeleton_oarchive — An archiver that records the binary skeleton of a data structure into a buffer.

            Synopsis

            -
            // In header: <boost/mpi/skeleton_and_content.hpp>
            +
            // In header: <boost/mpi/skeleton_and_content.hpp>
             
             
             class packed_skeleton_oarchive : public ignore_oprimitive {
             public:
               // construct/copy/destruct
            -  packed_skeleton_oarchive(MPI_Comm const &, 
            +  packed_skeleton_oarchive(MPI_Comm const &, 
                                        unsigned int = boost::archive::no_header);
            -  explicit packed_skeleton_oarchive(packed_oarchive &);
            +  explicit packed_skeleton_oarchive(packed_oarchive &);
             
            -  // public member functions
            -  const packed_oarchive & get_skeleton() const;
            +  // public member functions
            +  const packed_oarchive & get_skeleton() const;
             };
            -

            Description

            +

            Description

            The packed_skeleton_oarchive class is an Archiver (as in the Boost.Serialization library) that can record the shape of a data structure (called the "skeleton") into a binary representation stored in a buffer. The packed_skeleton_oarchive is typically used by the send of a skeleton, to pack the skeleton of a data structure for transmission separately from the content.

            Users will not generally need to use packed_skeleton_oarchive directly. Instead, use skeleton or get_skeleton.

            -

            +

            packed_skeleton_oarchive public construct/copy/destruct

            1. -
              packed_skeleton_oarchive(MPI_Comm const & comm, 
              +
              packed_skeleton_oarchive(MPI_Comm const & comm, 
                                        unsigned int flags = boost::archive::no_header);

              Construct a packed_skeleton_oarchive for the given communicator.

              @@ -86,7 +86,7 @@

          7. -
            explicit packed_skeleton_oarchive(packed_oarchive & archive);
            +
            explicit packed_skeleton_oarchive(packed_oarchive & archive);

            Construct a packed_skeleton_oarchive that packs a skeleton into the given archive.

            @@ -113,10 +113,10 @@
          -

          -packed_skeleton_oarchive public member functions

          +

          +packed_skeleton_oarchive public member functions

          1. -
            const packed_oarchive & get_skeleton() const;
            +
            const packed_oarchive & get_skeleton() const;

            Retrieve the archive corresponding to this skeleton.

          @@ -134,7 +134,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/python/reg_1_3_26_5_14_20_2_1_1_2.html b/doc/html/boost/mpi/python/reg_1_3_26_5_14_20_2_1_1_2.html new file mode 100644 index 0000000000..5ecefb2017 --- /dev/null +++ b/doc/html/boost/mpi/python/reg_1_3_26_5_14_20_2_1_1_2.html @@ -0,0 +1,86 @@ + + + + +Function template register_skeleton_and_content + + + + + + + + + + + + + + + +
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          +
          +
          +PrevUpHomeNext +
          +
          +
          +
          +

          Function template register_skeleton_and_content

          +

          boost::mpi::python::register_skeleton_and_content — Registers a type for use with the skeleton/content mechanism in Python.

          +
          +

          Synopsis

          +
          // In header: <boost/mpi/python.hpp>
          +
          +
          +template<typename T> 
          +  void register_skeleton_and_content(const T & value = T(), 
          +                                     PyTypeObject * type = 0);
          +
          +

          Description

          +

          The skeleton/content mechanism can only be used from Python with C++ types that have previously been registered via a call to this function. Both the sender and the transmitter must register the type. It is permitted to call this function multiple times for the same type T, but only one call per process per type is required. The type T must be Serializable.

          +

          +

          +
          ++++ + + + + +

          Parameters:

          ++++ + + + + + + + + + + +

          type

          The Python type associated with the C++ type T. If not provided, it will be computed from the same value value.

          value

          A sample object of type T that will be used to determine the Python type associated with T, if type is not specified.

          +
          +
          + + + +
          +
          +
          +PrevUpHomeNext +
          + + diff --git a/doc/html/boost/mpi/python/regist_1_3_26_6_19_2_1_1_2.html b/doc/html/boost/mpi/python/regist_1_3_26_6_19_2_1_1_2.html deleted file mode 100644 index c7feb0f8ef..0000000000 --- a/doc/html/boost/mpi/python/regist_1_3_26_6_19_2_1_1_2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -Function template register_skeleton_and_content - - - - - - - - - - - - - - - -
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          -
          -
          -PrevUpHomeNext -
          -
          -
          -
          -

          Function template register_skeleton_and_content

          -

          boost::mpi::python::register_skeleton_and_content — Registers a type for use with the skeleton/content mechanism in Python.

          -
          -

          Synopsis

          -
          // In header: <boost/mpi/python.hpp>
          -
          -
          -template<typename T> 
          -  void register_skeleton_and_content(const T & value = T(), 
          -                                     PyTypeObject * type = 0);
          -
          -

          Description

          -

          The skeleton/content mechanism can only be used from Python with C++ types that have previously been registered via a call to this function. Both the sender and the transmitter must register the type. It is permitted to call this function multiple times for the same type T, but only one call per process per type is required. The type T must be Serializable.

          -

          -

          -
          ---- - - - - -

          Parameters:

          ---- - - - - - - - - - - -

          type

          The Python type associated with the C++ type T. If not provided, it will be computed from the same value value.

          value

          A sample object of type T that will be used to determine the Python type associated with T, if type is not specified.

          -
          -
          - - - -
          -
          -
          -PrevUpHomeNext -
          - - diff --git a/doc/html/boost/mpi/python/register_serialized.html b/doc/html/boost/mpi/python/register_serialized.html index c33e6c7256..c215817734 100644 --- a/doc/html/boost/mpi/python/register_serialized.html +++ b/doc/html/boost/mpi/python/register_serialized.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,13 +30,13 @@

          boost::mpi::python::register_serialized — Register the type T for direct serialization within Boost.MPI.

          Synopsis

          -
          // In header: <boost/mpi/python.hpp>
          +
          // In header: <boost/mpi/python.hpp>
           
           
           template<typename T> 
             void register_serialized(const T & value = T(), PyTypeObject * type = 0);
          -

          Description

          +

          Description

          The register_serialized function registers a C++ type for direct serialization within Boost.MPI. Direct serialization elides the use of the Python pickle package when serializing Python objects that represent C++ values. Direct serialization can be beneficial both to improve serialization performance (Python pickling can be very inefficient) and to permit serialization for Python-wrapped C++ objects that do not support pickling.

          @@ -79,7 +79,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/reduce.html b/doc/html/boost/mpi/reduce.html index 309108b63c..4ab20256d6 100644 --- a/doc/html/boost/mpi/reduce.html +++ b/doc/html/boost/mpi/reduce.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,7 +30,7 @@

          boost::mpi::reduce — Combine the values stored by each process into a single value at the root.

          Synopsis

          -
          // In header: <boost/mpi/collectives.hpp>
          +
          // In header: <boost/mpi/collectives.hpp>
           
           
           template<typename T, typename Op> 
          @@ -45,7 +45,7 @@
             void reduce(const communicator & comm, const T * in_values, int n, Op op, 
                         int root);
          -

          Description

          +

          Description

          reduce is a collective algorithm that combines the values stored by each process into a single value at the root. The values can be combined arbitrarily, specified via a function object. The type T of the values may be any type that is serializable or has an associated MPI data type. One can think of this operation as a gather to the root, followed by an std::accumulate() over the gathered values and using the operation op.

          When the type T has an associated MPI data type, this routine invokes MPI_Reduce to perform the reduction. If possible, built-in MPI operations will be used; otherwise, reduce() will create a custom MPI_Op for the call to MPI_Reduce.

          @@ -101,7 +101,7 @@


          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/request.html b/doc/html/boost/mpi/request.html index 2478bc1803..18ee22b4f6 100644 --- a/doc/html/boost/mpi/request.html +++ b/doc/html/boost/mpi/request.html @@ -6,8 +6,8 @@ - - + + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,46 +30,46 @@

          boost::mpi::request — A request for a non-blocking send or receive.

          Synopsis

          -
          // In header: <boost/mpi/request.hpp>
          +
          // In header: <boost/mpi/request.hpp>
           
           
           class request {
           public:
             // construct/copy/destruct
          -  request();
          +  request();
           
          -  // public member functions
          -  status wait();
          -  optional< status > test();
          -  void cancel();
          +  // public member functions
          +  status wait();
          +  optional< status > test();
          +  void cancel();
           };
          -

          Description

          +

          Description

          This structure contains information about a non-blocking send or receive and will be returned from isend or irecv, respectively.

          -

          +

          request public construct/copy/destruct

          1. -
            request();
            +
            request();

            Constructs a NULL request.

          -

          -request public member functions

          +

          +request public member functions

          1. -
            status wait();
            +
            status wait();

            Wait until the communication associated with this request has completed, then return a status object describing the communication.

          2. -
            optional< status > test();
            +
            optional< status > test();

            Determine whether the communication associated with this request has completed successfully. If so, returns the status object describing the communication. Otherwise, returns an empty optional<> to indicate that the communication has not completed yet. Note that once test() returns a status object, the request has completed and wait() should not be called.

          3. -
            void cancel();
            +
            void cancel();

            Cancel a pending communication, assuming it has not already been completed.

          @@ -88,7 +88,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/scan.html b/doc/html/boost/mpi/scan.html index c2daec5086..f55afb544c 100644 --- a/doc/html/boost/mpi/scan.html +++ b/doc/html/boost/mpi/scan.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,7 +30,7 @@

          boost::mpi::scan — Compute a prefix reduction of values from all processes in the communicator.

          Synopsis

          -
          // In header: <boost/mpi/collectives.hpp>
          +
          // In header: <boost/mpi/collectives.hpp>
           
           
           template<typename T, typename Op> 
          @@ -42,7 +42,7 @@
             void scan(const communicator & comm, const T * in_values, int n, 
                       T * out_values, Op op);
          -

          Description

          +

          Description

          scan is a collective algorithm that combines the values stored by each process with the values of all processes with a smaller rank. The values can be arbitrarily combined, specified via a function object op. The type T of the values may be any type that is serializable or has an associated MPI data type. One can think of this operation as a gather to some process, followed by an std::prefix_sum() over the gathered values using the operation op. The ith process returns the ith value emitted by std::prefix_sum().

          When the type T has an associated MPI data type, this routine invokes MPI_Scan to perform the reduction. If possible, built-in MPI operations will be used; otherwise, scan() will create a custom MPI_Op for the call to MPI_Scan.

          @@ -101,7 +101,7 @@


          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/scatter.html b/doc/html/boost/mpi/scatter.html index dddfd82a56..f7c4091241 100644 --- a/doc/html/boost/mpi/scatter.html +++ b/doc/html/boost/mpi/scatter.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,7 +30,7 @@

          boost::mpi::scatter — Scatter the values stored at the root to all processes within the communicator.

          Synopsis

          -
          // In header: <boost/mpi/collectives.hpp>
          +
          // In header: <boost/mpi/collectives.hpp>
           
           
           template<typename T> 
          @@ -50,7 +50,7 @@
           template<typename T> 
             void scatter(const communicator & comm, T * out_values, int n, int root);
          -

          Description

          +

          Description

          scatter is a collective algorithm that scatters the values stored in the root process (inside a vector) to all of the processes in the communicator. The vector out_values (only significant at the root) is indexed by the process number to which the corresponding value will be sent. The type T of the values may be any type that is serializable or has an associated MPI data type.

          When the type T has an associated MPI data type, this routine invokes MPI_Scatter to scatter the values.

          @@ -102,7 +102,7 @@


          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/scatterv.html b/doc/html/boost/mpi/scatterv.html index eacb5d952e..f076b02436 100644 --- a/doc/html/boost/mpi/scatterv.html +++ b/doc/html/boost/mpi/scatterv.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,7 +30,7 @@

          boost::mpi::scatterv — Similar to boost::mpi::scatter with the difference that the number of values stored at the root process does not need to be a multiple of the communicator's size.

          Synopsis

          -
          // In header: <boost/mpi/collectives.hpp>
          +
          // In header: <boost/mpi/collectives.hpp>
           
           
           template<typename T> 
          @@ -53,7 +53,7 @@
             void scatterv(const communicator & comm, const std::vector< T > & in_values, 
                           const std::vector< int > & sizes, T * out_values, int root);
          -

          Description

          +

          Description

          @@ -115,7 +115,7 @@

          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/skeleton.html b/doc/html/boost/mpi/skeleton.html index 1654f88117..f2e6f93e46 100644 --- a/doc/html/boost/mpi/skeleton.html +++ b/doc/html/boost/mpi/skeleton.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,12 +30,12 @@

          boost::mpi::skeleton — Create a skeleton proxy object.

          Synopsis

          -
          // In header: <boost/mpi/skeleton_and_content.hpp>
          +
          // In header: <boost/mpi/skeleton_and_content.hpp>
           
           
           template<typename T> const skeleton_proxy< T > skeleton(T & x);
          -

          Description

          +

          Description

          This routine creates an instance of the skeleton_proxy class. It will typically be used when calling send, recv, or broadcast, to indicate that only the skeleton (structure) of an object should be transmitted and not its contents.

          @@ -79,7 +79,7 @@


          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/skeleton_proxy.html b/doc/html/boost/mpi/skeleton_proxy.html index fa06644ef3..1cd44c0bb7 100644 --- a/doc/html/boost/mpi/skeleton_proxy.html +++ b/doc/html/boost/mpi/skeleton_proxy.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,26 +30,26 @@

          boost::mpi::skeleton_proxy — A proxy that requests that the skeleton of an object be transmitted.

          Synopsis

          -
          // In header: <boost/mpi/skeleton_and_content.hpp>
          +
          // In header: <boost/mpi/skeleton_and_content.hpp>
           
           template<typename T> 
           struct skeleton_proxy {
             // construct/copy/destruct
          -  skeleton_proxy(T &);
          +  skeleton_proxy(T &);
           
             // public data members
             T & object;
           };
          -

          Description

          +

          Description

          The skeleton_proxy is a lightweight proxy object used to indicate that the skeleton of an object, not the object itself, should be transmitted. It can be used with the send and recv operations of communicators or the broadcast collective. When a skeleton_proxy is sent, Boost.MPI generates a description containing the structure of the stored object. When that skeleton is received, the receiving object is reshaped to match the structure. Once the skeleton of an object as been transmitted, its content can be transmitted separately (often several times) without changing the structure of the object.

          -

          +

          skeleton_proxy public construct/copy/destruct

          1. -
            skeleton_proxy(T & x);
            +
            skeleton_proxy(T & x);

            Constructs a skeleton_proxy that references object x.

            @@ -88,7 +88,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            diff --git a/doc/html/boost/mpi/status.html b/doc/html/boost/mpi/status.html index 69b1e607a3..c9496505f8 100644 --- a/doc/html/boost/mpi/status.html +++ b/doc/html/boost/mpi/status.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
            -PrevUpHomeNext +PrevUpHomeNext
            @@ -30,62 +30,62 @@

            boost::mpi::status — Contains information about a message that has been or can be received.

            Synopsis

            -
            // In header: <boost/mpi/status.hpp>
            +
            // In header: <boost/mpi/status.hpp>
             
             
             class status {
             public:
               // construct/copy/destruct
            -  status();
            -  status(MPI_Status const &);
            +  status();
            +  status(MPI_Status const &);
             
            -  // public member functions
            -  int source() const;
            -  int tag() const;
            -  int error() const;
            -  bool cancelled() const;
            -  template<typename T> optional< int > count() const;
            -  operator MPI_Status &();
            -  operator const MPI_Status &() const;
            +  // public member functions
            +  int source() const;
            +  int tag() const;
            +  int error() const;
            +  bool cancelled() const;
            +  template<typename T> optional< int > count() const;
            +  operator MPI_Status &();
            +  operator const MPI_Status &() const;
             
               // public data members
               mutable int m_count;
             };
            -

            Description

            +

            Description

            This structure contains status information about messages that have been received (with communicator::recv) or can be received (returned from communicator::probe or communicator::iprobe). It permits access to the source of the message, message tag, error code (rarely used), or the number of elements that have been transmitted.

            -

            +

            status public construct/copy/destruct

              -
            1. status();
            2. -
            3. status(MPI_Status const & s);
            4. +
            5. status();
            6. +
            7. status(MPI_Status const & s);
            -

            -status public member functions

            +

            +status public member functions

            1. -
              int source() const;
              +
              int source() const;

              Retrieve the source of the message.

            2. -
              int tag() const;
              +
              int tag() const;

              Retrieve the message tag.

            3. -
              int error() const;
              +
              int error() const;

              Retrieve the error code.

            4. -
              bool cancelled() const;
              +
              bool cancelled() const;

              Determine whether the communication associated with this object has been successfully cancelled.

            5. -
              template<typename T> optional< int > count() const;
              +
              template<typename T> optional< int > count() const;

              Determines the number of elements of type T contained in the message. The type T must have an associated data type, i.e., is_mpi_datatype<T> must derive mpl::true_. In cases where the type T does not match the transmitted type, this routine will return an empty optional<int>.

              @@ -101,11 +101,11 @@
          2. -
            operator MPI_Status &();
            +
            operator MPI_Status &();

            References the underlying MPI_Status

          3. -
            operator const MPI_Status &() const;
            +
            operator const MPI_Status &() const;

            References the underlying MPI_Status

          @@ -124,7 +124,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/test_all.html b/doc/html/boost/mpi/test_all.html index 1600749ecf..1124eaecbc 100644 --- a/doc/html/boost/mpi/test_all.html +++ b/doc/html/boost/mpi/test_all.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,7 +30,7 @@

          boost::mpi::test_all — Tests whether all non-blocking requests have completed.

          Synopsis

          -
          // In header: <boost/mpi/nonblocking.hpp>
          +
          // In header: <boost/mpi/nonblocking.hpp>
           
           
           template<typename ForwardIterator, typename OutputIterator> 
          @@ -39,7 +39,7 @@
           template<typename ForwardIterator> 
             bool test_all(ForwardIterator first, ForwardIterator last);
          -

          Description

          +

          Description

          This routine takes in a set of requests stored in the iterator range [first,last) and determines whether all of these requests have been completed. However, due to limitations of the underlying MPI implementation, if any of the requests refers to a non-blocking send or receive of a serialized data type, test_all will always return the equivalent of false (i.e., the requests cannot all be finished at this time). This routine performs the same functionality as wait_all, except that this routine will not block. This routine provides functionality equivalent to MPI_Testall.

          @@ -93,7 +93,7 @@


          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/test_any.html b/doc/html/boost/mpi/test_any.html index 6c0974f7c4..1bb5c5c28c 100644 --- a/doc/html/boost/mpi/test_any.html +++ b/doc/html/boost/mpi/test_any.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,14 +30,14 @@

          boost::mpi::test_any — Test whether any non-blocking request has completed.

          Synopsis

          -
          // In header: <boost/mpi/nonblocking.hpp>
          +
          // In header: <boost/mpi/nonblocking.hpp>
           
           
           template<typename ForwardIterator> 
             optional< std::pair< status, ForwardIterator > > 
             test_any(ForwardIterator first, ForwardIterator last);
          -

          Description

          +

          Description

          This routine takes in a set of requests stored in the iterator range [first,last) and tests whether any of these requests has been completed. This routine is similar to wait_any, but will not block waiting for requests to completed. It provides functionality equivalent to MPI_Testany.

          @@ -87,7 +87,7 @@


          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/test_some.html b/doc/html/boost/mpi/test_some.html index 3fe62318d7..d40bd0f5e6 100644 --- a/doc/html/boost/mpi/test_some.html +++ b/doc/html/boost/mpi/test_some.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,7 +30,7 @@

          boost::mpi::test_some — Test whether some non-blocking requests have completed.

          Synopsis

          -
          // In header: <boost/mpi/nonblocking.hpp>
          +
          // In header: <boost/mpi/nonblocking.hpp>
           
           
           template<typename BidirectionalIterator, typename OutputIterator> 
          @@ -41,7 +41,7 @@
             BidirectionalIterator 
             test_some(BidirectionalIterator first, BidirectionalIterator last);
          -

          Description

          +

          Description

          This routine takes in a set of requests stored in the iterator range [first,last) and tests to see if any of the requests has completed. It completes all of the requests it can, partitioning the input sequence into pending requests followed by completed requests. If an output iterator is provided, status objects will be emitted for each of the completed requests. This routine is similar to wait_some, but does not wait until any requests have completed. This routine provides functionality equivalent to MPI_Testsome.

          @@ -95,7 +95,7 @@


          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/threading/level.html b/doc/html/boost/mpi/threading/level.html index 3a75a0d0f5..a93f9aa0f6 100644 --- a/doc/html/boost/mpi/threading/level.html +++ b/doc/html/boost/mpi/threading/level.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,14 +30,14 @@

          boost::mpi::threading::level — specify the supported threading level.

          Synopsis

          -
          // In header: <boost/mpi/environment.hpp>
          +
          // In header: <boost/mpi/environment.hpp>
           
           
           enum level { single = = MPI_THREAD_SINGLE, funneled = = MPI_THREAD_FUNNELED, 
                        serialized = = MPI_THREAD_SERIALIZED, 
                        multiple = = MPI_THREAD_MULTIPLE };
          -

          Description

          +

          Description

          Based on MPI 2 standard/8.7.3

          single
          @@ -72,7 +72,7 @@
          -PrevUpHomeNext +PrevUpHomeNext
          diff --git a/doc/html/boost/mpi/threading/ope_1_3_26_5_14_10_2_1_2_2.html b/doc/html/boost/mpi/threading/ope_1_3_26_5_14_10_2_1_2_2.html new file mode 100644 index 0000000000..ae6d1f7b4f --- /dev/null +++ b/doc/html/boost/mpi/threading/ope_1_3_26_5_14_10_2_1_2_2.html @@ -0,0 +1,57 @@ + + + + +Function operator<< + + + + + + + + + + + + + + + +
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          +
          +
          +PrevUpHomeNext +
          +
          +
          +
          +

          Function operator<<

          +

          boost::mpi::threading::operator<<

          +
          +

          Synopsis

          +
          // In header: <boost/mpi/environment.hpp>
          +
          +
          +std::ostream & operator<<(std::ostream & out, level l);
          +
          +

          Description

          +

          Formated output for threading level.

          +
          +
          + + + +
          +
          +
          +PrevUpHomeNext +
          + + diff --git a/doc/html/boost/mpi/threading/ope_1_3_26_5_14_10_2_1_2_3.html b/doc/html/boost/mpi/threading/ope_1_3_26_5_14_10_2_1_2_3.html new file mode 100644 index 0000000000..18c75c3e92 --- /dev/null +++ b/doc/html/boost/mpi/threading/ope_1_3_26_5_14_10_2_1_2_3.html @@ -0,0 +1,57 @@ + + + + +Function operator>> + + + + + + + + + + + + + + + +
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          +
          +
          +PrevUpHomeNext +
          +
          +
          +
          +

          Function operator>>

          +

          boost::mpi::threading::operator>>

          +
          +

          Synopsis

          +
          // In header: <boost/mpi/environment.hpp>
          +
          +
          +std::istream & operator>>(std::istream & in, level & l);
          +
          +

          Description

          +

          Formated input for threading level.

          +
          +
          + + + +
          +
          +
          +PrevUpHomeNext +
          + + diff --git a/doc/html/boost/mpi/threading/operato_1_3_26_6_9_2_1_2_2.html b/doc/html/boost/mpi/threading/operato_1_3_26_6_9_2_1_2_2.html deleted file mode 100644 index 852cd2c55f..0000000000 --- a/doc/html/boost/mpi/threading/operato_1_3_26_6_9_2_1_2_2.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function operator<< - - - - - - - - - - - - - - - -
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          -
          -
          -PrevUpHomeNext -
          -
          -
          -
          -

          Function operator<<

          -

          boost::mpi::threading::operator<<

          -
          -

          Synopsis

          -
          // In header: <boost/mpi/environment.hpp>
          -
          -
          -std::ostream & operator<<(std::ostream & out, level l);
          -
          -

          Description

          -

          Formated output for threading level.

          -
          -
          - - - -
          -
          -
          -PrevUpHomeNext -
          - - diff --git a/doc/html/boost/mpi/threading/operato_1_3_26_6_9_2_1_2_3.html b/doc/html/boost/mpi/threading/operato_1_3_26_6_9_2_1_2_3.html deleted file mode 100644 index 44dce79a36..0000000000 --- a/doc/html/boost/mpi/threading/operato_1_3_26_6_9_2_1_2_3.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Function operator>> - - - - - - - - - - - - - - - -
          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
          -
          -
          -PrevUpHomeNext -
          -
          -
          -
          -

          Function operator>>

          -

          boost::mpi::threading::operator>>

          -
          -

          Synopsis

          -
          // In header: <boost/mpi/environment.hpp>
          -
          -
          -std::istream & operator>>(std::istream & in, level & l);
          -
          -

          Description

          -

          Formated input for threading level.

          -
          -
          - - - -
          -
          -
          -PrevUpHomeNext -
          - - diff --git a/doc/html/boost/mpi/timer.html b/doc/html/boost/mpi/timer.html index 045bc0f2ac..f8ba4dcefc 100644 --- a/doc/html/boost/mpi/timer.html +++ b/doc/html/boost/mpi/timer.html @@ -6,9 +6,9 @@ - + - + @@ -21,7 +21,7 @@

          -PrevUpHomeNext +PrevUpHomeNext
          @@ -30,33 +30,33 @@

          boost::mpi::timer — A simple timer that provides access to the MPI timing facilities.

          Synopsis

          -
          // In header: <boost/mpi/timer.hpp>
          +
          // In header: <boost/mpi/timer.hpp>
           
           
           class timer {
           public:
             // construct/copy/destruct
          -  timer();
          +  timer();
           
          -  // public member functions
          -  void restart();
          -  double elapsed() const;
          -  double elapsed_max() const;
          -  double elapsed_min() const;
          +  // public member functions
          +  void restart();
          +  double elapsed() const;
          +  double elapsed_max() const;
          +  double elapsed_min() const;
           
          -  // public static functions
          -  static bool time_is_global();
          +  // public static functions
          +  static bool time_is_global();
           };
          -

          Description

          +

          Description

          The timer class is a simple wrapper around the MPI timing facilities that mimics the interface of the Boost Timer library.

          -

          +

          timer public construct/copy/destruct

          1. -
            timer();
            +
            timer();

            Initializes the timer

            @@ -73,11 +73,11 @@
          -

          -timer public member functions

          +

          +timer public member functions

          1. -
            void restart();
            +
            void restart();

            Restart the timer.

            @@ -93,24 +93,24 @@
        11. -
          double elapsed() const;
          +
          double elapsed() const;

          Return the amount of time that has elapsed since the last construction or reset, in seconds.

        12. -
          double elapsed_max() const;
          +
          double elapsed_max() const;

          Return an estimate of the maximum possible value of elapsed(). Note that this routine may return too high a value on some systems.

        13. -
          double elapsed_min() const;
          +
          double elapsed_min() const;

          Returns the minimum non-zero value that elapsed() may return. This is the resolution of the timer.

        -

        -timer public static functions

        +

        +timer public static functions

        1. -
          static bool time_is_global();
          +
          static bool time_is_global();

          Determines whether the elapsed time values are global times or local processor times.

        @@ -128,7 +128,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/mpi/wait_all.html b/doc/html/boost/mpi/wait_all.html index ce9daf3c93..f13ec29c78 100644 --- a/doc/html/boost/mpi/wait_all.html +++ b/doc/html/boost/mpi/wait_all.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        @@ -30,7 +30,7 @@

        boost::mpi::wait_all — Wait until all non-blocking requests have completed.

        Synopsis

        -
        // In header: <boost/mpi/nonblocking.hpp>
        +
        // In header: <boost/mpi/nonblocking.hpp>
         
         
         template<typename ForwardIterator, typename OutputIterator> 
        @@ -39,7 +39,7 @@
         template<typename ForwardIterator> 
           void wait_all(ForwardIterator first, ForwardIterator last);
        -

        Description

        +

        Description

        This routine takes in a set of requests stored in the iterator range [first,last) and waits until all of these requests have been completed. It provides functionality equivalent to MPI_Waitall.

        @@ -93,7 +93,7 @@


        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/mpi/wait_any.html b/doc/html/boost/mpi/wait_any.html index 641b4dd827..bfef4455b0 100644 --- a/doc/html/boost/mpi/wait_any.html +++ b/doc/html/boost/mpi/wait_any.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        @@ -30,14 +30,14 @@

        boost::mpi::wait_any — Wait until any non-blocking request has completed.

        Synopsis

        -
        // In header: <boost/mpi/nonblocking.hpp>
        +
        // In header: <boost/mpi/nonblocking.hpp>
         
         
         template<typename ForwardIterator> 
           std::pair< status, ForwardIterator > 
           wait_any(ForwardIterator first, ForwardIterator last);
        -

        Description

        +

        Description

        This routine takes in a set of requests stored in the iterator range [first,last) and waits until any of these requests has been completed. It provides functionality equivalent to MPI_Waitany.

        @@ -87,7 +87,7 @@


        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/mpi/wait_some.html b/doc/html/boost/mpi/wait_some.html index bc368b5b87..948a01903e 100644 --- a/doc/html/boost/mpi/wait_some.html +++ b/doc/html/boost/mpi/wait_some.html @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        @@ -30,7 +30,7 @@

        boost::mpi::wait_some — Wait until some non-blocking requests have completed.

        Synopsis

        -
        // In header: <boost/mpi/nonblocking.hpp>
        +
        // In header: <boost/mpi/nonblocking.hpp>
         
         
         template<typename BidirectionalIterator, typename OutputIterator> 
        @@ -41,7 +41,7 @@
           BidirectionalIterator 
           wait_some(BidirectionalIterator first, BidirectionalIterator last);
        -

        Description

        +

        Description

        This routine takes in a set of requests stored in the iterator range [first,last) and waits until at least one of the requests has completed. It then completes all of the requests it can, partitioning the input sequence into pending requests followed by completed requests. If an output iterator is provided, status objects will be emitted for each of the completed requests. This routine provides functionality equivalent to MPI_Waitsome.

        @@ -95,7 +95,7 @@


        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/operator___idp24460448.html b/doc/html/boost/operator___idp24460448.html deleted file mode 100644 index 190d5948a6..0000000000 --- a/doc/html/boost/operator___idp24460448.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - -Function template operator== - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function template operator==

        -

        boost::operator== — Compare two circular_buffers element-by-element to determine if they are equal.

        -
        -

        Synopsis

        -
        // In header: <boost/circular_buffer/base.hpp>
        -
        -
        -template<typename T, typename Alloc> 
        -  bool operator==(const circular_buffer< T, Alloc > & lhs, 
        -                  const circular_buffer< T, Alloc > & rhs);
        -
        -

        Description

        -

        - - -

        -

        Complexity. Linear (in the size of the circular_buffers).

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin())

        Throws:

        Nothing.
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/operator___idp24487216.html b/doc/html/boost/operator___idp24487216.html deleted file mode 100644 index 40dbe23cca..0000000000 --- a/doc/html/boost/operator___idp24487216.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - -Function template operator!= - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function template operator!=

        -

        boost::operator!= — Compare two circular_buffers element-by-element to determine if they are non-equal.

        -
        -

        Synopsis

        -
        // In header: <boost/circular_buffer/base.hpp>
        -
        -
        -template<typename T, typename Alloc> 
        -  bool operator!=(const circular_buffer< T, Alloc > & lhs, 
        -                  const circular_buffer< T, Alloc > & rhs);
        -
        -

        Description

        -

        - - -

        -

        Complexity. Linear (in the size of the circular_buffers).

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -

        See Also:

        -

        operator==(const circular_buffer<T,Alloc>&, const circular_buffer<T,Alloc>&)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        !(lhs == rhs)

        Throws:

        Nothing.
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/operator___idp24515552.html b/doc/html/boost/operator___idp24515552.html deleted file mode 100644 index 0ef349a588..0000000000 --- a/doc/html/boost/operator___idp24515552.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - -Function template operator<= - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function template operator<=

        -

        boost::operator<= — Compare two circular_buffers element-by-element to determine if the left one is lesser or equal to the right one.

        -
        -

        Synopsis

        -
        // In header: <boost/circular_buffer/base.hpp>
        -
        -
        -template<typename T, typename Alloc> 
        -  bool operator<=(const circular_buffer< T, Alloc > & lhs, 
        -                  const circular_buffer< T, Alloc > & rhs);
        -
        -

        Description

        -

        - - -

        -

        Complexity. Linear (in the size of the circular_buffers).

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -

        See Also:

        -

        operator<(const circular_buffer<T,Alloc>&, const circular_buffer<T,Alloc>&)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        !(rhs < lhs)

        Throws:

        Nothing.
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/operator___idp24529728.html b/doc/html/boost/operator___idp24529728.html deleted file mode 100644 index e970367cca..0000000000 --- a/doc/html/boost/operator___idp24529728.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - -Function template operator>= - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function template operator>=

        -

        boost::operator>= — Compare two circular_buffers element-by-element to determine if the left one is greater or equal to the right one.

        -
        -

        Synopsis

        -
        // In header: <boost/circular_buffer/base.hpp>
        -
        -
        -template<typename T, typename Alloc> 
        -  bool operator>=(const circular_buffer< T, Alloc > & lhs, 
        -                  const circular_buffer< T, Alloc > & rhs);
        -
        -

        Description

        -

        - - -

        -

        Complexity. Linear (in the size of the circular_buffers).

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -

        See Also:

        -

        operator<(const circular_buffer<T,Alloc>&, const circular_buffer<T,Alloc>&)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        !(lhs < rhs)

        Throws:

        Nothing.
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/operator___idp43338976.html b/doc/html/boost/operator___idp43338976.html new file mode 100644 index 0000000000..7c94f7d5bb --- /dev/null +++ b/doc/html/boost/operator___idp43338976.html @@ -0,0 +1,101 @@ + + + + +Function template operator== + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function template operator==

        +

        boost::operator== — Compare two circular_buffers element-by-element to determine if they are equal.

        +
        +

        Synopsis

        +
        // In header: <boost/circular_buffer/base.hpp>
        +
        +
        +template<typename T, typename Alloc> 
        +  bool operator==(const circular_buffer< T, Alloc > & lhs, 
        +                  const circular_buffer< T, Alloc > & rhs);
        +
        +

        Description

        +

        + + +

        +

        Complexity. Linear (in the size of the circular_buffers).

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin())

        Throws:

        Nothing.
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/operator___idp43365744.html b/doc/html/boost/operator___idp43365744.html new file mode 100644 index 0000000000..ed7f6bd929 --- /dev/null +++ b/doc/html/boost/operator___idp43365744.html @@ -0,0 +1,105 @@ + + + + +Function template operator!= + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function template operator!=

        +

        boost::operator!= — Compare two circular_buffers element-by-element to determine if they are non-equal.

        +
        +

        Synopsis

        +
        // In header: <boost/circular_buffer/base.hpp>
        +
        +
        +template<typename T, typename Alloc> 
        +  bool operator!=(const circular_buffer< T, Alloc > & lhs, 
        +                  const circular_buffer< T, Alloc > & rhs);
        +
        +

        Description

        +

        + + +

        +

        Complexity. Linear (in the size of the circular_buffers).

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +

        See Also:

        +

        operator==(const circular_buffer<T,Alloc>&, const circular_buffer<T,Alloc>&)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        !(lhs == rhs)

        Throws:

        Nothing.
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/operator___idp43394080.html b/doc/html/boost/operator___idp43394080.html new file mode 100644 index 0000000000..1e40df7e13 --- /dev/null +++ b/doc/html/boost/operator___idp43394080.html @@ -0,0 +1,105 @@ + + + + +Function template operator<= + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function template operator<=

        +

        boost::operator<= — Compare two circular_buffers element-by-element to determine if the left one is lesser or equal to the right one.

        +
        +

        Synopsis

        +
        // In header: <boost/circular_buffer/base.hpp>
        +
        +
        +template<typename T, typename Alloc> 
        +  bool operator<=(const circular_buffer< T, Alloc > & lhs, 
        +                  const circular_buffer< T, Alloc > & rhs);
        +
        +

        Description

        +

        + + +

        +

        Complexity. Linear (in the size of the circular_buffers).

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +

        See Also:

        +

        operator<(const circular_buffer<T,Alloc>&, const circular_buffer<T,Alloc>&)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        !(rhs < lhs)

        Throws:

        Nothing.
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/operator___idp43408256.html b/doc/html/boost/operator___idp43408256.html new file mode 100644 index 0000000000..e4fc199e93 --- /dev/null +++ b/doc/html/boost/operator___idp43408256.html @@ -0,0 +1,105 @@ + + + + +Function template operator>= + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function template operator>=

        +

        boost::operator>= — Compare two circular_buffers element-by-element to determine if the left one is greater or equal to the right one.

        +
        +

        Synopsis

        +
        // In header: <boost/circular_buffer/base.hpp>
        +
        +
        +template<typename T, typename Alloc> 
        +  bool operator>=(const circular_buffer< T, Alloc > & lhs, 
        +                  const circular_buffer< T, Alloc > & rhs);
        +
        +

        Description

        +

        + + +

        +

        Complexity. Linear (in the size of the circular_buffers).

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +

        See Also:

        +

        operator<(const circular_buffer<T,Alloc>&, const circular_buffer<T,Alloc>&)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        !(lhs < rhs)

        Throws:

        Nothing.
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/operator_idp24473872.html b/doc/html/boost/operator_idp24473872.html deleted file mode 100644 index 915272846c..0000000000 --- a/doc/html/boost/operator_idp24473872.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - -Function template operator< - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function template operator<

        -

        boost::operator< — Compare two circular_buffers element-by-element to determine if the left one is lesser than the right one.

        -
        -

        Synopsis

        -
        // In header: <boost/circular_buffer/base.hpp>
        -
        -
        -template<typename T, typename Alloc> 
        -  bool operator<(const circular_buffer< T, Alloc > & lhs, 
        -                 const circular_buffer< T, Alloc > & rhs);
        -
        -

        Description

        -

        - - -

        -

        Complexity. Linear (in the size of the circular_buffers).

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end())

        Throws:

        Nothing.
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/operator_idp24501376.html b/doc/html/boost/operator_idp24501376.html deleted file mode 100644 index 2e73be370d..0000000000 --- a/doc/html/boost/operator_idp24501376.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - -Function template operator> - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function template operator>

        -

        boost::operator> — Compare two circular_buffers element-by-element to determine if the left one is greater than the right one.

        -
        -

        Synopsis

        -
        // In header: <boost/circular_buffer/base.hpp>
        -
        -
        -template<typename T, typename Alloc> 
        -  bool operator>(const circular_buffer< T, Alloc > & lhs, 
        -                 const circular_buffer< T, Alloc > & rhs);
        -
        -

        Description

        -

        - - -

        -

        Complexity. Linear (in the size of the circular_buffers).

        -

        -

        -

        Iterator Invalidation. Does not invalidate any iterators.

        -

        -

        -

        See Also:

        -

        operator<(const circular_buffer<T,Alloc>&, const circular_buffer<T,Alloc>&)

        -

        -

        -
        ---- - - - - - - - - - - - - - - -

        Parameters:

        ---- - - - - - - - - - - -

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        rhs < lhs

        Throws:

        Nothing.
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/operator_idp43352400.html b/doc/html/boost/operator_idp43352400.html new file mode 100644 index 0000000000..f9e224e570 --- /dev/null +++ b/doc/html/boost/operator_idp43352400.html @@ -0,0 +1,101 @@ + + + + +Function template operator< + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function template operator<

        +

        boost::operator< — Compare two circular_buffers element-by-element to determine if the left one is lesser than the right one.

        +
        +

        Synopsis

        +
        // In header: <boost/circular_buffer/base.hpp>
        +
        +
        +template<typename T, typename Alloc> 
        +  bool operator<(const circular_buffer< T, Alloc > & lhs, 
        +                 const circular_buffer< T, Alloc > & rhs);
        +
        +

        Description

        +

        + + +

        +

        Complexity. Linear (in the size of the circular_buffers).

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end())

        Throws:

        Nothing.
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/operator_idp43379904.html b/doc/html/boost/operator_idp43379904.html new file mode 100644 index 0000000000..fd64108285 --- /dev/null +++ b/doc/html/boost/operator_idp43379904.html @@ -0,0 +1,105 @@ + + + + +Function template operator> + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function template operator>

        +

        boost::operator> — Compare two circular_buffers element-by-element to determine if the left one is greater than the right one.

        +
        +

        Synopsis

        +
        // In header: <boost/circular_buffer/base.hpp>
        +
        +
        +template<typename T, typename Alloc> 
        +  bool operator>(const circular_buffer< T, Alloc > & lhs, 
        +                 const circular_buffer< T, Alloc > & rhs);
        +
        +

        Description

        +

        + + +

        +

        Complexity. Linear (in the size of the circular_buffers).

        +

        +

        +

        Iterator Invalidation. Does not invalidate any iterators.

        +

        +

        +

        See Also:

        +

        operator<(const circular_buffer<T,Alloc>&, const circular_buffer<T,Alloc>&)

        +

        +

        +
        ++++ + + + + + + + + + + + + + + +

        Parameters:

        ++++ + + + + + + + + + + +

        lhs

        The circular_buffer to compare.

        rhs

        The circular_buffer to compare.

        Returns:

        rhs < lhs

        Throws:

        Nothing.
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/duration_from_string.html b/doc/html/boost/posix_time/duration_from_string.html index 501540e350..1e6bf743de 100644 --- a/doc/html/boost/posix_time/duration_from_string.html +++ b/doc/html/boost/posix_time/duration_from_string.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        @@ -35,7 +35,7 @@ time_duration duration_from_string(const std::string & s);
        -

        Description

        +

        Description

        Expected format for string is "[-]h[h][:mm][:ss][.fff]". A negative duration will be created if the first character in string is a '-', all other '-' will be treated as delimiters. Accepted delimiters are "-:,.".

        @@ -47,7 +47,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/posix_time/from_ftime.html b/doc/html/boost/posix_time/from_ftime.html index c498249de9..b9563abe4f 100644 --- a/doc/html/boost/posix_time/from_ftime.html +++ b/doc/html/boost/posix_time/from_ftime.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        @@ -36,7 +36,7 @@ template<typename TimeT, typename FileTimeT> TimeT from_ftime(const FileTimeT & ft);
        -

        Description

        +

        Description

        Function to create a time object from an initialized FILETIME struct. A FILETIME struct holds 100-nanosecond units (0.0000001). When built with microsecond resolution the FILETIME's sub second value will be truncated. Nanosecond resolution has no truncation.

        @@ -60,7 +60,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/posix_time/hours.html b/doc/html/boost/posix_time/hours.html index d9b04242d0..c93d934db9 100644 --- a/doc/html/boost/posix_time/hours.html +++ b/doc/html/boost/posix_time/hours.html @@ -7,7 +7,7 @@ - + @@ -21,13 +21,13 @@
        -PrevUpHomeNext +PrevUpHomeNext

        Class hours

        -

        boost::posix_time::hours — Allows expression of durations as an hour count.

        +

        boost::posix_time::hours

        Synopsis

        // In header: <boost/date_time/posix_time/posix_time_duration.hpp>
        @@ -36,16 +36,21 @@
         class hours : public boost::posix_time::time_duration {
         public:
           // construct/copy/destruct
        -  explicit hours(long);
        +  template<typename T> 
        +    explicit hours(T const &, 
        +                   typename boost::enable_if< boost::is_integral< T >, void >::type * = 0);
         };
        -

        Description

        +

        Description

        +

        Allows expression of durations as an hour count The argument must be an integral type

        -

        +

        hours public construct/copy/destruct

        -
        1. explicit hours(long h);
        +
        1. template<typename T> 
          +  explicit hours(T const & h, 
          +                 typename boost::enable_if< boost::is_integral< T >, void >::type * = 0);
        @@ -57,7 +62,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/posix_time/millis_1_3_12_15_5_5_1_1_4.html b/doc/html/boost/posix_time/millis_1_3_12_15_5_5_1_1_4.html deleted file mode 100644 index 4cc07d86e4..0000000000 --- a/doc/html/boost/posix_time/millis_1_3_12_15_5_5_1_1_4.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -Class millisec_posix_time_system_config - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Class millisec_posix_time_system_config

        -

        boost::posix_time::millisec_posix_time_system_config

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/posix_time_config.hpp>
        -
        -
        -class millisec_posix_time_system_config {
        -public:
        -  // types
        -  typedef boost::int64_t             time_rep_type;     
        -  typedef gregorian::date            date_type;         
        -  typedef gregorian::date_duration   date_duration_type;
        -  typedef time_duration              time_duration_type;
        -  typedef time_res_traits::tick_type int_type;          
        -  typedef time_res_traits::impl_type impl_type;         
        -  typedef time_res_traits            resolution_traits; 
        -
        -  // public member functions
        -   BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000);
        -};
        -
        -

        Description

        -
        -

        -millisec_posix_time_system_config public member functions

        -
        1.  BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000);
        -
        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/millis_1_3_13_15_5_5_1_1_4.html b/doc/html/boost/posix_time/millis_1_3_13_15_5_5_1_1_4.html new file mode 100644 index 0000000000..3f8dcebf9f --- /dev/null +++ b/doc/html/boost/posix_time/millis_1_3_13_15_5_5_1_1_4.html @@ -0,0 +1,70 @@ + + + + +Class millisec_posix_time_system_config + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Class millisec_posix_time_system_config

        +

        boost::posix_time::millisec_posix_time_system_config

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/posix_time_config.hpp>
        +
        +
        +class millisec_posix_time_system_config {
        +public:
        +  // types
        +  typedef boost::int64_t             time_rep_type;     
        +  typedef gregorian::date            date_type;         
        +  typedef gregorian::date_duration   date_duration_type;
        +  typedef time_duration              time_duration_type;
        +  typedef time_res_traits::tick_type int_type;          
        +  typedef time_res_traits::impl_type impl_type;         
        +  typedef time_res_traits            resolution_traits; 
        +
        +  // public member functions
        +   BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000);
        +};
        +
        +

        Description

        +
        +

        +millisec_posix_time_system_config public member functions

        +
        1.  BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000);
        +
        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/minutes.html b/doc/html/boost/posix_time/minutes.html index f65a46ce03..bd37f63497 100644 --- a/doc/html/boost/posix_time/minutes.html +++ b/doc/html/boost/posix_time/minutes.html @@ -27,7 +27,7 @@

        Class minutes

        -

        boost::posix_time::minutes — Allows expression of durations as a minute count.

        +

        boost::posix_time::minutes

        Synopsis

        // In header: <boost/date_time/posix_time/posix_time_duration.hpp>
        @@ -36,16 +36,21 @@
         class minutes : public boost::posix_time::time_duration {
         public:
           // construct/copy/destruct
        -  explicit minutes(long);
        +  template<typename T> 
        +    explicit minutes(T const &, 
        +                     typename boost::enable_if< boost::is_integral< T >, void >::type * = 0);
         };
        -

        Description

        +

        Description

        +

        Allows expression of durations as a minute count The argument must be an integral type

        -

        +

        minutes public construct/copy/destruct

        -
        1. explicit minutes(long m);
        +
        1. template<typename T> 
          +  explicit minutes(T const & m, 
          +                   typename boost::enable_if< boost::is_integral< T >, void >::type * = 0);
        diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_1.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_1.html deleted file mode 100644 index 1fcb863681..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function operator+ - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function operator+

        -

        boost::posix_time::operator+

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        -
        -
        -ptime operator+(const ptime & t, const boost::gregorian::months & m);
        -
        -

        Description

        -

        Adds a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_2.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_2.html deleted file mode 100644 index ec081fe161..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_2.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function operator+= - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function operator+=

        -

        boost::posix_time::operator+=

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        -
        -
        -ptime operator+=(ptime & t, const boost::gregorian::months & m);
        -
        -

        Description

        -

        Adds a months object to a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_3.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_3.html deleted file mode 100644 index 4aa463d263..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_3.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function operator- - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function operator-

        -

        boost::posix_time::operator-

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        -
        -
        -ptime operator-(const ptime & t, const boost::gregorian::months & m);
        -
        -

        Description

        -

        Subtracts a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_4.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_4.html deleted file mode 100644 index efbe6c747a..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_4.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function operator-= - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function operator-=

        -

        boost::posix_time::operator-=

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        -
        -
        -ptime operator-=(ptime & t, const boost::gregorian::months & m);
        -
        -

        Description

        -

        Subtracts a months object from a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_5.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_5.html deleted file mode 100644 index 7f2fc8fe00..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_5.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function operator+ - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function operator+

        -

        boost::posix_time::operator+

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        -
        -
        -ptime operator+(const ptime & t, const boost::gregorian::years & y);
        -
        -

        Description

        -

        Adds a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_6.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_6.html deleted file mode 100644 index 75049b01f3..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_6.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function operator+= - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function operator+=

        -

        boost::posix_time::operator+=

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        -
        -
        -ptime operator+=(ptime & t, const boost::gregorian::years & y);
        -
        -

        Description

        -

        Adds a years object to a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_7.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_7.html deleted file mode 100644 index 026c24118c..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_7.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function operator- - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function operator-

        -

        boost::posix_time::operator-

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        -
        -
        -ptime operator-(const ptime & t, const boost::gregorian::years & y);
        -
        -

        Description

        -

        Subtracts a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_8.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_8.html deleted file mode 100644 index e5c8c2bae2..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_3_2_1_8.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - -Function operator-= - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function operator-=

        -

        boost::posix_time::operator-=

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        -
        -
        -ptime operator-=(ptime & t, const boost::gregorian::years & y);
        -
        -

        Description

        -

        Subtracts a years object from a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_12_15_5_8_1_1_6.html b/doc/html/boost/posix_time/operat_1_3_12_15_5_8_1_1_6.html deleted file mode 100644 index 216f646704..0000000000 --- a/doc/html/boost/posix_time/operat_1_3_12_15_5_8_1_1_6.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -Function template operator>> - - - - - - - - - - - - - - - -
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        -
        -
        -PrevUpHomeNext -
        -
        -
        -
        -

        Function template operator>>

        -

        boost::posix_time::operator>>

        -
        -

        Synopsis

        -
        // In header: <boost/date_time/posix_time/posix_time_legacy_io.hpp>
        -
        -
        -template<typename charT> 
        -  std::basic_istream< charT > & 
        -  operator>>(std::basic_istream< charT > & is, time_period & tp);
        -
        -

        Description

        -

        operator>> for time_period. time_period must be in "[date time_duration/date time_duration]" format.

        -
        -
        - - - -
        -
        -
        -PrevUpHomeNext -
        - - diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_1.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_1.html new file mode 100644 index 0000000000..a2779756f6 --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_1.html @@ -0,0 +1,53 @@ + + + + +Function operator+ + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function operator+

        +

        boost::posix_time::operator+

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        +
        +
        +ptime operator+(const ptime & t, const boost::gregorian::months & m);
        +
        +

        Description

        +

        Adds a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_2.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_2.html new file mode 100644 index 0000000000..600f6b64fb --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_2.html @@ -0,0 +1,53 @@ + + + + +Function operator+= + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function operator+=

        +

        boost::posix_time::operator+=

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        +
        +
        +ptime operator+=(ptime & t, const boost::gregorian::months & m);
        +
        +

        Description

        +

        Adds a months object to a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_3.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_3.html new file mode 100644 index 0000000000..b6e63f4c31 --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_3.html @@ -0,0 +1,53 @@ + + + + +Function operator- + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function operator-

        +

        boost::posix_time::operator-

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        +
        +
        +ptime operator-(const ptime & t, const boost::gregorian::months & m);
        +
        +

        Description

        +

        Subtracts a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_4.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_4.html new file mode 100644 index 0000000000..b683c5a52f --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_4.html @@ -0,0 +1,53 @@ + + + + +Function operator-= + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function operator-=

        +

        boost::posix_time::operator-=

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        +
        +
        +ptime operator-=(ptime & t, const boost::gregorian::months & m);
        +
        +

        Description

        +

        Subtracts a months object from a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_5.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_5.html new file mode 100644 index 0000000000..f94e3bacc1 --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_5.html @@ -0,0 +1,53 @@ + + + + +Function operator+ + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function operator+

        +

        boost::posix_time::operator+

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        +
        +
        +ptime operator+(const ptime & t, const boost::gregorian::years & y);
        +
        +

        Description

        +

        Adds a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_6.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_6.html new file mode 100644 index 0000000000..4c0e1fed14 --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_6.html @@ -0,0 +1,53 @@ + + + + +Function operator+= + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function operator+=

        +

        boost::posix_time::operator+=

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        +
        +
        +ptime operator+=(ptime & t, const boost::gregorian::years & y);
        +
        +

        Description

        +

        Adds a years object to a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_7.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_7.html new file mode 100644 index 0000000000..bc46cb88ef --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_7.html @@ -0,0 +1,53 @@ + + + + +Function operator- + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function operator-

        +

        boost::posix_time::operator-

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        +
        +
        +ptime operator-(const ptime & t, const boost::gregorian::years & y);
        +
        +

        Description

        +

        Subtracts a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_8.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_8.html new file mode 100644 index 0000000000..8530b2dbd8 --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_3_2_1_8.html @@ -0,0 +1,53 @@ + + + + +Function operator-= + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function operator-=

        +

        boost::posix_time::operator-=

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/date_duration_operators.hpp>
        +
        +
        +ptime operator-=(ptime & t, const boost::gregorian::years & y);
        +
        +

        Description

        +

        Subtracts a years object from a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/operat_1_3_13_15_5_8_1_1_6.html b/doc/html/boost/posix_time/operat_1_3_13_15_5_8_1_1_6.html new file mode 100644 index 0000000000..19b7bb43c3 --- /dev/null +++ b/doc/html/boost/posix_time/operat_1_3_13_15_5_8_1_1_6.html @@ -0,0 +1,55 @@ + + + + +Function template operator>> + + + + + + + + + + + + + + + +
        Boost C++ LibrariesHomeLibrariesPeopleFAQMore
        +
        +
        +PrevUpHomeNext +
        +
        +
        +
        +

        Function template operator>>

        +

        boost::posix_time::operator>>

        +
        +

        Synopsis

        +
        // In header: <boost/date_time/posix_time/posix_time_legacy_io.hpp>
        +
        +
        +template<typename charT> 
        +  std::basic_istream< charT > & 
        +  operator>>(std::basic_istream< charT > & is, time_period & tp);
        +
        +

        Description

        +

        operator>> for time_period. time_period must be in "[date time_duration/date time_duration]" format.

        +
        +
        + + + +
        +
        +
        +PrevUpHomeNext +
        + + diff --git a/doc/html/boost/posix_time/posix_time_system_config.html b/doc/html/boost/posix_time/posix_time_system_config.html index b4c20c53f2..0b3ad3ea1b 100644 --- a/doc/html/boost/posix_time/posix_time_system_config.html +++ b/doc/html/boost/posix_time/posix_time_system_config.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

        -PrevUpHomeNext +PrevUpHomeNext
        @@ -43,15 +43,15 @@ typedef time_res_traits::tick_type int_type; typedef time_res_traits resolution_traits; - // public member functions - BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000000); + // public member functions + BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000000); };
        -

        Description

        +

        Description

        -

        -posix_time_system_config public member functions

        -
        1.  BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000000);
        +

        +posix_time_system_config public member functions

        +
        1.  BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000000);
        @@ -63,7 +63,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/posix_time/ptime.html b/doc/html/boost/posix_time/ptime.html index bf048bce13..ec4a886b39 100644 --- a/doc/html/boost/posix_time/ptime.html +++ b/doc/html/boost/posix_time/ptime.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        @@ -42,29 +42,29 @@ typedef ptime time_type; // construct/copy/destruct - ptime(gregorian::date, time_duration_type); - explicit ptime(gregorian::date); - ptime(const time_rep_type &); - ptime(const special_values); - ptime(); + ptime(gregorian::date, time_duration_type); + explicit ptime(gregorian::date); + ptime(const time_rep_type &); + ptime(const special_values); + ptime(); };
        -

        Description

        +

        Description

        -

        +

        ptime public construct/copy/destruct

        1. -
          ptime(gregorian::date d, time_duration_type td);
          Construct with date and offset in day.
        2. +
          ptime(gregorian::date d, time_duration_type td);
          Construct with date and offset in day.
        3. -
          explicit ptime(gregorian::date d);
          Construct a time at start of the given day (midnight)
        4. +
          explicit ptime(gregorian::date d);
          Construct a time at start of the given day (midnight)
        5. -
          ptime(const time_rep_type & rhs);
          Copy from time_rep.
        6. +
          ptime(const time_rep_type & rhs);
          Copy from time_rep.
        7. -
          ptime(const special_values sv);
          Construct from special value.
        8. -
        9. ptime();
        10. +
          ptime(const special_values sv);
          Construct from special value. +
        11. ptime();
        @@ -77,7 +77,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/posix_time/seconds.html b/doc/html/boost/posix_time/seconds.html index 5db364eccd..f0987b7f4a 100644 --- a/doc/html/boost/posix_time/seconds.html +++ b/doc/html/boost/posix_time/seconds.html @@ -27,7 +27,7 @@

        Class seconds

        -

        boost::posix_time::seconds — Allows expression of durations as a seconds count.

        +

        boost::posix_time::seconds

        Synopsis

        // In header: <boost/date_time/posix_time/posix_time_duration.hpp>
        @@ -36,16 +36,21 @@
         class seconds : public boost::posix_time::time_duration {
         public:
           // construct/copy/destruct
        -  explicit seconds(long);
        +  template<typename T> 
        +    explicit seconds(T const &, 
        +                     typename boost::enable_if< boost::is_integral< T >, void >::type * = 0);
         };
        -

        Description

        +

        Description

        +

        Allows expression of durations as a seconds count The argument must be an integral type

        -

        +

        seconds public construct/copy/destruct

        -
        1. explicit seconds(long s);
        +
        1. template<typename T> 
          +  explicit seconds(T const & s, 
          +                   typename boost::enable_if< boost::is_integral< T >, void >::type * = 0);
      diff --git a/doc/html/boost/posix_time/simple_time_rep.html b/doc/html/boost/posix_time/simple_time_rep.html index 5cd81ef045..270f7c7660 100644 --- a/doc/html/boost/posix_time/simple_time_rep.html +++ b/doc/html/boost/posix_time/simple_time_rep.html @@ -39,35 +39,35 @@ typedef time_duration time_duration_type; // construct/copy/destruct - simple_time_rep(date_type, time_duration_type); + simple_time_rep(date_type, time_duration_type); - // public member functions - bool is_special() const; - bool is_pos_infinity() const; - bool is_neg_infinity() const; - bool is_not_a_date_time() const; + // public member functions + bool is_special() const; + bool is_pos_infinity() const; + bool is_neg_infinity() const; + bool is_not_a_date_time() const; // public data members date_type day; time_duration_type time_of_day; };
    -

    Description

    +

    Description

    -

    +

    simple_time_rep public construct/copy/destruct

    -
    1. simple_time_rep(date_type d, time_duration_type tod);
    +
    1. simple_time_rep(date_type d, time_duration_type tod);
    -

    -simple_time_rep public member functions

    +

    +simple_time_rep public member functions

      -
    1. bool is_special() const;
    2. -
    3. bool is_pos_infinity() const;
    4. -
    5. bool is_neg_infinity() const;
    6. -
    7. bool is_not_a_date_time() const;
    8. +
    9. bool is_special() const;
    10. +
    11. bool is_pos_infinity() const;
    12. +
    13. bool is_neg_infinity() const;
    14. +
    15. bool is_not_a_date_time() const;
    diff --git a/doc/html/boost/posix_time/time_duration.html b/doc/html/boost/posix_time/time_duration.html index f8c4b2a785..f5042c0bb6 100644 --- a/doc/html/boost/posix_time/time_duration.html +++ b/doc/html/boost/posix_time/time_duration.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -48,25 +48,25 @@ typedef time_res_traits::impl_type impl_type; // construct/copy/destruct - time_duration(hour_type, min_type, sec_type, fractional_seconds_type = 0); - time_duration(); - time_duration(boost::date_time::special_values); - explicit time_duration(impl_type); + time_duration(hour_type, min_type, sec_type, fractional_seconds_type = 0); + time_duration(); + time_duration(boost::date_time::special_values); + explicit time_duration(impl_type); };
    -

    Description

    +

    Description

    -

    +

    time_duration public construct/copy/destruct

      -
    1. time_duration(hour_type hour, min_type min, sec_type sec, 
      +
    2. time_duration(hour_type hour, min_type min, sec_type sec, 
                     fractional_seconds_type fs = 0);
    3. -
    4. time_duration();
    5. +
    6. time_duration();
    7. -
      time_duration(boost::date_time::special_values sv);
      Construct from special_values.
    8. -
    9. explicit time_duration(impl_type tick_count);
    10. +
      time_duration(boost::date_time::special_values sv);
      Construct from special_values.
    11. +
    12. explicit time_duration(impl_type tick_count);
    @@ -79,7 +79,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/posix_time/wtime_facet.html b/doc/html/boost/posix_time/wtime_facet.html index 2492b682f9..5e5b922db7 100644 --- a/doc/html/boost/posix_time/wtime_facet.html +++ b/doc/html/boost/posix_time/wtime_facet.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -35,7 +35,7 @@ typedef boost::date_time::time_facet< ptime, wchar_t > wtime_facet;
    -

    Description

    +

    Description

    ptime_facet is depricated and will be phased out. use time_facet instead wptime_input_facet is depricated and will be phased out. use wtime_input_facet instead ptime_input_facet is depricated and will be phased out. use time_input_facet instead

    @@ -47,7 +47,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/process/async_pipe.html b/doc/html/boost/process/async_pipe.html index ab35532d8e..38dfc21e1e 100644 --- a/doc/html/boost/process/async_pipe.html +++ b/doc/html/boost/process/async_pipe.html @@ -40,51 +40,51 @@ typedef platform_specific handle_type; // construct/copy/destruct - async_pipe(boost::asio::io_context &); - async_pipe(boost::asio::io_context &, boost::asio::io_context &); - async_pipe(boost::asio::io_context &, const std::string &); - async_pipe(boost::asio::io_context &, boost::asio::io_context &, + async_pipe(boost::asio::io_context &); + async_pipe(boost::asio::io_context &, boost::asio::io_context &); + async_pipe(boost::asio::io_context &, const std::string &); + async_pipe(boost::asio::io_context &, boost::asio::io_context &, const std::string &); - async_pipe(const async_pipe &); - async_pipe(async_pipe &&); + async_pipe(const async_pipe &); + async_pipe(async_pipe &&); template<typename CharT, typename Traits = std::char_traits<CharT> > - explicit async_pipe(boost::asio::io_context &, + explicit async_pipe(boost::asio::io_context &, const basic_pipe< CharT, Traits > &); template<typename CharT, typename Traits = std::char_traits<CharT> > - explicit async_pipe(boost::asio::io_context &, boost::asio::io_context &, + explicit async_pipe(boost::asio::io_context &, boost::asio::io_context &, const basic_pipe< CharT, Traits > &); template<typename CharT, typename Traits = std::char_traits<CharT> > - async_pipe & operator=(const basic_pipe< CharT, Traits > &); - async_pipe & operator=(const async_pipe &); - async_pipe & operator=(async_pipe &&); - ~async_pipe(); + async_pipe & operator=(const basic_pipe< CharT, Traits > &); + async_pipe & operator=(const async_pipe &); + async_pipe & operator=(async_pipe &&); + ~async_pipe(); - // public member functions + // public member functions template<typename CharT, typename Traits = std::char_traits<CharT> > - explicit operator basic_pipe< CharT, Traits >() const; - void cancel(); - void close(); - void close(std::error_code &); - bool is_open() const; - void async_close(); + explicit operator basic_pipe< CharT, Traits >() const; + void cancel(); + void close(); + void close(std::error_code &); + bool is_open() const; + void async_close(); template<typename MutableBufferSequence> - std::size_t read_some(const MutableBufferSequence &); + std::size_t read_some(const MutableBufferSequence &); template<typename MutableBufferSequence> - std::size_t write_some(const MutableBufferSequence &); - native_handle native_source() const; - native_handle native_sink() const; + std::size_t write_some(const MutableBufferSequence &); + native_handle native_source() const; + native_handle native_sink() const; template<typename MutableBufferSequence, typename ReadHandler> - unspecified async_read_some(const MutableBufferSequence &, ReadHandler &&); + unspecified async_read_some(const MutableBufferSequence &, ReadHandler &&); template<typename ConstBufferSequence, typename WriteHandler> - unspecified async_write_some(const ConstBufferSequence &, WriteHandler &&); - const handle_type & sink() const; - const handle_type & source() const; - handle_type && sink(); - handle_type && source(); - handle_type source(::boost::asio::io_context &); - handle_type sink(::boost::asio::io_context &); - handle_type source(::boost::asio::io_context &) const; - handle_type sink(::boost::asio::io_context &) const; + unspecified async_write_some(const ConstBufferSequence &, WriteHandler &&); + const handle_type & sink() const; + const handle_type & source() const; + handle_type && sink(); + handle_type && source(); + handle_type source(::boost::asio::io_context &); + handle_type sink(::boost::asio::io_context &); + handle_type source(::boost::asio::io_context &) const; + handle_type sink(::boost::asio::io_context &) const; };

    Description

    @@ -133,7 +133,7 @@ construct/copy/destruct
    1. -
      async_pipe(boost::asio::io_context & ios);
      +
      async_pipe(boost::asio::io_context & ios);

      Construct a new async_pipe, does automatically open the pipe. Initializes source and sink with the same io_context.

      @@ -146,7 +146,7 @@

    2. -
      async_pipe(boost::asio::io_context & ios_source, 
      +
      async_pipe(boost::asio::io_context & ios_source, 
                  boost::asio::io_context & ios_sink);

      Construct a new async_pipe, does automatically open the pipe.

    3. @@ -160,7 +160,7 @@

    4. -
      async_pipe(boost::asio::io_context & ios, const std::string & name);
      +
      async_pipe(boost::asio::io_context & ios, const std::string & name);

      Construct a new async_pipe, does automatically open. Initializes source and sink with the same io_context.

    5. @@ -173,7 +173,7 @@

    6. -
      async_pipe(boost::asio::io_context & ios_source, 
      +
      async_pipe(boost::asio::io_context & ios_source, 
                  boost::asio::io_context & ios_sink, const std::string & name);

      Construct a new async_pipe, does automatically open.

    7. @@ -187,7 +187,7 @@

    8. -
      async_pipe(const async_pipe & lhs);
      +
      async_pipe(const async_pipe & lhs);

      Copy-Constructor of the async pipe.

    9. @@ -200,12 +200,12 @@

    10. -
      async_pipe(async_pipe && lhs);
      +
      async_pipe(async_pipe && lhs);

      Move-Constructor of the async pipe.

    11. template<typename CharT, typename Traits = std::char_traits<CharT> > 
      -  explicit async_pipe(boost::asio::io_context & ios, 
      +  explicit async_pipe(boost::asio::io_context & ios, 
                             const basic_pipe< CharT, Traits > & p);

      Construct the async-pipe from a pipe.

    12. @@ -220,7 +220,7 @@
    13. template<typename CharT, typename Traits = std::char_traits<CharT> > 
      -  explicit async_pipe(boost::asio::io_context & ios_source, 
      +  explicit async_pipe(boost::asio::io_context & ios_source, 
                             boost::asio::io_context & ios_sink, 
                             const basic_pipe< CharT, Traits > & p);

      Construct the async-pipe from a pipe, with two different io_context objects.

      @@ -236,7 +236,7 @@
    14. template<typename CharT, typename Traits = std::char_traits<CharT> > 
      -  async_pipe & operator=(const basic_pipe< CharT, Traits > & p);
      + async_pipe & operator=(const basic_pipe< CharT, Traits > & p);

      Assign a basic_pipe.

    15. @@ -249,7 +249,7 @@

    16. -
      async_pipe & operator=(const async_pipe & lhs);
      +
      async_pipe & operator=(const async_pipe & lhs);

      Copy Assign a pipe.

    17. @@ -262,42 +262,42 @@

    18. -
      async_pipe & operator=(async_pipe && lhs);
      +
      async_pipe & operator=(async_pipe && lhs);

      Move assign a pipe

    19. -
      ~async_pipe();
      +
      ~async_pipe();

      Destructor. Closes the pipe handles.

    20. -async_pipe public member functions

      +async_pipe public member functions
      1. template<typename CharT, typename Traits = std::char_traits<CharT> > 
        -  explicit operator basic_pipe< CharT, Traits >() const;
        + explicit operator basic_pipe< CharT, Traits >() const;

        Explicit cast to basic_pipe.

      2. -
        void cancel();
        +
        void cancel();

        Cancel the current asynchronous operations.

      3. -
        void close();
        +
        void close();

        Close the pipe handles.

      4. -
        void close(std::error_code & ec);
        +
        void close(std::error_code & ec);

        Close the pipe handles. While passing an error_code

      5. -
        bool is_open() const;
        +
        bool is_open() const;

        Check if the pipes are open.

      6. -
        void async_close();
        +
        void async_close();

        Async close, i.e. close after current operation is completed.

      @@ -311,48 +311,48 @@
    21. template<typename MutableBufferSequence> 
      -  std::size_t read_some(const MutableBufferSequence & buffers);
      + std::size_t read_some(const MutableBufferSequence & buffers);

      Read some data from the handle.

      See the boost.asio documentation for more details.

    22. template<typename MutableBufferSequence> 
      -  std::size_t write_some(const MutableBufferSequence & buffers);
      + std::size_t write_some(const MutableBufferSequence & buffers);

      Write some data to the handle.

      See the boost.asio documentation for more details.

    23. -
      native_handle native_source() const;
      +
      native_handle native_source() const;

      Get the native handle of the source.

    24. -
      native_handle native_sink() const;
      +
      native_handle native_sink() const;

      Get the native handle of the sink.

    25. template<typename MutableBufferSequence, typename ReadHandler> 
      -  unspecified async_read_some(const MutableBufferSequence & buffers, 
      +  unspecified async_read_some(const MutableBufferSequence & buffers, 
                                     ReadHandler && handler);

      Start an asynchronous read.

      See the boost.asio documentation for more details.

    26. template<typename ConstBufferSequence, typename WriteHandler> 
      -  unspecified async_write_some(const ConstBufferSequence & buffers, 
      +  unspecified async_write_some(const ConstBufferSequence & buffers, 
                                      WriteHandler && handler);

      Start an asynchronous write.

      See the boost.asio documentation for more details.

    27. -
      const handle_type & sink() const;
      Get the asio handle of the pipe sink.
    28. +
      const handle_type & sink() const;
      Get the asio handle of the pipe sink.
    29. -
      const handle_type & source() const;
      Get the asio handle of the pipe source.
    30. +
      const handle_type & source() const;
      Get the asio handle of the pipe source.
    31. -
      handle_type && sink();
      Get the asio handle of the pipe sink. Qualified as rvalue.
    32. +
      handle_type && sink();
      Get the asio handle of the pipe sink. Qualified as rvalue.
    33. -
      handle_type && source();
      Get the asio handle of the pipe source. Qualified as rvalue.
    34. +
      handle_type && source();
      Get the asio handle of the pipe source. Qualified as rvalue.
    35. -
      handle_type source(::boost::asio::io_context & ios);
      Move the source out of this class and change the io_context. Qualified as rvalue.
    36. +
      handle_type source(::boost::asio::io_context & ios);
      Move the source out of this class and change the io_context. Qualified as rvalue.
      @@ -363,7 +363,7 @@

    37. -
      handle_type sink(::boost::asio::io_context & ios);
      Move the sink out of this class and change the io_context. Qualified as rvalue.
    38. [Note] Note
      +
      handle_type sink(::boost::asio::io_context & ios);
      Move the sink out of this class and change the io_context. Qualified as rvalue.
      @@ -374,7 +374,7 @@

    39. -
      handle_type source(::boost::asio::io_context & ios) const;
      Copy the source out of this class and change the io_context.
    40. [Note] Note
      +
      handle_type source(::boost::asio::io_context & ios) const;
      Copy the source out of this class and change the io_context.
      @@ -385,7 +385,7 @@

    41. -
      handle_type sink(::boost::asio::io_context & ios) const;
      Copy the sink out of this class and change the io_context.
    42. [Note] Note
      +
      handle_type sink(::boost::asio::io_context & ios) const;
      Copy the sink out of this class and change the io_context.
      diff --git a/doc/html/boost/process/basic_environment.html b/doc/html/boost/process/basic_environment.html index 54f1f95a44..c6ab432174 100644 --- a/doc/html/boost/process/basic_environment.html +++ b/doc/html/boost/process/basic_environment.html @@ -54,12 +54,12 @@ typedefEnvironmentenvironment_t;// construct/copy/destruct - const_entry&operator=(constconst_entry&)=default; + const_entry&operator=(constconst_entry&)=default; - // public member functions - std::vector<string_type>to_vector()const; - const_entry(constconst_entry&)=default; - boolempty()const; + // public member functions + std::vector<string_type>to_vector()const; + const_entry(constconst_entry&)=default; + boolempty()const;};template<typename Char,typename Environment>structentry_type{ @@ -71,47 +71,47 @@ typedefEnvironmentenvironment_t;// construct/copy/destruct - entry&operator=(constentry&)=default; - entry&operator=(conststring_type&); - entry&operator=(conststd::vector<string_type>&); + entry&operator=(constentry&)=default; + entry&operator=(conststring_type&); + entry&operator=(conststd::vector<string_type>&); - // public member functions - std::vector<string_type>to_vector()const; - entry(constentry&)=default; - boolempty()const; - voidassign(conststring_type&); - voidassign(conststd::vector<string_type>&); - voidappend(conststring_type&); - voidclear(); - entry&operator+=(conststring_type&); + // public member functions + std::vector<string_type>to_vector()const; + entry(constentry&)=default; + boolempty()const; + voidassign(conststring_type&); + voidassign(conststd::vector<string_type>&); + voidappend(conststring_type&); + voidclear(); + entry&operator+=(conststring_type&);};// construct/copy/destruct - basic_environment(); - basic_environment(constbasic_environment&); - basic_environment(basic_environment&&); - basic_environment&operator=(constbasic_environment&); - basic_environment&operator=(basic_environment&&); + basic_environment(); + basic_environment(constbasic_environment&); + basic_environment(basic_environment&&); + basic_environment&operator=(constbasic_environment&); + basic_environment&operator=(basic_environment&&); - // public member functions - iteratorbegin(); - const_iteratorbegin()const; - const_iteratorcbegin()const; - iteratorend(); - const_iteratorend()const; - const_iteratorcend()const; - iteratorfind(conststring_type&); - const_iteratorfind(conststring_type&)const; - std::size_tcount(conststring_type&)const; - voiderase(conststring_type&); + // public member functions + iteratorbegin(); + const_iteratorbegin()const; + const_iteratorcbegin()const; + iteratorend(); + const_iteratorend()const; + const_iteratorcend()const; + iteratorfind(conststring_type&); + const_iteratorfind(conststring_type&)const; + std::size_tcount(conststring_type&)const; + voiderase(conststring_type&);std::pair<iterator,bool> - emplace(conststring_type&,conststring_type&); - boolempty(); - std::size_tsize()const; - voidclear(); - entry_typeat(conststring_type&); - const_entry_typeat(conststring_type&)const; - entry_typeoperator[](conststring_type&); + emplace(conststring_type&,conststring_type&); + boolempty(); + std::size_tsize()const; + voidclear(); + entry_typeat(conststring_type&); + const_entry_typeat(conststring_type&)const; + entry_typeoperator[](conststring_type&);};

      Description

      @@ -123,52 +123,52 @@ construct/copy/destruct
      1. -
        basic_environment();
        Default constructor.
      2. +
        basic_environment();
        Default constructor.
      3. -
        basic_environment(const basic_environment &);
        Copy constructor.
      4. +
        basic_environment(const basic_environment &);
        Copy constructor.
      5. -
        basic_environment(basic_environment &&);
        Move constructor.
      6. +
        basic_environment(basic_environment &&);
        Move constructor.
      7. -
        basic_environment & operator=(const basic_environment &);
        Copy assignment.
      8. +
        basic_environment & operator=(const basic_environment &);
        Copy assignment.
      9. -
        basic_environment & operator=(basic_environment &&);
        Move assignment.
      10. +
        basic_environment & operator=(basic_environment &&);
        Move assignment.

      -basic_environment public member functions

      +basic_environment public member functions
      1. -
        iterator begin();
        Returns an iterator to the beginning.
      2. +
        iterator begin();
        Returns an iterator to the beginning.
      3. -
        const_iterator begin() const;
        Returns an iterator to the beginning.
      4. +
        const_iterator begin() const;
        Returns an iterator to the beginning.
      5. -
        const_iterator cbegin() const;
        Returns an iterator to the beginning.
      6. +
        const_iterator cbegin() const;
        Returns an iterator to the beginning.
      7. -
        iterator end();
        Returns an iterator to the end.
      8. +
        iterator end();
        Returns an iterator to the end.
      9. -
        const_iterator end() const;
        Returns an iterator to the end.
      10. +
        const_iterator end() const;
        Returns an iterator to the end.
      11. -
        const_iterator cend() const;
        Returns an iterator to the end.
      12. +
        const_iterator cend() const;
        Returns an iterator to the end.
      13. -
        iterator find(const string_type & key);
        Find a variable by its name.
      14. +
        iterator find(const string_type & key);
        Find a variable by its name.
      15. -
        const_iterator find(const string_type & key) const;
        Find a variable by its name.
      16. +
        const_iterator find(const string_type & key) const;
        Find a variable by its name.
      17. -
        std::size_t count(const string_type & st) const;
        Number of variables.
      18. +
        std::size_t count(const string_type & st) const;
        Number of variables.
      19. -
        void erase(const string_type & id);
        +
        void erase(const string_type & id);

        Erase variable by id.

      20. std::pair< iterator, bool > 
        -emplace(const string_type & id, const string_type & value);
        Emplace an environment variable.
      21. +emplace(const string_type & id, const string_type & value);Emplace an environment variable.
      22. -
        bool empty();
        Check if environment has entries.
      23. +
        bool empty();
        Check if environment has entries.
      24. -
        std::size_t size() const;
        Get the number of variables.
      25. +
        std::size_t size() const;
        Get the number of variables.
      26. -
        void clear();
        Clear the environment.
      [Note] Note
      +
      void clear();
      Clear the environment.
      @@ -179,11 +179,11 @@

    43. -
      entry_type at(const string_type & key);
      Get the entry with the key. Throws if it does not exist.
    44. +
      entry_type at(const string_type & key);
      Get the entry with the key. Throws if it does not exist.
    45. -
      const_entry_type at(const string_type & key) const;
      Get the entry with the key. Throws if it does not exist.
    46. +
      const_entry_type at(const string_type & key) const;
      Get the entry with the key. Throws if it does not exist.
    47. -
      entry_type operator[](const string_type & key);
      Get the entry with the given key. It creates the entry if it doesn't exist.
    48. +
      entry_type operator[](const string_type & key);
      Get the entry with the given key. It creates the entry if it doesn't exist. diff --git a/doc/html/boost/process/basic_environment/const_entry_type.html b/doc/html/boost/process/basic_environment/const_entry_type.html index 989fb540dd..3c4610a834 100644 --- a/doc/html/boost/process/basic_environment/const_entry_type.html +++ b/doc/html/boost/process/basic_environment/const_entry_type.html @@ -43,12 +43,12 @@ typedefEnvironmentenvironment_t;// construct/copy/destruct - const_entry&operator=(constconst_entry&)=default; + const_entry&operator=(constconst_entry&)=default; - // public member functions - std::vector<string_type>to_vector()const; - const_entry(constconst_entry&)=default; - boolempty()const; + // public member functions + std::vector<string_type>to_vector()const; + const_entry(constconst_entry&)=default; + boolempty()const;};

      Description

      @@ -68,19 +68,19 @@ public construct/copy/destruct
      1. -
        const_entry & operator=(const const_entry &) = default;
        Move Constructor.
      +
      const_entry & operator=(const const_entry &) = default;
      Move Constructor.

      -const_entry_type public member functions

      +const_entry_type public member functions
      1. -
        std::vector< string_type > to_vector() const;
        Split the entry by ";" or ":" and return it as a vector. Used by PATH.

        Get the value as string. Get the name of this entry.

        +
        std::vector< string_type > to_vector() const;
        Split the entry by ";" or ":" and return it as a vector. Used by PATH.

        Get the value as string. Get the name of this entry.

      2. -
         const_entry(const const_entry &) = default;
        Copy Constructor.
      3. +
         const_entry(const const_entry &) = default;
        Copy Constructor.
      4. -
        bool empty() const;
        Check if the entry is empty.
      5. +
        bool empty() const;
        Check if the entry is empty.
      diff --git a/doc/html/boost/process/basic_environment/entry_type.html b/doc/html/boost/process/basic_environment/entry_type.html index f0eb5c7d8d..981e9c643f 100644 --- a/doc/html/boost/process/basic_environment/entry_type.html +++ b/doc/html/boost/process/basic_environment/entry_type.html @@ -43,19 +43,19 @@ typedefEnvironmentenvironment_t;// construct/copy/destruct - entry&operator=(constentry&)=default; - entry&operator=(conststring_type&); - entry&operator=(conststd::vector<string_type>&); + entry&operator=(constentry&)=default; + entry&operator=(conststring_type&); + entry&operator=(conststd::vector<string_type>&); - // public member functions - std::vector<string_type>to_vector()const; - entry(constentry&)=default; - boolempty()const; - voidassign(conststring_type&); - voidassign(conststd::vector<string_type>&); - voidappend(conststring_type&); - voidclear(); - entry&operator+=(conststring_type&); + // public member functions + std::vector<string_type>to_vector()const; + entry(constentry&)=default; + boolempty()const; + voidassign(conststring_type&); + voidassign(conststd::vector<string_type>&); + voidappend(conststring_type&); + voidclear(); + entry&operator+=(conststring_type&);};

      Description

      @@ -76,34 +76,34 @@ construct/copy/destruct
      1. -
        entry & operator=(const entry &) = default;
        Move Constructor.
      2. +
        entry & operator=(const entry &) = default;
        Move Constructor.
      3. -
        entry & operator=(const string_type & value);
        Assign a string to the entry.
      4. +
        entry & operator=(const string_type & value);
        Assign a string to the entry.
      5. -
        entry & operator=(const std::vector< string_type > & value);
        Assign a set of strings to the entry; they will be separated by ';' or ':'.
      6. +
        entry & operator=(const std::vector< string_type > & value);
        Assign a set of strings to the entry; they will be separated by ';' or ':'.

      -entry_type public member functions

      +entry_type public member functions
      1. -
        std::vector< string_type > to_vector() const;
        Split the entry by ";" or ":" and return it as a vector. Used by PATH.

        Get the value as string. Get the name of this entry.

        +
        std::vector< string_type > to_vector() const;
        Split the entry by ";" or ":" and return it as a vector. Used by PATH.

        Get the value as string. Get the name of this entry.

      2. -
         entry(const entry &) = default;
        Copy Constructor.
      3. +
         entry(const entry &) = default;
        Copy Constructor.
      4. -
        bool empty() const;
        Check if the entry is empty.
      5. +
        bool empty() const;
        Check if the entry is empty.
      6. -
        void assign(const string_type & value);
        Assign a string to the value.
      7. +
        void assign(const string_type & value);
        Assign a string to the value.
      8. -
        void assign(const std::vector< string_type > & value);
        Assign a set of strings to the entry; they will be separated by ';' or ':'.
      9. +
        void assign(const std::vector< string_type > & value);
        Assign a set of strings to the entry; they will be separated by ';' or ':'.
      10. -
        void append(const string_type & value);
        Append a string to the end of the entry, it will separated by ';' or ':'.
      11. +
        void append(const string_type & value);
        Append a string to the end of the entry, it will separated by ';' or ':'.
      12. -
        void clear();
        Reset the value.
      13. +
        void clear();
        Reset the value.
      14. -
        entry & operator+=(const string_type & value);
        Append a string to the end of the entry, it will separated by ';' or ':'.
      15. +
        entry & operator+=(const string_type & value);
        Append a string to the end of the entry, it will separated by ';' or ':'.
      diff --git a/doc/html/boost/process/basic_ipstream.html b/doc/html/boost/process/basic_ipstream.html index 684411568a..be39e8e210 100644 --- a/doc/html/boost/process/basic_ipstream.html +++ b/doc/html/boost/process/basic_ipstream.html @@ -44,23 +44,23 @@ typedefTraits::off_typeoff_type;// construct/copy/destruct - basic_ipstream(); - basic_ipstream(constbasic_ipstream&)=delete; - basic_ipstream(basic_ipstream&&)=default; - basic_ipstream(pipe_type&&); - basic_ipstream(constpipe_type&); - basic_ipstream&operator=(constbasic_ipstream&)=delete; - basic_ipstream&operator=(basic_ipstream&&)=default; - basic_ipstream&operator=(pipe_type&&); - basic_ipstream&operator=(constpipe_type&); + basic_ipstream(); + basic_ipstream(constbasic_ipstream&)=delete; + basic_ipstream(basic_ipstream&&)=default; + basic_ipstream(pipe_type&&); + basic_ipstream(constpipe_type&); + basic_ipstream&operator=(constbasic_ipstream&)=delete; + basic_ipstream&operator=(basic_ipstream&&)=default; + basic_ipstream&operator=(pipe_type&&); + basic_ipstream&operator=(constpipe_type&); - // public member functions - basic_pipebuf<CharT,Traits>*rdbuf(); - voidpipe(pipe_type&&); - voidpipe(constpipe_type&); - pipe_type&pipe(); - constpipe_type&pipe()const; - pipe_type&&pipe(); + // public member functions + basic_pipebuf<CharT,Traits>*rdbuf(); + voidpipe(pipe_type&&); + voidpipe(constpipe_type&); + pipe_type&pipe(); + constpipe_type&pipe()const; + pipe_type&&pipe();};

      Description

      @@ -72,41 +72,41 @@ construct/copy/destruct
      1. -
        basic_ipstream();
        Default constructor.
      2. +
        basic_ipstream();
        Default constructor.
      3. -
        basic_ipstream(const basic_ipstream &) = delete;
        Copy constructor.
      4. +
        basic_ipstream(const basic_ipstream &) = delete;
        Copy constructor.
      5. -
        basic_ipstream(basic_ipstream &&) = default;
        Move constructor.
      6. +
        basic_ipstream(basic_ipstream &&) = default;
        Move constructor.
      7. -
        basic_ipstream(pipe_type && p);
        Move construct from a pipe.
      8. +
        basic_ipstream(pipe_type && p);
        Move construct from a pipe.
      9. -
        basic_ipstream(const pipe_type & p);
        Copy construct from a pipe.
      10. +
        basic_ipstream(const pipe_type & p);
        Copy construct from a pipe.
      11. -
        basic_ipstream & operator=(const basic_ipstream &) = delete;
        Copy assignment.
      12. +
        basic_ipstream & operator=(const basic_ipstream &) = delete;
        Copy assignment.
      13. -
        basic_ipstream & operator=(basic_ipstream &&) = default;
        Move assignment.
      14. +
        basic_ipstream & operator=(basic_ipstream &&) = default;
        Move assignment.
      15. -
        basic_ipstream & operator=(pipe_type && p);
        Move assignment of a pipe.
      16. +
        basic_ipstream & operator=(pipe_type && p);
        Move assignment of a pipe.
      17. -
        basic_ipstream & operator=(const pipe_type & p);
        Copy assignment of a pipe.
      18. +
        basic_ipstream & operator=(const pipe_type & p);
        Copy assignment of a pipe.

      -basic_ipstream public member functions

      +basic_ipstream public member functions
      1. -
        basic_pipebuf< CharT, Traits > * rdbuf();
        Get access to the underlying stream_buf.
      2. +
        basic_pipebuf< CharT, Traits > * rdbuf();
        Get access to the underlying stream_buf.
      3. -
        void pipe(pipe_type && p);
        Set the pipe of the streambuf.
      4. +
        void pipe(pipe_type && p);
        Set the pipe of the streambuf.
      5. -
        void pipe(const pipe_type & p);
        Set the pipe of the streambuf.
      6. +
        void pipe(const pipe_type & p);
        Set the pipe of the streambuf.
      7. -
        pipe_type & pipe();
        Get a reference to the pipe.
      8. +
        pipe_type & pipe();
        Get a reference to the pipe.
      9. -
        const pipe_type & pipe() const;
        Get a const reference to the pipe.
      10. +
        const pipe_type & pipe() const;
        Get a const reference to the pipe.
      11. -
        pipe_type && pipe();
        Get a rvalue reference to the pipe. Qualified as rvalue.
      12. +
        pipe_type && pipe();
        Get a rvalue reference to the pipe. Qualified as rvalue.
      diff --git a/doc/html/boost/process/basic_native_environment.html b/doc/html/boost/process/basic_native_environment.html index ce6f7ff04e..f816fb995a 100644 --- a/doc/html/boost/process/basic_native_environment.html +++ b/doc/html/boost/process/basic_native_environment.html @@ -54,12 +54,12 @@ typedefEnvironmentenvironment_t;// construct/copy/destruct - const_entry&operator=(constconst_entry&)=default; + const_entry&operator=(constconst_entry&)=default; - // public member functions - std::vector<string_type>to_vector()const; - const_entry(constconst_entry&)=default; - boolempty()const; + // public member functions + std::vector<string_type>to_vector()const; + const_entry(constconst_entry&)=default; + boolempty()const;};template<typename Char,typename Environment>structentry_type{ @@ -71,44 +71,44 @@ typedefEnvironmentenvironment_t;// construct/copy/destruct - entry&operator=(constentry&)=default; - entry&operator=(conststring_type&); - entry&operator=(conststd::vector<string_type>&); + entry&operator=(constentry&)=default; + entry&operator=(conststring_type&); + entry&operator=(conststd::vector<string_type>&); - // public member functions - std::vector<string_type>to_vector()const; - entry(constentry&)=default; - boolempty()const; - voidassign(conststring_type&); - voidassign(conststd::vector<string_type>&); - voidappend(conststring_type&); - voidclear(); - entry&operator+=(conststring_type&); + // public member functions + std::vector<string_type>to_vector()const; + entry(constentry&)=default; + boolempty()const; + voidassign(conststring_type&); + voidassign(conststd::vector<string_type>&); + voidappend(conststring_type&); + voidclear(); + entry&operator+=(conststring_type&);};// construct/copy/destruct - basic_native_environment(); - basic_native_environment(basic_native_environment&&); - basic_native_environment&operator=(basic_native_environment&&); + basic_native_environment(); + basic_native_environment(basic_native_environment&&); + basic_native_environment&operator=(basic_native_environment&&); - // public member functions - iteratorbegin(); - const_iteratorbegin()const; - const_iteratorcbegin()const; - iteratorend(); - const_iteratorend()const; - const_iteratorcend()const; - iteratorfind(conststring_type&); - const_iteratorfind(conststring_type&)const; - std::size_tcount(conststring_type&)const; - voiderase(conststring_type&); + // public member functions + iteratorbegin(); + const_iteratorbegin()const; + const_iteratorcbegin()const; + iteratorend(); + const_iteratorend()const; + const_iteratorcend()const; + iteratorfind(conststring_type&); + const_iteratorfind(conststring_type&)const; + std::size_tcount(conststring_type&)const; + voiderase(conststring_type&);std::pair<iterator,bool> - emplace(conststring_type&,conststring_type&); - boolempty(); - std::size_tsize()const; - entry_typeat(conststring_type&); - const_entry_typeat(conststring_type&)const; - entry_typeoperator[](conststring_type&); + emplace(conststring_type&,conststring_type&); + boolempty(); + std::size_tsize()const; + entry_typeat(conststring_type&); + const_entry_typeat(conststring_type&)const; + entry_typeoperator[](conststring_type&);};

      Description

      @@ -120,52 +120,52 @@ construct/copy/destruct
      1. -
        basic_native_environment();
        Default constructor.
      2. +
        basic_native_environment();
        Default constructor.
      3. -
        basic_native_environment(basic_native_environment &&);
        Move constructor.
      4. +
        basic_native_environment(basic_native_environment &&);
        Move constructor.
      5. -
        basic_native_environment & operator=(basic_native_environment &&);
        Move assignment.
      6. +
        basic_native_environment & operator=(basic_native_environment &&);
        Move assignment.

      -basic_native_environment public member functions

      +basic_native_environment public member functions
      1. -
        iterator begin();
        Returns an iterator to the beginning.
      2. +
        iterator begin();
        Returns an iterator to the beginning.
      3. -
        const_iterator begin() const;
        Returns an iterator to the beginning.
      4. +
        const_iterator begin() const;
        Returns an iterator to the beginning.
      5. -
        const_iterator cbegin() const;
        Returns an iterator to the beginning.
      6. +
        const_iterator cbegin() const;
        Returns an iterator to the beginning.
      7. -
        iterator end();
        Returns an iterator to the end.
      8. +
        iterator end();
        Returns an iterator to the end.
      9. -
        const_iterator end() const;
        Returns an iterator to the end.
      10. +
        const_iterator end() const;
        Returns an iterator to the end.
      11. -
        const_iterator cend() const;
        Returns an iterator to the end.
      12. +
        const_iterator cend() const;
        Returns an iterator to the end.
      13. -
        iterator find(const string_type & key);
        Find a variable by its name.
      14. +
        iterator find(const string_type & key);
        Find a variable by its name.
      15. -
        const_iterator find(const string_type & key) const;
        Find a variable by its name.
      16. +
        const_iterator find(const string_type & key) const;
        Find a variable by its name.
      17. -
        std::size_t count(const string_type & st) const;
        Number of variables.
      18. +
        std::size_t count(const string_type & st) const;
        Number of variables.
      19. -
        void erase(const string_type & id);
        +
        void erase(const string_type & id);

        Erase variable by id.

      20. std::pair< iterator, bool > 
        -emplace(const string_type & id, const string_type & value);
        Emplace an environment variable.
      21. +emplace(const string_type & id, const string_type & value);Emplace an environment variable.
      22. -
        bool empty();
        Check if environment has entries.
      23. +
        bool empty();
        Check if environment has entries.
      24. -
        std::size_t size() const;
        Get the number of variables.
      25. +
        std::size_t size() const;
        Get the number of variables.
      26. -
        entry_type at(const string_type & key);
        Get the entry with the key. Throws if it does not exist.
      27. +
        entry_type at(const string_type & key);
        Get the entry with the key. Throws if it does not exist.
      28. -
        const_entry_type at(const string_type & key) const;
        Get the entry with the key. Throws if it does not exist.
      29. +
        const_entry_type at(const string_type & key) const;
        Get the entry with the key. Throws if it does not exist.
      30. -
        entry_type operator[](const string_type & key);
        Get the entry with the given key. It creates the entry if it doesn't exist.
      31. +
        entry_type operator[](const string_type & key);
        Get the entry with the given key. It creates the entry if it doesn't exist.
      diff --git a/doc/html/boost/process/basic_native_environment/const_entry_type.html b/doc/html/boost/process/basic_native_environment/const_entry_type.html index 38ee4465d5..4802299556 100644 --- a/doc/html/boost/process/basic_native_environment/const_entry_type.html +++ b/doc/html/boost/process/basic_native_environment/const_entry_type.html @@ -43,12 +43,12 @@ typedefEnvironmentenvironment_t;// construct/copy/destruct - const_entry&operator=(constconst_entry&)=default; + const_entry&operator=(constconst_entry&)=default; - // public member functions - std::vector<string_type>to_vector()const; - const_entry(constconst_entry&)=default; - boolempty()const; + // public member functions + std::vector<string_type>to_vector()const; + const_entry(constconst_entry&)=default; + boolempty()const;};

      Description

      @@ -68,19 +68,19 @@ public construct/copy/destruct
      1. -
        const_entry & operator=(const const_entry &) = default;
        Move Constructor.
      +
      const_entry & operator=(const const_entry &) = default;
      Move Constructor.

      -const_entry_type public member functions

      +const_entry_type public member functions
      1. -
        std::vector< string_type > to_vector() const;
        Split the entry by ";" or ":" and return it as a vector. Used by PATH.

        Get the value as string. Get the name of this entry.

        +
        std::vector< string_type > to_vector() const;
        Split the entry by ";" or ":" and return it as a vector. Used by PATH.

        Get the value as string. Get the name of this entry.

      2. -
         const_entry(const const_entry &) = default;
        Copy Constructor.
      3. +
         const_entry(const const_entry &) = default;
        Copy Constructor.
      4. -
        bool empty() const;
        Check if the entry is empty.
      5. +
        bool empty() const;
        Check if the entry is empty.
      diff --git a/doc/html/boost/process/basic_native_environment/entry_type.html b/doc/html/boost/process/basic_native_environment/entry_type.html index d1c19afc74..6899f3dca2 100644 --- a/doc/html/boost/process/basic_native_environment/entry_type.html +++ b/doc/html/boost/process/basic_native_environment/entry_type.html @@ -43,19 +43,19 @@ typedefEnvironmentenvironment_t;// construct/copy/destruct - entry&operator=(constentry&)=default; - entry&operator=(conststring_type&); - entry&operator=(conststd::vector<string_type>&); + entry&operator=(constentry&)=default; + entry&operator=(conststring_type&); + entry&operator=(conststd::vector<string_type>&); - // public member functions - std::vector<string_type>to_vector()const; - entry(constentry&)=default; - boolempty()const; - voidassign(conststring_type&); - voidassign(conststd::vector<string_type>&); - voidappend(conststring_type&); - voidclear(); - entry&operator+=(conststring_type&); + // public member functions + std::vector<string_type>to_vector()const; + entry(constentry&)=default; + boolempty()const; + voidassign(conststring_type&); + voidassign(conststd::vector<string_type>&); + voidappend(conststring_type&); + voidclear(); + entry&operator+=(conststring_type&);};

      Description

      @@ -76,34 +76,34 @@ construct/copy/destruct
      1. -
        entry & operator=(const entry &) = default;
        Move Constructor.
      2. +
        entry & operator=(const entry &) = default;
        Move Constructor.
      3. -
        entry & operator=(const string_type & value);
        Assign a string to the entry.
      4. +
        entry & operator=(const string_type & value);
        Assign a string to the entry.
      5. -
        entry & operator=(const std::vector< string_type > & value);
        Assign a set of strings to the entry; they will be separated by ';' or ':'.
      6. +
        entry & operator=(const std::vector< string_type > & value);
        Assign a set of strings to the entry; they will be separated by ';' or ':'.

      -entry_type public member functions

      +entry_type public member functions
      1. -
        std::vector< string_type > to_vector() const;
        Split the entry by ";" or ":" and return it as a vector. Used by PATH.

        Get the value as string. Get the name of this entry.

        +
        std::vector< string_type > to_vector() const;
        Split the entry by ";" or ":" and return it as a vector. Used by PATH.

        Get the value as string. Get the name of this entry.

      2. -
         entry(const entry &) = default;
        Copy Constructor.
      3. +
         entry(const entry &) = default;
        Copy Constructor.
      4. -
        bool empty() const;
        Check if the entry is empty.
      5. +
        bool empty() const;
        Check if the entry is empty.
      6. -
        void assign(const string_type & value);
        Assign a string to the value.
      7. +
        void assign(const string_type & value);
        Assign a string to the value.
      8. -
        void assign(const std::vector< string_type > & value);
        Assign a set of strings to the entry; they will be separated by ';' or ':'.
      9. +
        void assign(const std::vector< string_type > & value);
        Assign a set of strings to the entry; they will be separated by ';' or ':'.
      10. -
        void append(const string_type & value);
        Append a string to the end of the entry, it will separated by ';' or ':'.
      11. +
        void append(const string_type & value);
        Append a string to the end of the entry, it will separated by ';' or ':'.
      12. -
        void clear();
        Reset the value.
      13. +
        void clear();
        Reset the value.
      14. -
        entry & operator+=(const string_type & value);
        Append a string to the end of the entry, it will separated by ';' or ':'.
      15. +
        entry & operator+=(const string_type & value);
        Append a string to the end of the entry, it will separated by ';' or ':'.
      diff --git a/doc/html/boost/process/basic_opstream.html b/doc/html/boost/process/basic_opstream.html index a66974a28a..32f3b2210e 100644 --- a/doc/html/boost/process/basic_opstream.html +++ b/doc/html/boost/process/basic_opstream.html @@ -44,23 +44,23 @@ typedefTraits::off_typeoff_type;// construct/copy/destruct - basic_opstream(); - basic_opstream(constbasic_opstream&)=delete; - basic_opstream(basic_opstream&&)=default; - basic_opstream(pipe_type&&); - basic_opstream(constpipe_type&); - basic_opstream&operator=(constbasic_opstream&)=delete; - basic_opstream&operator=(basic_opstream&&)=default; - basic_opstream&operator=(pipe_type&&); - basic_opstream&operator=(constpipe_type&); + basic_opstream(); + basic_opstream(constbasic_opstream&)=delete; + basic_opstream(basic_opstream&&)=default; + basic_opstream(pipe_type&&); + basic_opstream(constpipe_type&); + basic_opstream&operator=(constbasic_opstream&)=delete; + basic_opstream&operator=(basic_opstream&&)=default; + basic_opstream&operator=(pipe_type&&); + basic_opstream&operator=(constpipe_type&); - // public member functions - basic_pipebuf<CharT,Traits>*rdbuf()const; - voidpipe(pipe_type&&); - voidpipe(constpipe_type&); - pipe_type&pipe(); - constpipe_type&pipe()const; - pipe_type&&pipe(); + // public member functions + basic_pipebuf<CharT,Traits>*rdbuf()const; + voidpipe(pipe_type&&); + voidpipe(constpipe_type&); + pipe_type&pipe(); + constpipe_type&pipe()const; + pipe_type&&pipe();};

      Description

      @@ -72,41 +72,41 @@ construct/copy/destruct
      1. -
        basic_opstream();
        Default constructor.
      2. +
        basic_opstream();
        Default constructor.
      3. -
        basic_opstream(const basic_opstream &) = delete;
        Copy constructor.
      4. +
        basic_opstream(const basic_opstream &) = delete;
        Copy constructor.
      5. -
        basic_opstream(basic_opstream &&) = default;
        Move constructor.
      6. +
        basic_opstream(basic_opstream &&) = default;
        Move constructor.
      7. -
        basic_opstream(pipe_type && p);
        Move construct from a pipe.
      8. +
        basic_opstream(pipe_type && p);
        Move construct from a pipe.
      9. -
        basic_opstream(const pipe_type & p);
        Copy construct from a pipe.
      10. +
        basic_opstream(const pipe_type & p);
        Copy construct from a pipe.
      11. -
        basic_opstream & operator=(const basic_opstream &) = delete;
        Copy assignment.
      12. +
        basic_opstream & operator=(const basic_opstream &) = delete;
        Copy assignment.
      13. -
        basic_opstream & operator=(basic_opstream &&) = default;
        Move assignment.
      14. +
        basic_opstream & operator=(basic_opstream &&) = default;
        Move assignment.
      15. -
        basic_opstream & operator=(pipe_type && p);
        Move assignment of a pipe.
      16. +
        basic_opstream & operator=(pipe_type && p);
        Move assignment of a pipe.
      17. -
        basic_opstream & operator=(const pipe_type & p);
        Copy assignment of a pipe.
      18. +
        basic_opstream & operator=(const pipe_type & p);
        Copy assignment of a pipe.

      -basic_opstream public member functions

      +basic_opstream public member functions
      1. -
        basic_pipebuf< CharT, Traits > * rdbuf() const;
        Get access to the underlying stream_buf.
      2. +
        basic_pipebuf< CharT, Traits > * rdbuf() const;
        Get access to the underlying stream_buf.
      3. -
        void pipe(pipe_type && p);
        Set the pipe of the streambuf.
      4. +
        void pipe(pipe_type && p);
        Set the pipe of the streambuf.
      5. -
        void pipe(const pipe_type & p);
        Set the pipe of the streambuf.
      6. +
        void pipe(const pipe_type & p);
        Set the pipe of the streambuf.
      7. -
        pipe_type & pipe();
        Get a reference to the pipe.
      8. +
        pipe_type & pipe();
        Get a reference to the pipe.
      9. -
        const pipe_type & pipe() const;
        Get a const reference to the pipe.
      10. +
        const pipe_type & pipe() const;
        Get a const reference to the pipe.
      11. -
        pipe_type && pipe();
        Get a rvalue reference to the pipe. Qualified as rvalue.
      12. +
        pipe_type && pipe();
        Get a rvalue reference to the pipe. Qualified as rvalue.
      diff --git a/doc/html/boost/process/basic_pipe.html b/doc/html/boost/process/basic_pipe.html index 6a2bf7a169..57c9b0647e 100644 --- a/doc/html/boost/process/basic_pipe.html +++ b/doc/html/boost/process/basic_pipe.html @@ -44,23 +44,23 @@ typedefunspecifiednative_handle;// construct/copy/destruct - basic_pipe(); - explicitbasic_pipe(conststd::string&); - basic_pipe(constbasic_pipe&); - basic_pipe(basic_pipe&&); - basic_pipe&operator=(constbasic_pipe&); - basic_pipe&operator=(basic_pipe&&); - ~basic_pipe(); + basic_pipe(); + explicitbasic_pipe(conststd::string&); + basic_pipe(constbasic_pipe&); + basic_pipe(basic_pipe&&); + basic_pipe&operator=(constbasic_pipe&); + basic_pipe&operator=(basic_pipe&&); + ~basic_pipe(); - // public member functions - native_handlenative_source()const; - native_handlenative_sink()const; - voidassign_source(native_handle); - voidassign_sink(native_handle); - int_typewrite(constchar_type*,int_type); - int_typeread(char_type*,int_type); - boolis_open(); - voidclose(); + // public member functions + native_handlenative_source()const; + native_handlenative_sink()const; + voidassign_source(native_handle); + voidassign_sink(native_handle); + int_typewrite(constchar_type*,int_type); + int_typeread(char_type*,int_type); + boolis_open(); + voidclose();};

      Description

      @@ -72,11 +72,11 @@ construct/copy/destruct
      1. -
        basic_pipe();
        Default construct the pipe. Will be opened.
      2. +
        basic_pipe();
        Default construct the pipe. Will be opened.
      3. -
        explicit basic_pipe(const std::string & name);
        Construct a named pipe.
      4. +
        explicit basic_pipe(const std::string & name);
        Construct a named pipe.
      5. -
        basic_pipe(const basic_pipe & p);
        +
        basic_pipe(const basic_pipe & p);

        Copy construct the pipe.

      [Note] Note
      @@ -89,11 +89,11 @@

    49. -
      basic_pipe(basic_pipe && lhs);
      +
      basic_pipe(basic_pipe && lhs);

      Move construct the pipe.

    50. -
      basic_pipe & operator=(const basic_pipe & p);
      +
      basic_pipe & operator=(const basic_pipe & p);

      Copy assign the pipe.

    51. @@ -106,43 +106,43 @@

    52. -
      basic_pipe & operator=(basic_pipe && lhs);
      +
      basic_pipe & operator=(basic_pipe && lhs);

      Move assign the pipe.

    53. -
      ~basic_pipe();
      +
      ~basic_pipe();

      Destructor closes the handles.

    54. -basic_pipe public member functions

      +basic_pipe public member functions
      1. -
        native_handle native_source() const;
        +
        native_handle native_source() const;

        Get the native handle of the source.

      2. -
        native_handle native_sink() const;
        +
        native_handle native_sink() const;

        Get the native handle of the sink.

      3. -
        void assign_source(native_handle h);
        +
        void assign_source(native_handle h);

        Assign a new value to the source

      4. -
        void assign_sink(native_handle h);
        +
        void assign_sink(native_handle h);

        Assign a new value to the sink

      5. -
        int_type write(const char_type * data, int_type count);
        Write data to the pipe.
      6. +
        int_type write(const char_type * data, int_type count);
        Write data to the pipe.
      7. -
        int_type read(char_type * data, int_type count);
        Read data from the pipe.
      8. +
        int_type read(char_type * data, int_type count);
        Read data from the pipe.
      9. -
        bool is_open();
        Check if the pipe is open.
      10. +
        bool is_open();
        Check if the pipe is open.
      11. -
        void close();
        Close the pipe.
      12. +
        void close();
        Close the pipe.
      diff --git a/doc/html/boost/process/basic_pipebuf.html b/doc/html/boost/process/basic_pipebuf.html index 7548ef2f5d..0115b9656a 100644 --- a/doc/html/boost/process/basic_pipebuf.html +++ b/doc/html/boost/process/basic_pipebuf.html @@ -43,28 +43,28 @@ typedefTraits::off_typeoff_type;// construct/copy/destruct - basic_pipebuf(); - basic_pipebuf(constbasic_pipebuf&)=default; - basic_pipebuf(basic_pipebuf&&)=default; - basic_pipebuf(pipe_type&&); - basic_pipebuf(constpipe_type&); - basic_pipebuf&operator=(constbasic_pipebuf&)=delete; - basic_pipebuf&operator=(basic_pipebuf&&)=default; - basic_pipebuf&operator=(pipe_type&&); - basic_pipebuf&operator=(constpipe_type&); + basic_pipebuf(); + basic_pipebuf(constbasic_pipebuf&)=default; + basic_pipebuf(basic_pipebuf&&)=default; + basic_pipebuf(pipe_type&&); + basic_pipebuf(constpipe_type&); + basic_pipebuf&operator=(constbasic_pipebuf&)=delete; + basic_pipebuf&operator=(basic_pipebuf&&)=default; + basic_pipebuf&operator=(pipe_type&&); + basic_pipebuf&operator=(constpipe_type&); - // public member functions - int_typeoverflow(int_type=traits_type::eof()); - intsync(); - int_typeunderflow(); - voidpipe(pipe_type&&); - voidpipe(constpipe_type&); - pipe_type&pipe(); - constpipe_type&pipe()const; - pipe_type&&pipe(); + // public member functions + int_typeoverflow(int_type=traits_type::eof()); + intsync(); + int_typeunderflow(); + voidpipe(pipe_type&&); + voidpipe(constpipe_type&); + pipe_type&pipe(); + constpipe_type&pipe()const; + pipe_type&&pipe(); - // private member functions - bool_write_impl(); + // private member functions + bool_write_impl();// public data membersstaticconstexprintdefault_buffer_size; @@ -79,51 +79,51 @@ construct/copy/destruct
      1. -
        basic_pipebuf();
        Default constructor, will also construct the pipe.
      2. +
        basic_pipebuf();
        Default constructor, will also construct the pipe.
      3. -
        basic_pipebuf(const basic_pipebuf &) = default;
        Copy Constructor.
      4. +
        basic_pipebuf(const basic_pipebuf &) = default;
        Copy Constructor.
      5. -
        basic_pipebuf(basic_pipebuf &&) = default;
        Move Constructor.
      6. +
        basic_pipebuf(basic_pipebuf &&) = default;
        Move Constructor.
      7. -
        basic_pipebuf(pipe_type && p);
        Move construct from a pipe.
      8. +
        basic_pipebuf(pipe_type && p);
        Move construct from a pipe.
      9. -
        basic_pipebuf(const pipe_type & p);
        Construct from a pipe.
      10. +
        basic_pipebuf(const pipe_type & p);
        Construct from a pipe.
      11. -
        basic_pipebuf & operator=(const basic_pipebuf &) = delete;
        Copy assign.
      12. +
        basic_pipebuf & operator=(const basic_pipebuf &) = delete;
        Copy assign.
      13. -
        basic_pipebuf & operator=(basic_pipebuf &&) = default;
        Move assign.
      14. +
        basic_pipebuf & operator=(basic_pipebuf &&) = default;
        Move assign.
      15. -
        basic_pipebuf & operator=(pipe_type && p);
        Move assign a pipe.
      16. +
        basic_pipebuf & operator=(pipe_type && p);
        Move assign a pipe.
      17. -
        basic_pipebuf & operator=(const pipe_type & p);
        Copy assign a pipe.
      18. +
        basic_pipebuf & operator=(const pipe_type & p);
        Copy assign a pipe.

      -basic_pipebuf public member functions

      +basic_pipebuf public member functions
      1. -
        int_type overflow(int_type ch = traits_type::eof());
        Writes characters to the associated output sequence from the put area.
      2. +
        int_type overflow(int_type ch = traits_type::eof());
        Writes characters to the associated output sequence from the put area.
      3. -
        int sync();
        Synchronizes the buffers with the associated character sequence.
      4. +
        int sync();
        Synchronizes the buffers with the associated character sequence.
      5. -
        int_type underflow();
        Reads characters from the associated input sequence to the get area.
      6. +
        int_type underflow();
        Reads characters from the associated input sequence to the get area.
      7. -
        void pipe(pipe_type && p);
        Set the pipe of the streambuf.
      8. +
        void pipe(pipe_type && p);
        Set the pipe of the streambuf.
      9. -
        void pipe(const pipe_type & p);
        Set the pipe of the streambuf.
      10. +
        void pipe(const pipe_type & p);
        Set the pipe of the streambuf.
      11. -
        pipe_type & pipe();
        Get a reference to the pipe.
      12. +
        pipe_type & pipe();
        Get a reference to the pipe.
      13. -
        const pipe_type & pipe() const;
        Get a const reference to the pipe.
      14. +
        const pipe_type & pipe() const;
        Get a const reference to the pipe.
      15. -
        pipe_type && pipe();
        Get a rvalue reference to the pipe. Qualified as rvalue.
      16. +
        pipe_type && pipe();
        Get a rvalue reference to the pipe. Qualified as rvalue.

      -basic_pipebuf private member functions

      -
      1. bool _write_impl();
      +basic_pipebuf private member functions +
      1. bool _write_impl();
      diff --git a/doc/html/boost/process/basic_pstream.html b/doc/html/boost/process/basic_pstream.html index 0161b87856..1e89f71787 100644 --- a/doc/html/boost/process/basic_pstream.html +++ b/doc/html/boost/process/basic_pstream.html @@ -44,23 +44,23 @@ typedefTraits::off_typeoff_type;// construct/copy/destruct - basic_pstream(); - basic_pstream(constbasic_pstream&)=delete; - basic_pstream(basic_pstream&&)=default; - basic_pstream(pipe_type&&); - basic_pstream(constpipe_type&); - basic_pstream&operator=(constbasic_pstream&)=delete; - basic_pstream&operator=(basic_pstream&&)=default; - basic_pstream&operator=(pipe_type&&); - basic_pstream&operator=(constpipe_type&); + basic_pstream(); + basic_pstream(constbasic_pstream&)=delete; + basic_pstream(basic_pstream&&)=default; + basic_pstream(pipe_type&&); + basic_pstream(constpipe_type&); + basic_pstream&operator=(constbasic_pstream&)=delete; + basic_pstream&operator=(basic_pstream&&)=default; + basic_pstream&operator=(pipe_type&&); + basic_pstream&operator=(constpipe_type&); - // public member functions - basic_pipebuf<CharT,Traits>*rdbuf()const; - voidpipe(pipe_type&&); - voidpipe(constpipe_type&); - pipe_type&pipe(); - constpipe_type&pipe()const; - pipe_type&&pipe(); + // public member functions + basic_pipebuf<CharT,Traits>*rdbuf()const; + voidpipe(pipe_type&&); + voidpipe(constpipe_type&); + pipe_type&pipe(); + constpipe_type&pipe()const; + pipe_type&&pipe();};

      Description

      @@ -72,41 +72,41 @@ construct/copy/destruct
      1. -
        basic_pstream();
        Default constructor.
      2. +
        basic_pstream();
        Default constructor.
      3. -
        basic_pstream(const basic_pstream &) = delete;
        Copy constructor.
      4. +
        basic_pstream(const basic_pstream &) = delete;
        Copy constructor.
      5. -
        basic_pstream(basic_pstream &&) = default;
        Move constructor.
      6. +
        basic_pstream(basic_pstream &&) = default;
        Move constructor.
      7. -
        basic_pstream(pipe_type && p);
        Move construct from a pipe.
      8. +
        basic_pstream(pipe_type && p);
        Move construct from a pipe.
      9. -
        basic_pstream(const pipe_type & p);
        Copy construct from a pipe.
      10. +
        basic_pstream(const pipe_type & p);
        Copy construct from a pipe.
      11. -
        basic_pstream & operator=(const basic_pstream &) = delete;
        Copy assignment.
      12. +
        basic_pstream & operator=(const basic_pstream &) = delete;
        Copy assignment.
      13. -
        basic_pstream & operator=(basic_pstream &&) = default;
        Move assignment.
      14. +
        basic_pstream & operator=(basic_pstream &&) = default;
        Move assignment.
      15. -
        basic_pstream & operator=(pipe_type && p);
        Move assignment of a pipe.
      16. +
        basic_pstream & operator=(pipe_type && p);
        Move assignment of a pipe.
      17. -
        basic_pstream & operator=(const pipe_type & p);
        Copy assignment of a pipe.
      18. +
        basic_pstream & operator=(const pipe_type & p);
        Copy assignment of a pipe.

      -basic_pstream public member functions

      +basic_pstream public member functions
      1. -
        basic_pipebuf< CharT, Traits > * rdbuf() const;
        Get access to the underlying stream_buf.
      2. +
        basic_pipebuf< CharT, Traits > * rdbuf() const;
        Get access to the underlying stream_buf.
      3. -
        void pipe(pipe_type && p);
        Set the pipe of the streambuf.
      4. +
        void pipe(pipe_type && p);
        Set the pipe of the streambuf.
      5. -
        void pipe(const pipe_type & p);
        Set the pipe of the streambuf.
      6. +
        void pipe(const pipe_type & p);
        Set the pipe of the streambuf.
      7. -
        pipe_type & pipe();
        Get a reference to the pipe.
      8. +
        pipe_type & pipe();
        Get a reference to the pipe.
      9. -
        const pipe_type & pipe() const;
        Get a const reference to the pipe.
      10. +
        const pipe_type & pipe() const;
        Get a const reference to the pipe.
      11. -
        pipe_type && pipe();
        Get a rvalue reference to the pipe. Qualified as rvalue.
      12. +
        pipe_type && pipe();
        Get a rvalue reference to the pipe. Qualified as rvalue.
      diff --git a/doc/html/boost/process/child.html b/doc/html/boost/process/child.html index 969178e40b..c5b2184b8c 100644 --- a/doc/html/boost/process/child.html +++ b/doc/html/boost/process/child.html @@ -36,38 +36,38 @@ classchild{public:// construct/copy/destruct - explicitchild(pid_t&); - child(child&&); - template<typename... Args>explicitchild(Args&&...); - child()=default; - child&operator=(child&&); - ~child(); + explicitchild(pid_t&); + child(child&&); + template<typename... Args>explicitchild(Args&&...); + child()=default; + child&operator=(child&&); + ~child(); - // private member functions - voiddetach(); - voidjoin(); - booljoinable(); - native_handle_tnative_handle()const; - intexit_code()const; - pid_tid()const; - boolrunning(); - boolrunning(std::error_code&)noexcept; - voidwait(); - voidwait(std::error_code&)noexcept; + // private member functions + voiddetach(); + voidjoin(); + booljoinable(); + native_handle_tnative_handle()const; + intexit_code()const; + pid_tid()const; + boolrunning(); + boolrunning(std::error_code&)noexcept; + voidwait(); + voidwait(std::error_code&)noexcept;template<typename Rep,typename Period> - boolwait_for(conststd::chrono::duration<Rep,Period>&); - boolwait_for(conststd::chrono::duration<Rep,Period>&, + boolwait_for(conststd::chrono::duration<Rep,Period>&); + boolwait_for(conststd::chrono::duration<Rep,Period>&,std::error_code&)noexcept;template<typename Clock,typename Duration> - boolwait_until(conststd::chrono::time_point<Clock,Duration>&); - boolwait_until(conststd::chrono::time_point<Clock,Duration>&, + boolwait_until(conststd::chrono::time_point<Clock,Duration>&); + boolwait_until(conststd::chrono::time_point<Clock,Duration>&,std::error_code&)noexcept; - boolvalid()const; - explicitoperator bool()const; - boolin_group()const; - boolin_group(std::error_code&)constnoexcept; - voidterminate(); - voidterminate(std::error_code&)noexcept; + boolvalid()const; + explicitoperator bool()const; + boolin_group()const; + boolin_group(std::error_code&)constnoexcept; + voidterminate(); + voidterminate(std::error_code&)noexcept;};

      Description

      @@ -88,7 +88,7 @@ construct/copy/destruct
      1. -
        explicit child(pid_t & pid);
        +
        explicit child(pid_t & pid);

        Construct the child from a pid.

      @@ -101,23 +101,23 @@

    55. -
      child(child && lhs);
      +
      child(child && lhs);

      Move-Constructor.

    56. -
      template<typename... Args> explicit child(Args &&... args);
      +
      template<typename... Args> explicit child(Args &&... args);

      Construct a child from a property list and launch it The standard version is to create a subprocess, which will spawn the process.

    57. -
      child() = default;
      +
      child() = default;

      Construct an empty child.

    58. -
      child & operator=(child && lhs);
      +
      child & operator=(child && lhs);

      Move assign.

    59. -
      ~child();
      +
      ~child();

      Destructor.

    60. @@ -133,51 +133,51 @@

      -child private member functions

      +child private member functions
      1. -
        void detach();
        +
        void detach();

        Detach the child, i.e. let it run after this handle dies.

      2. -
        void join();
        +
        void join();

        Join the child. This just calls wait, but that way the naming is similar to std::thread

      3. -
        bool joinable();
        +
        bool joinable();

        Check if the child is joinable.

      4. -
        native_handle_t native_handle() const;
        +
        native_handle_t native_handle() const;

        Get the native handle for the child process.

      5. -
        int exit_code() const;
        +
        int exit_code() const;

        Get the exit_code. The return value is without any meaning if the child wasn't waited for or if it was terminated.

      6. -
        pid_t id() const;
        +
        pid_t id() const;

        Get the Process Identifier.

      7. -
        bool running();
        +
        bool running();

        Check if the child process is running.

      8. -
        bool running(std::error_code & ec) noexcept;
        +
        bool running(std::error_code & ec) noexcept;

        This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

      9. -
        void wait();
        +
        void wait();

        Wait for the child process to exit.

      10. -
        void wait(std::error_code & ec) noexcept;
        +
        void wait(std::error_code & ec) noexcept;

        This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

      11. template<typename Rep, typename Period> 
        -  bool wait_for(const std::chrono::duration< Rep, Period > & rel_time);
        + bool wait_for(const std::chrono::duration< Rep, Period > & rel_time);

        Wait for the child process to exit for a period of time.

      @@ -192,13 +192,13 @@
    61. -
      bool wait_for(const std::chrono::duration< Rep, Period > & rel_time, 
      +
      bool wait_for(const std::chrono::duration< Rep, Period > & rel_time, 
                     std::error_code & ec) noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    62. template<typename Clock, typename Duration> 
      -  bool wait_until(const std::chrono::time_point< Clock, Duration > & timeout_time);
      + bool wait_until(const std::chrono::time_point< Clock, Duration > & timeout_time);

      Wait for the child process to exit until a point in time.

      @@ -213,12 +213,12 @@
    63. -
      bool wait_until(const std::chrono::time_point< Clock, Duration > & timeout_time, 
      +
      bool wait_until(const std::chrono::time_point< Clock, Duration > & timeout_time, 
                       std::error_code & ec) noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    64. -
      bool valid() const;
      +
      bool valid() const;

      Check if this handle holds a child process.

      @@ -231,24 +231,24 @@

    65. -
      explicit operator bool() const;
      +
      explicit operator bool() const;

      Same as valid, for convenience.

    66. -
      bool in_group() const;
      +
      bool in_group() const;

      Check if the the chlid process is in any process group.

    67. -
      bool in_group(std::error_code & ec) const noexcept;
      +
      bool in_group(std::error_code & ec) const noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    68. -
      void terminate();
      +
      void terminate();

      Terminate the child process.

      This function will cause the child process to unconditionally and immediately exit. It is implement with SIGKILL on posix and TerminateProcess on windows.

    69. -
      void terminate(std::error_code & ec) noexcept;
      +
      void terminate(std::error_code & ec) noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    70. diff --git a/doc/html/boost/process/extend/handler.html b/doc/html/boost/process/extend/handler.html index c842e4b82c..0967e683b0 100644 --- a/doc/html/boost/process/extend/handler.html +++ b/doc/html/boost/process/extend/handler.html @@ -35,16 +35,16 @@ structhandler{ - // public member functions - template<typename Executor>voidon_setup(Executor&)const; + // public member functions + template<typename Executor>voidon_setup(Executor&)const;template<typename Executor> - voidon_error(Executor&,conststd::error_code&)const; - template<typename Executor>voidon_success(Executor&)const; + voidon_error(Executor&,conststd::error_code&)const; + template<typename Executor>voidon_success(Executor&)const;template<typename Executor> - voidon_fork_error(Executor&,conststd::error_code&)const; - template<typename Executor>voidon_exec_setup(Executor&)const; + voidon_fork_error(Executor&,conststd::error_code&)const; + template<typename Executor>voidon_exec_setup(Executor&)const;template<typename Executor> - voidon_exec_error(Executor&,conststd::error_code&)const; + voidon_exec_error(Executor&,conststd::error_code&)const;};

      Description

      @@ -61,10 +61,10 @@

      -handler public member functions

      +handler public member functions
      1. -
        template<typename Executor> void on_setup(Executor &) const;
        This function is invoked before the process launch.
      +
      template<typename Executor> void on_setup(Executor &) const;
      This function is invoked before the process launch.
      @@ -76,7 +76,7 @@
    71. template<typename Executor> 
      -  void on_error(Executor &, const std::error_code &) const;
      + void on_error(Executor &, const std::error_code &) const;

      This function is invoked if an error occured while trying to launch the process.

    72. [Note] Note
      @@ -89,7 +89,7 @@

    73. -
      template<typename Executor> void on_success(Executor &) const;
      +
      template<typename Executor> void on_success(Executor &) const;

      This function is invoked if the process was successfully launched.

    74. @@ -103,7 +103,7 @@
    75. template<typename Executor> 
      -  void on_fork_error(Executor &, const std::error_code &) const;
      + void on_fork_error(Executor &, const std::error_code &) const;

      This function is invoked if an error occured during the call of fork.

    76. @@ -116,7 +116,7 @@

    77. -
      template<typename Executor> void on_exec_setup(Executor &) const;
      +
      template<typename Executor> void on_exec_setup(Executor &) const;

      This function is invoked if the call of fork was successful, before calling execve.

    78. @@ -139,7 +139,7 @@
    79. template<typename Executor> 
      -  void on_exec_error(Executor &, const std::error_code &) const;
      + void on_exec_error(Executor &, const std::error_code &) const;

      This function is invoked if the call of execve failed.

    80. diff --git a/doc/html/boost/process/extend/posix_executor.html b/doc/html/boost/process/extend/posix_executor.html index 8629773943..54c76c8827 100644 --- a/doc/html/boost/process/extend/posix_executor.html +++ b/doc/html/boost/process/extend/posix_executor.html @@ -35,10 +35,10 @@ template<typename Sequence>structposix_executor{ - // public member functions - conststd::error_code&error()const; - voidset_error(conststd::error_code&,conststd::string&); - voidset_error(conststd::error_code&,constchar*); + // public member functions + conststd::error_code&error()const; + voidset_error(conststd::error_code&,conststd::string&); + voidset_error(conststd::error_code&,constchar*);// public data membersSequence&seq;// A reference to the actual initializer-sequence. @@ -65,35 +65,35 @@ As information for extension development, here is the structure of the process l

       for (auto & s : seq)
      -    s.on_setup(*this);
      +    s.on_setup(*this);
       
      -if (error())
      +if (error())
       {
           for (auto & s : seq)
      -       s.on_error(*this, error());
      +       s.on_error(*this, error());
           return child();
       }
       
       pid = fork()
      -on_setup(*this);
      +on_setup(*this);
       
       if (pid == -1) //fork error 
       {
      -    set_error(get_last_error());
      +    set_error(get_last_error());
           for (auto & s : seq)
      -        s.on_fork_error(*this, error());
      +        s.on_fork_error(*this, error());
           for (auto & s : seq)
      -        s.on_error(*this, error());
      +        s.on_error(*this, error());
           return child()
       }
       else if (pid == 0) //child process
       {
           for (auto & s : seq)
      -        s.on_exec_setup(*this);
      +        s.on_exec_setup(*this);
           execve(exe, cmd_line, env);
           auto ec = get_last_error();
           for (auto & s : seq)
      -        s.on_exec_error(*this);
      +        s.on_exec_error(*this);
       
           unspecified();//here the error is send to the father process interally
       
      @@ -105,18 +105,18 @@ As information for extension development, here is the structure of the process l
       
       unspecified();//here, we read the the error from the child process
       
      -if (error())
      +if (error())
           for (auto & s : seq)
      -        s.on_error(*this, error());
      +        s.on_error(*this, error());
       else
           for (auto & s : seq)
      -        s.on_success(*this);
      +        s.on_success(*this);
       
       //now we check again, because a on_success handler might've errored.
      -if (error())
      +if (error())
       {
           for (auto & s : seq)
      -        s.on_error(*this, error());
      +        s.on_error(*this, error());
           return child();
       }
       else
      @@ -161,12 +161,12 @@ As information for extension development, here is the structure of the process l
       
       

      -posix_executor public member functions

      +posix_executor public member functions
      1. -
        const std::error_code & error() const;
        This function returns a const reference to the error state of the executor.
      2. +
        const std::error_code & error() const;
        This function returns a const reference to the error state of the executor.
      3. -
        void set_error(const std::error_code & ec, const std::string & msg);
        +
        void set_error(const std::error_code & ec, const std::string & msg);

        This function can be used to report an error to the executor. This will be handled according to the configuration of the executor, i.e. it might throw an exception.

      @@ -179,7 +179,7 @@ As information for extension development, here is the structure of the process l

    81. -
      void set_error(const std::error_code & ec, const char * msg);
      +
      void set_error(const std::error_code & ec, const char * msg);

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    82. diff --git a/doc/html/boost/process/extend/windows_executor.html b/doc/html/boost/process/extend/windows_executor.html index 3732e68e6a..1bb108da8b 100644 --- a/doc/html/boost/process/extend/windows_executor.html +++ b/doc/html/boost/process/extend/windows_executor.html @@ -38,11 +38,11 @@ typedefunspecifiedstartup_info_t;// The type of the startup-info, depending on the char-type. typedefunspecifiedstartup_info_ex_t;// The type of the extended startup-info, depending the char-type; only defined with winapi-version equal or higher than 6. - // public member functions - conststd::error_code&error()const; - voidset_error(conststd::error_code&,conststd::string&); - voidset_error(conststd::error_code&,constchar*); - voidset_startup_info_ex(); + // public member functions + conststd::error_code&error()const; + voidset_error(conststd::error_code&,conststd::string&); + voidset_error(conststd::error_code&,constchar*); + voidset_startup_info_ex();// public data membersSequence&seq;// A reference to the actual initializer-sequence. @@ -75,12 +75,12 @@ As information for extension development, here is the structure of the process launching (in pseudo-code and uml)

       for (auto & s : seq)
      -    s.on_setup(*this);
      +    s.on_setup(*this);
       
      -if (error())
      +if (error())
       {
           for (auto & s : seq)
      -       s.on_error(*this, error());
      +       s.on_error(*this, error());
           return child();
       }
       int err_code = CreateProcess(
      @@ -96,18 +96,18 @@ As information for extension development, here is the structure of the process l
       
       child c(proc_info, exit_code);
       
      -if (error())
      +if (error())
           for (auto & s : seq)
      -        s.on_error(*this, error());
      +        s.on_error(*this, error());
       else
           for (auto & s : seq)
      -        s.on_success(*this);
      +        s.on_success(*this);
       
       //now we check again, because a on_success handler might've errored.
      -if (error())
      +if (error())
       {
           for (auto & s : seq)
      -        s.on_error(*this, error());
      +        s.on_error(*this, error());
           return child();
       }
       else
      @@ -136,12 +136,12 @@ As information for extension development, here is the structure of the process l
       
       

      -windows_executor public member functions

      +windows_executor public member functions
      1. -
        const std::error_code & error() const;
        This function returns a const reference to the error state of the executor.
      2. +
        const std::error_code & error() const;
        This function returns a const reference to the error state of the executor.
      3. -
        void set_error(const std::error_code & ec, const std::string & msg);
        +
        void set_error(const std::error_code & ec, const std::string & msg);

        This function can be used to report an error to the executor. This will be handled according to the configuration of the executor, i.e. it might throw an exception.

      @@ -154,11 +154,11 @@ As information for extension development, here is the structure of the process l

    83. -
      void set_error(const std::error_code & ec, const char * msg);
      +
      void set_error(const std::error_code & ec, const char * msg);

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    84. -
      void set_startup_info_ex();
      This function switches the information, so that the extended structure is used.
    85. +
      void set_startup_info_ex();
      This function switches the information, so that the extended structure is used.
      diff --git a/doc/html/boost/process/group.html b/doc/html/boost/process/group.html index 96d9a07a00..27aa61203a 100644 --- a/doc/html/boost/process/group.html +++ b/doc/html/boost/process/group.html @@ -40,40 +40,40 @@ typedefgroup_handle::handle_tnative_handle_t;// Native representation of the handle. // construct/copy/destruct - explicitgroup(group_handle&&); - explicitgroup(native_handle_t&); - group(constgroup&)=delete; - group(group&&); - group()=default; - group&operator=(constgroup&)=delete; - group&operator=(group&&); - ~group(); + explicitgroup(group_handle&&); + explicitgroup(native_handle_t&); + group(constgroup&)=delete; + group(group&&); + group()=default; + group&operator=(constgroup&)=delete; + group&operator=(group&&); + ~group(); - // public member functions - voiddetach(); - voidjoin(); - booljoinable(); - native_handle_tnative_handle()const; - voidwait(); - voidwait(std::error_code&)noexcept; + // public member functions + voiddetach(); + voidjoin(); + booljoinable(); + native_handle_tnative_handle()const; + voidwait(); + voidwait(std::error_code&)noexcept;template<typename Rep,typename Period> - boolwait_for(conststd::chrono::duration<Rep,Period>&); + boolwait_for(conststd::chrono::duration<Rep,Period>&);template<typename Rep,typename Period> - boolwait_for(conststd::chrono::duration<Rep,Period>&, + boolwait_for(conststd::chrono::duration<Rep,Period>&,std::error_code&)noexcept;template<typename Clock,typename Duration> - boolwait_until(conststd::chrono::time_point<Clock,Duration>&); + boolwait_until(conststd::chrono::time_point<Clock,Duration>&);template<typename Clock,typename Duration> - boolwait_until(conststd::chrono::time_point<Clock,Duration>&, + boolwait_until(conststd::chrono::time_point<Clock,Duration>&,std::error_code&)noexcept; - boolvalid()const; - explicitoperator bool()const; - voidterminate(); - voidterminate(std::error_code&)noexcept; - voidadd(constchild&); - voidadd(constchild&,std::error_code&)noexcept; - boolhas(constchild&); - boolhas(constchild&,std::error_code&)noexcept; + boolvalid()const; + explicitoperator bool()const; + voidterminate(); + voidterminate(std::error_code&)noexcept; + voidadd(constchild&); + voidadd(constchild&,std::error_code&)noexcept; + boolhas(constchild&); + boolhas(constchild&,std::error_code&)noexcept;};

      Description

      @@ -107,19 +107,19 @@ public construct/copy/destruct
        -
      1. explicit group(group_handle && ch);
      2. +
      3. explicit group(group_handle && ch);
      4. -
        explicit group(native_handle_t & handle);
        Construct the group from a native_handle.
      5. -
      6. group(const group &) = delete;
      7. +
        explicit group(native_handle_t & handle);
        Construct the group from a native_handle. +
      8. group(const group &) = delete;
      9. -
        group(group && lhs);
        Move constructor.
      10. +
        group(group && lhs);
        Move constructor.
      11. -
        group() = default;
        Default constructor.
      12. -
      13. group & operator=(const group &) = delete;
      14. +
        group() = default;
        Default constructor. +
      15. group & operator=(const group &) = delete;
      16. -
        group & operator=(group && lhs);
        Move assign.
      17. +
        group & operator=(group && lhs);
        Move assign.
      18. -
        ~group();
        +
        ~group();

        Destructor

      [Note] Note
      @@ -135,29 +135,29 @@

      -group public member functions

      +group public member functions
      1. -
        void detach();
        Detach the group.
      2. +
        void detach();
        Detach the group.
      3. -
        void join();
        +
        void join();

        Join the child. This just calls wait, but that way the naming is similar to std::thread

      4. -
        bool joinable();
        +
        bool joinable();

        Check if the child is joinable.

      5. -
        native_handle_t native_handle() const;
        Obtain the native handle of the group.
      6. +
        native_handle_t native_handle() const;
        Obtain the native handle of the group.
      7. -
        void wait();
        Wait for the process group to exit.
      8. +
        void wait();
        Wait for the process group to exit.
      9. -
        void wait(std::error_code & ec) noexcept;
        +
        void wait(std::error_code & ec) noexcept;

        This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

      10. template<typename Rep, typename Period> 
        -  bool wait_for(const std::chrono::duration< Rep, Period > & rel_time);
        + bool wait_for(const std::chrono::duration< Rep, Period > & rel_time);

        Wait for the process group to exit for period of time.

      @@ -173,13 +173,13 @@
    86. template<typename Rep, typename Period> 
      -  bool wait_for(const std::chrono::duration< Rep, Period > & rel_time, 
      +  bool wait_for(const std::chrono::duration< Rep, Period > & rel_time, 
                       std::error_code & ec) noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    87. template<typename Clock, typename Duration> 
      -  bool wait_until(const std::chrono::time_point< Clock, Duration > & timeout_time);
      + bool wait_until(const std::chrono::time_point< Clock, Duration > & timeout_time);

      Wait for the process group to exit until a point in time.

    88. @@ -195,30 +195,30 @@
    89. template<typename Clock, typename Duration> 
      -  bool wait_until(const std::chrono::time_point< Clock, Duration > & timeout_time, 
      +  bool wait_until(const std::chrono::time_point< Clock, Duration > & timeout_time, 
                         std::error_code & ec) noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    90. -
      bool valid() const;
      Check if the group has a valid handle.
    91. +
      bool valid() const;
      Check if the group has a valid handle.
    92. -
      explicit operator bool() const;
      Convenience to call valid.
    93. +
      explicit operator bool() const;
      Convenience to call valid.
    94. -
      void terminate();
      Terminate the process group, i.e. all processes in the group.
    95. +
      void terminate();
      Terminate the process group, i.e. all processes in the group.
    96. -
      void terminate(std::error_code & ec) noexcept;
      +
      void terminate(std::error_code & ec) noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    97. -
      void add(const child & c);
      Assign a child process to the group.
    98. +
      void add(const child & c);
      Assign a child process to the group.
    99. -
      void add(const child & c, std::error_code & ec) noexcept;
      +
      void add(const child & c, std::error_code & ec) noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    100. -
      bool has(const child & c);
      Check if the child process is in the group.
    101. +
      bool has(const child & c);
      Check if the child process is in the group.
    102. -
      bool has(const child & c, std::error_code & ec) noexcept;
      +
      bool has(const child & c, std::error_code & ec) noexcept;

      This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    103. diff --git a/doc/html/boost/process/on_exit.html b/doc/html/boost/process/on_exit.html index ff7eb04322..b7e7873b1e 100644 --- a/doc/html/boost/process/on_exit.html +++ b/doc/html/boost/process/on_exit.html @@ -67,7 +67,7 @@

      When used ignore_error it might get invoked on error.

      -

      All on_exit use one signal(SIGCHLD) on posix, which is only guaranteed to work when all use the same io_context.

      +

      on_exit uses boost::asio::signal_set to listen for SIGCHLD on posix, and so has the same restrictions as that class (do not register a handler for SIGCHLD except by using boost::asio::signal_set).

      diff --git a/doc/html/boost/process/windows/create_no_window.html b/doc/html/boost/process/windows/create_no_window.html new file mode 100644 index 0000000000..4f773a14cb --- /dev/null +++ b/doc/html/boost/process/windows/create_no_window.html @@ -0,0 +1,51 @@ + + + + +Global create_no_window + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +


      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Global create_no_window

      +

      boost::process::windows::create_no_window — Adds the CREATE_NO_WINDOW.aspx) flag.

      +
      +

      Synopsis

      +
      // In header: <boost/process/windows.hpp>
      +
      +unspecified create_no_window;
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/process/windows/show_normal.html b/doc/html/boost/process/windows/show_normal.html index 05ff91ddd1..5eec215d12 100644 --- a/doc/html/boost/process/windows/show_normal.html +++ b/doc/html/boost/process/windows/show_normal.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -45,7 +45,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/random/linear_congruential_engine.html b/doc/html/boost/random/linear_congruential_engine.html index 8a67c30096..b6abb77093 100644 --- a/doc/html/boost/random/linear_congruential_engine.html +++ b/doc/html/boost/random/linear_congruential_engine.html @@ -116,7 +116,7 @@

      Calls seed(default_seed)

    104. -
      void seed(IntType x0);
      +
      void seed(IntType x0_);

      If c mod m is zero and x0 mod m is zero, changes the current value of the generator to 1. Otherwise, changes it to x0 mod m. If c is zero, distinct seeds in the range [1,m) will leave the generator in distinct states. If c is not zero, the range is [0,m).

    105. diff --git a/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_3.html b/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_3.html index bc2ce52ed8..94fd8ad0a1 100644 --- a/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_3.html +++ b/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_3.html @@ -27,7 +27,7 @@

      Function safe_dump_to

      -

      boost::stacktrace::safe_dump_to — Opens a file and rewrites its content with current function call sequence.

      +

      boost::stacktrace::safe_dump_to — Opens a file and rewrites its content with current function call sequence if such operations are async signal safe.

      Synopsis

      // In header: <boost/stacktrace/safe_dump_to.hpp>
      diff --git a/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_4.html b/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_4.html
      index 0cb3b1b80f..a67b968572 100644
      --- a/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_4.html
      +++ b/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_4.html
      @@ -27,7 +27,7 @@
       

      Function safe_dump_to

      -

      boost::stacktrace::safe_dump_to — Opens a file and rewrites its content with current function call sequence.

      +

      boost::stacktrace::safe_dump_to — Opens a file and rewrites its content with current function call sequence if such operations are async signal safe.

      Synopsis

      // In header: <boost/stacktrace/safe_dump_to.hpp>
      diff --git a/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_5.html b/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_5.html
      index b3721811f5..7952521a6d 100644
      --- a/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_5.html
      +++ b/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_5.html
      @@ -27,7 +27,7 @@
       

      Function safe_dump_to

      -

      boost::stacktrace::safe_dump_to — Writes into the provided file descriptor the current function call sequence.

      +

      boost::stacktrace::safe_dump_to — Writes into the provided file descriptor the current function call sequence if such operation is async signal safe.

      Synopsis

      // In header: <boost/stacktrace/safe_dump_to.hpp>
      diff --git a/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_6.html b/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_6.html
      index 8f9dbd3f64..05ffc4034d 100644
      --- a/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_6.html
      +++ b/doc/html/boost/stacktrace/safe_dump_1_3_38_7_6_2_1_6.html
      @@ -27,7 +27,7 @@
       

      Function safe_dump_to

      -

      boost::stacktrace::safe_dump_to — Writes into the provided file descriptor the current function call sequence.

      +

      boost::stacktrace::safe_dump_to — Writes into the provided file descriptor the current function call sequence if such operation is async signal safe.

      Synopsis

      // In header: <boost/stacktrace/safe_dump_to.hpp>
      diff --git a/doc/html/boost/swap_idp24543920.html b/doc/html/boost/swap_idp24543920.html
      deleted file mode 100644
      index 9514aafa5a..0000000000
      --- a/doc/html/boost/swap_idp24543920.html
      +++ /dev/null
      @@ -1,105 +0,0 @@
      -
      -
      -
      -
      -Function template swap
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      -
      -
      -PrevUpHomeNext -
      -
      -
      -
      -

      Function template swap

      -

      boost::swap — Swap the contents of two circular_buffers.

      -
      -

      Synopsis

      -
      // In header: <boost/circular_buffer/base.hpp>
      -
      -
      -template<typename T, typename Alloc> 
      -  void swap(circular_buffer< T, Alloc > & lhs, 
      -            circular_buffer< T, Alloc > & rhs);
      -
      -

      Description

      -

      - - -

      -

      Complexity. Constant (in the size of the circular_buffers).

      -

      -

      -

      Iterator Invalidation. Invalidates all iterators of both circular_buffers. (On the other hand the iterators still point to the same elements but within another container. If you want to rely on this feature you have to turn the Debug Support off otherwise an assertion will report an error if such invalidated iterator is used.)

      -

      -

      -

      See Also:

      -

      swap(circular_buffer<T, Alloc>&)

      -

      -

      -
      ---- - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - - - - - - - -

      lhs

      The circular_buffer whose content will be swapped with rhs.

      rhs

      The circular_buffer whose content will be swapped with lhs.

      Postconditions:

      lhs contains elements of rhs and vice versa.

      Throws:

      Nothing.
      -
      -
      - - - -
      -
      -
      -PrevUpHomeNext -
      - - diff --git a/doc/html/boost/swap_idp43422448.html b/doc/html/boost/swap_idp43422448.html new file mode 100644 index 0000000000..6f862bbaf9 --- /dev/null +++ b/doc/html/boost/swap_idp43422448.html @@ -0,0 +1,105 @@ + + + + +Function template swap + + + + + + + + + + + + + + + +
      Boost C++ LibrariesHomeLibrariesPeopleFAQMore
      +
      +
      +PrevUpHomeNext +
      +
      +
      +
      +

      Function template swap

      +

      boost::swap — Swap the contents of two circular_buffers.

      +
      +

      Synopsis

      +
      // In header: <boost/circular_buffer/base.hpp>
      +
      +
      +template<typename T, typename Alloc> 
      +  void swap(circular_buffer< T, Alloc > & lhs, 
      +            circular_buffer< T, Alloc > & rhs);
      +
      +

      Description

      +

      + + +

      +

      Complexity. Constant (in the size of the circular_buffers).

      +

      +

      +

      Iterator Invalidation. Invalidates all iterators of both circular_buffers. (On the other hand the iterators still point to the same elements but within another container. If you want to rely on this feature you have to turn the Debug Support off otherwise an assertion will report an error if such invalidated iterator is used.)

      +

      +

      +

      See Also:

      +

      swap(circular_buffer<T, Alloc>&)

      +

      +

      +
      ++++ + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + + + + + + + +

      lhs

      The circular_buffer whose content will be swapped with rhs.

      rhs

      The circular_buffer whose content will be swapped with lhs.

      Postconditions:

      lhs contains elements of rhs and vice versa.

      Throws:

      Nothing.
      +
      +
      + + + +
      +
      +
      +PrevUpHomeNext +
      + + diff --git a/doc/html/boost/type_erasure/_self.html b/doc/html/boost/type_erasure/_self.html index 4317a4a097..decd3137cb 100644 --- a/doc/html/boost/type_erasure/_self.html +++ b/doc/html/boost/type_erasure/_self.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -50,7 +50,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/type_erasure/any.html b/doc/html/boost/type_erasure/any.html index 8f640d9ef5..f0dbc9585f 100644 --- a/doc/html/boost/type_erasure/any.html +++ b/doc/html/boost/type_erasure/any.html @@ -6,9 +6,9 @@ - - - + + + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -30,30 +30,29 @@

      boost::type_erasure::any

      Synopsis

      -
      // In header: <boost/type_erasure/rebind_any.hpp>
      +
      // In header: <boost/type_erasure/any.hpp>
       
      -template<typename Concept, typename T> 
      +template<typename Concept, typename T = _self> 
       class any {
       public:
         // construct/copy/destruct
      -  any();
      -  template<typename U> any(U &&);
      -  template<typename U, typename Map> any(U &&, const static_binding< Map > &);
      -  any(const any &);
      +  any();
      +  template<typename U> any(U &&);
      +  template<typename U, typename Map> any(U &&, const static_binding< Map > &);
      +  any(const any &);
         template<typename Concept2, typename Tag2> 
      -    any(const any< Concept2, Tag2 > &);
      +    any(const any< Concept2, Tag2 > &);
         template<typename Concept2, typename Tag2, typename Map> 
      -    any(const any< Concept2, Tag2 > &, const static_binding< Map > &);
      +    any(const any< Concept2, Tag2 > &, const static_binding< Map > &);
         template<typename Concept2, typename Tag2> 
      -    any(const any< Concept2, Tag2 > &, const binding< Concept > &);
      -  template<class... U> explicit any(U &&...);
      -  template<class... U> explicit any(const binding< Concept > &, U &&...);
      -  any & operator=(const any &);
      -  template<typename U> any & operator=(const U &);
      -  ~any();
      +    any(const any< Concept2, Tag2 > &, const binding< Concept > &);
      +  template<class... U> explicit any(U &&...);
      +  template<class... U> explicit any(const binding< Concept > &, U &&...);
      +  template<typename U> any & operator=(U &&);
      +  ~any();
       };
      -

      Description

      +

      Description

      The class template any can store any object that models a specific Concept. It dispatches all the functions defined by the Concept to the contained type at runtime.

      @@ -62,26 +61,26 @@

      -

      Template Parameters

      +

      Template Parameters

      1. typename Concept

        The Concept that the stored type should model.

      2. -
        typename T
        +
        typename T = _self

        A placeholder specifying which type this is.

      -

      +

      any public construct/copy/destruct

      1. -
        any();
        +
        any();

        Constructs an empty any.

        Except as otherwise noted, all operations on an empty any result in a bad_function_call exception. The copy-constructor of an empty any creates another null any. The destructor of an empty any is a no-op. Comparison operators treat all empty anys as equal. typeid_of applied to an empty any returns typeid(void).

        An any which does not include relaxed in its Concept can never be null.

        @@ -110,7 +109,7 @@
    106. -
      template<typename U> any(U && data);
      +
      template<typename U> any(U && data);

      Constructs an any to hold a copy of data. The Concept will be instantiated with the placeholder T bound to U.

      @@ -161,7 +160,7 @@

    107. template<typename U, typename Map> 
      -  any(U && data, const static_binding< Map > & binding);
      + any(U && data, const static_binding< Map > & binding);

      Constructs an any to hold a copy of data with explicitly specified placeholder bindings.

      @@ -218,7 +217,7 @@

  • -
    any(const any & other);
    +
    any(const any & other);

    Copies an any.

    @@ -256,7 +255,7 @@

  • template<typename Concept2, typename Tag2> 
    -  any(const any< Concept2, Tag2 > & other);
    + any(const any< Concept2, Tag2 > & other);

    Upcasts from an any with stricter requirements to an any with weaker requirements.

    @@ -284,7 +283,7 @@

    Requires:

    -

    Concept must contain constructible<T(const T&)>.

    +

    Concept must contain constructible<T(const T&)>.

    Concept must not refer to any non-deduced placeholder besides T.

    After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

    @@ -298,7 +297,7 @@
  • template<typename Concept2, typename Tag2, typename Map> 
    -  any(const any< Concept2, Tag2 > & other, 
    +  any(const any< Concept2, Tag2 > & other, 
           const static_binding< Map > & binding);

    Constructs an any from another any.

    @@ -333,7 +332,7 @@

    Requires:

    -

    Concept must contain constructible<T(const T&)>.

    +

    Concept must contain constructible<T(const T&)>.

    Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

    After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

    @@ -347,7 +346,7 @@
  • template<typename Concept2, typename Tag2> 
    -  any(const any< Concept2, Tag2 > & other, const binding< Concept > & binding);
    + any(const any< Concept2, Tag2 > & other, const binding< Concept > & binding);

    Constructs an any from another any.

    @@ -391,7 +390,7 @@

    Requires:

    -

    Concept must contain constructible<T(const T&)>.

    +

    Concept must contain constructible<T(const T&)>.

    The type stored in other must match the type expected by binding.

    @@ -407,7 +406,7 @@
  • -
    template<class... U> explicit any(U &&... arg);
    +
    template<class... U> explicit any(U &&... arg);

    Calls a constructor of the contained type. The bindings will be deduced from the arguments.

    @@ -458,7 +457,7 @@

  • template<class... U> 
    -  explicit any(const binding< Concept > & binding, U &&... arg);
    + explicit any(const binding< Concept > & binding, U &&... arg);

    Calls a constructor of the contained type.

    @@ -509,27 +508,18 @@

  • -
    any & operator=(const any & other);
    +
    template<typename U> any & operator=(U && other);

    Assigns to an any.

    If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

    -

    -

    -
    ---- - - - - +

    Throws:

    Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc or whatever the copy constructor of the contained type throws. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
    + + + + +
    [Note]Note

    If U is an any, then this can decide dynamically whether to use construction based on the type stored in other.

    -
  • -
  • -
    template<typename U> any & operator=(const U & other);
    -

    Assigns to an any.

    -

    If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

    +

    @@ -538,12 +528,12 @@ - +

    Throws:

    Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc or whatever the copy constructor of the contained type throws. In this case assignment provides the strong exception guarantee. When calling an assignment operator of the contained type, the exception guarantee is whatever the contained type provides. Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc or whatever the move (or copy) constructor of the contained type throws. In this case move assignment provides the strong exception guarantee. When calling a (move) assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
  • -
    ~any();
    +
    ~any();

    @@ -559,6 +549,14 @@ +
    @@ -571,7 +569,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_1.html b/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_1.html deleted file mode 100644 index 3996d0f6c3..0000000000 --- a/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_1.html +++ /dev/null @@ -1,560 +0,0 @@ - - - - -Class template any<Concept, T &> - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -
    -
    -

    Class template any<Concept, T &>

    -

    boost::type_erasure::any<Concept, T &>

    -
    -

    Synopsis

    -
    // In header: <boost/type_erasure/any.hpp>
    -
    -template<typename Concept, typename T> 
    -class any<Concept, T &> {
    -public:
    -  // construct/copy/destruct
    -  template<typename U> any(U &);
    -  template<typename U, typename Map> any(U &, const static_binding< Map > &);
    -  any(const any &);
    -  any(any< Concept, T > &);
    -  template<typename Concept2, typename Tag2> 
    -    any(const any< Concept2, Tag2 & > &);
    -  template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > &);
    -  template<typename Concept2, typename Tag2, typename Map> 
    -    any(const any< Concept2, Tag2 & > &, const static_binding< Map > &);
    -  template<typename Concept2, typename Tag2, typename Map> 
    -    any(any< Concept2, Tag2 > &, const static_binding< Map > &);
    -  template<typename Concept2, typename Tag2> 
    -    any(const any< Concept2, Tag2 & > &, const binding< Concept > &);
    -  template<typename Concept2, typename Tag2> 
    -    any(any< Concept2, Tag2 > &, const binding< Concept > &);
    -  any & operator=(const any &);
    -  template<typename U> any & operator=(U &);
    -  template<typename U> any & operator=(const U &);
    -};
    -
    -

    Description

    -
    -

    -any - public - construct/copy/destruct

    -
      -
    1. -
      template<typename U> any(U & arg);
      -

      Constructs an any from a reference.

      -

      - - -

      -
      ---- - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - -

      arg

      The object to bind the reference to.

      Requires:

      -

      U is a model of Concept.

      -

      Concept must not refer to any non-deduced placeholder besides T.

      -

      Throws:

      Nothing.
      -
    2. -
    3. -
      template<typename U, typename Map> 
      -  any(U & arg, const static_binding< Map > & binding);
      -

      Constructs an any from a reference.

      -

      - - -

      -
      ---- - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - - - - - - - -

      arg

      The object to bind the reference to.

      binding

      Specifies the actual types that all the placeholders should bind to.

      Requires:

      -

      U is a model of Concept.

      -

      Map is an MPL map with an entry for every non-deduced placeholder referred to by Concept.

      -

      Throws:

      Nothing.
      -
    4. -
    5. -
      any(const any & other);
      -

      Constructs an any from another reference.

      -

      - -

      -
      ---- - - - - - - - - - - -

      Parameters:

      ---- - - - - -

      other

      The reference to copy.

      Throws:

      Nothing.
      -
    6. -
    7. -
      any(any< Concept, T > & other);
      -

      Constructs an any from another any.

      -

      - -

      -
      ---- - - - - - - - - - - -

      Parameters:

      ---- - - - - -

      other

      The object to bind the reference to.

      Throws:

      Nothing.
      -
    8. -
    9. -
      template<typename Concept2, typename Tag2> 
      -  any(const any< Concept2, Tag2 & > & other);
      -

      Constructs an any from another reference.

      -

      - - -

      -
      ---- - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - -

      other

      The reference to copy.

      Requires:

      -

      Concept must not refer to any non-deduced placeholder besides T.

      -

      After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

      -

      Throws:

      std::bad_alloc
      -
    10. -
    11. -
      template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > & other);
      -

      Constructs an any from another any.

      -

      - - -

      -
      ---- - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - -

      other

      The object to bind the reference to.

      Requires:

      -

      Concept must not refer to any non-deduced placeholder besides T.

      -

      After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

      -

      Throws:

      std::bad_alloc
      -
    12. -
    13. -
      template<typename Concept2, typename Tag2, typename Map> 
      -  any(const any< Concept2, Tag2 & > & other, 
      -      const static_binding< Map > & binding);
      -

      Constructs an any from another reference.

      -

      - - -

      -
      ---- - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - - - - - - - -

      binding

      Specifies the mapping between the two concepts.

      other

      The reference to copy.

      Requires:

      -

      Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

      -

      After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

      -

      Throws:

      std::bad_alloc
      -
    14. -
    15. -
      template<typename Concept2, typename Tag2, typename Map> 
      -  any(any< Concept2, Tag2 > & other, const static_binding< Map > & binding);
      -

      Constructs an any from another any.

      -

      - - -

      -
      ---- - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - - - - - - - -

      binding

      Specifies the mapping between the two concepts.

      other

      The object to bind the reference to.

      Requires:

      -

      Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

      -

      After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

      -

      Throws:

      std::bad_alloc
      -
    16. -
    17. -
      template<typename Concept2, typename Tag2> 
      -  any(const any< Concept2, Tag2 & > & other, 
      -      const binding< Concept > & binding);
      -

      Constructs an any from another reference.

      -

      - - - -

      -
      ---- - - - - - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - - - - - - - -

      binding

      Specifies the bindings of placeholders to actual types.

      other

      The reference to copy.

      Requires:

      The type stored in other must match the type expected by binding.

      Postconditions:

      binding_of(*this) == binding

      Throws:

      Nothing.
      -
    18. -
    19. -
      template<typename Concept2, typename Tag2> 
      -  any(any< Concept2, Tag2 > & other, const binding< Concept > & binding);
      -

      Constructs an any from another any.

      -

      - - - -

      -
      ---- - - - - - - - - - - - - - - - - - - -

      Parameters:

      ---- - - - - - - - - - - -

      binding

      Specifies the bindings of placeholders to actual types.

      other

      The object to bind the reference to.

      Requires:

      The type stored in other must match the type expected by binding.

      Postconditions:

      binding_of(*this) == binding

      Throws:

      Nothing.
      -
    20. -
    21. -
      any & operator=(const any & other);
      -

      Assigns to an any.

      -

      If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

      -

      -

      -
      ---- - - - - -

      Throws:

      Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
      -
    22. -
    23. -
      template<typename U> any & operator=(U & other);
      -

      Assigns to an any.

      -

      If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

      -

      -

      -
      ---- - - - - -

      Throws:

      Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
      -
    24. -
    25. -
      template<typename U> any & operator=(const U & other);
      -

      Assigns to an any.

      -

      If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

      -

      -

      -
      ---- - - - - -

      Throws:

      Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
      -
    26. -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_2.html b/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_2.html index 399e7fcebc..48f467f36e 100644 --- a/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_2.html +++ b/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_2.html @@ -2,13 +2,13 @@ -Class template any<Concept, const T &> +Class template any<Concept, T &> - - + + @@ -21,47 +21,48 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Class template any<Concept, const T &>

    -

    boost::type_erasure::any<Concept, const T &>

    +

    Class template any<Concept, T &>

    +

    boost::type_erasure::any<Concept, T &>

    Synopsis

    // In header: <boost/type_erasure/any.hpp>
     
     template<typename Concept, typename T> 
    -class any<Concept, const T &> {
    +class any<Concept, T &> {
     public:
       // construct/copy/destruct
    -  template<typename U> any(const U &);
    -  template<typename U, typename Map> 
    -    any(const U &, const static_binding< Map > &);
    +  template<typename U> any(U &);
    +  template<typename U, typename Map> any(U &, const static_binding< Map > &);
       any(const any &);
    -  any(const any< Concept, T & > &);
    -  any(const any< Concept, T > &);
    -  any(const any< Concept, T && > &);
    +  any(any< Concept, T > &);
       template<typename Concept2, typename Tag2> 
    -    any(const any< Concept2, Tag2 > &);
    +    any(const any< Concept2, Tag2 & > &);
    +  template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > &);
       template<typename Concept2, typename Tag2, typename Map> 
    -    any(const any< Concept2, Tag2 > &, const static_binding< Map > &);
    +    any(const any< Concept2, Tag2 & > &, const static_binding< Map > &);
    +  template<typename Concept2, typename Tag2, typename Map> 
    +    any(any< Concept2, Tag2 > &, const static_binding< Map > &);
    +  template<typename Concept2, typename Tag2> 
    +    any(const any< Concept2, Tag2 & > &, const binding< Concept > &);
       template<typename Concept2, typename Tag2> 
    -    any(const any< Concept2, Tag2 > &, const binding< Concept > &);
    -  any & operator=(const any &);
    -  template<typename U> any & operator=(const U &);
    +    any(any< Concept2, Tag2 > &, const binding< Concept > &);
    +  template<typename U> any & operator=(U &&);
     };
    -

    Description

    +

    Description

    -

    +

    any public construct/copy/destruct

    1. -
      template<typename U> any(const U & arg);
      +
      template<typename U> any(U & arg);

      Constructs an any from a reference.

      @@ -102,7 +103,7 @@

    2. template<typename U, typename Map> 
      -  any(const U & arg, const static_binding< Map > & binding);
      + any(U & arg, const static_binding< Map > & binding);

      Constructs an any from a reference.

      @@ -149,7 +150,7 @@

    3. any(const any & other);
      -

      Constructs an any from another any.

      +

      Constructs an any from another reference.

      @@ -180,7 +181,7 @@
  • -
    any(const any< Concept, T & > & other);
    +
    any(any< Concept, T > & other);

    Constructs an any from another any.

    @@ -200,7 +201,7 @@

    other

    -

    The reference to copy.

    +

    The object to bind the reference to.

    @@ -212,10 +213,12 @@
  • -
    any(const any< Concept, T > & other);
    -

    Constructs an any from another any.

    +
    template<typename Concept2, typename Tag2> 
    +  any(const any< Concept2, Tag2 & > & other);
    +

    Constructs an any from another reference.

    +

    @@ -232,22 +235,30 @@ - +

    other

    The object to bind the reference to.

    The reference to copy.

    +

    Requires:

    + +

    Concept must not refer to any non-deduced placeholder besides T.

    +

    After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

    + + +

    Throws:

    -Nothing. +std::bad_alloc
  • -
    any(const any< Concept, T && > & other);
    +
    template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > & other);

    Constructs an any from another any.

    +

    @@ -269,16 +280,24 @@
    +

    Requires:

    + +

    Concept must not refer to any non-deduced placeholder besides T.

    +

    After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

    + + +

    Throws:

    -Nothing. +std::bad_alloc
  • -
    template<typename Concept2, typename Tag2> 
    -  any(const any< Concept2, Tag2 > & other);
    -

    Constructs an any from another any.

    +
    template<typename Concept2, typename Tag2, typename Map> 
    +  any(const any< Concept2, Tag2 & > & other, 
    +      const static_binding< Map > & binding);
    +

    Constructs an any from another reference.

    @@ -296,17 +315,23 @@ - + + +

    binding

    +

    Specifies the mapping between the two concepts.

    + +

    other

    -

    The object to bind the reference to.

    - +

    The reference to copy.

    + +

    Requires:

    -

    Concept must not refer to any non-deduced placeholder besides T.

    -

    After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

    +

    Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

    +

    After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

    @@ -318,8 +343,7 @@
  • template<typename Concept2, typename Tag2, typename Map> 
    -  any(const any< Concept2, Tag2 > & other, 
    -      const static_binding< Map > & binding);
    + any(any< Concept2, Tag2 > & other, const static_binding< Map > & binding);

    Constructs an any from another any.

    @@ -366,8 +390,9 @@

  • template<typename Concept2, typename Tag2> 
    -  any(const any< Concept2, Tag2 > & other, const binding< Concept > & binding);
    -

    Constructs an any from another any.

    + any(const any< Concept2, Tag2 & > & other, + const binding< Concept > & binding); +

    Constructs an any from another reference.

    @@ -393,7 +418,7 @@

    other

    -

    The object to bind the reference to.

    +

    The reference to copy.

    @@ -414,10 +439,13 @@
  • -
    any & operator=(const any & other);
    -

    Assigns to an any.

    +
    template<typename Concept2, typename Tag2> 
    +  any(any< Concept2, Tag2 > & other, const binding< Concept > & binding);
    +

    Constructs an any from another any.

    + +

    @@ -426,8 +454,31 @@ + + + + - + + + + + @@ -437,26 +488,20 @@

    Parameters:

    ++++ + + + + + + + + + + +

    binding

    Specifies the bindings of placeholders to actual types.

    other

    The object to bind the reference to.

    Requires:

    relaxed is in Concept.

    The type stored in other must match the type expected by binding.

    Postconditions:

    binding_of(*this) == binding

    Throws:

  • -
    template<typename U> any & operator=(const U & other);
    +
    template<typename U> any & operator=(U && other);

    Assigns to an any.

    +

    If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

    -

    - - - - - - + - - - + +

    Requires:

    relaxed is in Concept.

    Throws:

    std::bad_alloc. Provides the strong exception guarantee.
    Whatever the assignment operator of the contained type throws. When falling back on construction, can only throw std::bad_alloc if U is an any that uses a different Concept. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
  • @@ -473,7 +518,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_3.html b/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_3.html index ef0b41dc95..bf98873266 100644 --- a/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_3.html +++ b/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_3.html @@ -2,13 +2,13 @@ -Class template any<Concept, T &&> +Class template any<Concept, const T &> - - + + @@ -21,48 +21,47 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Class template any<Concept, T &&>

    -

    boost::type_erasure::any<Concept, T &&>

    +

    Class template any<Concept, const T &>

    +

    boost::type_erasure::any<Concept, const T &>

    Synopsis

    // In header: <boost/type_erasure/any.hpp>
     
     template<typename Concept, typename T> 
    -class any<Concept, T &&> {
    +class any<Concept, const T &> {
     public:
       // construct/copy/destruct
    -  template<typename U> any(U &&);
    -  template<typename U, typename Map> any(U &&, const static_binding< Map > &);
    -  any(any< Concept, T > &&);
    -  template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 && > &&);
    -  template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > &&);
    -  template<typename Concept2, typename Tag2, typename Map> 
    -    any(const any< Concept2, Tag2 && > &, const static_binding< Map > &);
    -  template<typename Concept2, typename Tag2, typename Map> 
    -    any(any< Concept2, Tag2 > &&, const static_binding< Map > &);
    +  template<typename U> any(const U &);
    +  template<typename U, typename Map> 
    +    any(const U &, const static_binding< Map > &);
    +  any(const any &);
    +  any(const any< Concept, T & > &);
    +  any(const any< Concept, T > &);
    +  any(const any< Concept, T && > &);
       template<typename Concept2, typename Tag2> 
    -    any(const any< Concept2, Tag2 && > &, const binding< Concept > &);
    +    any(const any< Concept2, Tag2 > &);
    +  template<typename Concept2, typename Tag2, typename Map> 
    +    any(const any< Concept2, Tag2 > &, const static_binding< Map > &);
       template<typename Concept2, typename Tag2> 
    -    any(any< Concept2, Tag2 > &&, const binding< Concept > &);
    +    any(const any< Concept2, Tag2 > &, const binding< Concept > &);
       any & operator=(const any &);
    -  template<typename U> any & operator=(U &);
    -  template<typename U> any & operator=(const U &);
    +  template<typename U> any & operator=(const U &);
     };
    -

    Description

    +

    Description

    -

    +

    any public construct/copy/destruct

    1. -
      template<typename U> any(U && arg);
      +
      template<typename U> any(const U & arg);

      Constructs an any from a reference.

      @@ -103,7 +102,7 @@

    2. template<typename U, typename Map> 
      -  any(U && arg, const static_binding< Map > & binding);
      + any(const U & arg, const static_binding< Map > & binding);

      Constructs an any from a reference.

      @@ -149,12 +148,10 @@

  • -
    any(any< Concept, T > && other);
    -

    Constructs an any from another rvalue reference.

    +
    any(const any & other);
    +

    Constructs an any from another any.

    - -

    @@ -171,30 +168,22 @@ - +

    other

    -

    The reference to copy.

    -

    The object to bind the reference to.

    -

    The reference to copy.

    Throws:

    - -

    Nothing. Constructs an any from another any.

    -

    Nothing.

    - +Nothing.
  • -
    template<typename Concept2, typename Tag2> 
    -  any(any< Concept2, Tag2 && > && other);
    -

    Constructs an any from another rvalue reference.

    +
    any(const any< Concept, T & > & other);
    +

    Constructs an any from another any.

    -

    @@ -216,25 +205,17 @@
    -

    Requires:

    - -

    Concept must not refer to any non-deduced placeholder besides T.

    -

    After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

    - - -

    Throws:

    -std::bad_alloc +Nothing.
  • -
    template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > && other);
    +
    any(const any< Concept, T > & other);

    Constructs an any from another any.

    -

    @@ -256,27 +237,17 @@
    -

    Requires:

    - -

    Concept must not refer to any non-deduced placeholder besides T.

    -

    After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

    - - -

    Throws:

    -std::bad_alloc +Nothing.
  • -
    template<typename Concept2, typename Tag2, typename Map> 
    -  any(const any< Concept2, Tag2 && > & other, 
    -      const static_binding< Map > & binding);
    -

    Constructs an any from another reference.

    +
    any(const any< Concept, T && > & other);
    +

    Constructs an any from another any.

    -

    @@ -291,35 +262,22 @@ - - - - - - + - - - + +

    binding

    Specifies the mapping between the two concepts.

    other

    The reference to copy.

    The object to bind the reference to.

    -

    Requires:

    - -

    Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

    -

    After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

    - - -

    Throws:

    -std::bad_alloc +Nothing.
  • -
    template<typename Concept2, typename Tag2, typename Map> 
    -  any(any< Concept2, Tag2 > && other, const static_binding< Map > & binding);
    +
    template<typename Concept2, typename Tag2> 
    +  any(const any< Concept2, Tag2 > & other);

    Constructs an any from another any.

    @@ -338,23 +296,17 @@ - - -

    binding

    -

    Specifies the mapping between the two concepts.

    - - +

    other

    -

    The object to bind the reference to.

    - - +

    The object to bind the reference to.

    +

    Requires:

    -

    Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

    -

    After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

    +

    Concept must not refer to any non-deduced placeholder besides T.

    +

    After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

    @@ -365,14 +317,13 @@
  • -
    template<typename Concept2, typename Tag2> 
    -  any(const any< Concept2, Tag2 && > & other, 
    -      const binding< Concept > & binding);
    -

    Constructs an any from another rvalue reference.

    +
    template<typename Concept2, typename Tag2, typename Map> 
    +  any(const any< Concept2, Tag2 > & other, 
    +      const static_binding< Map > & binding);
    +

    Constructs an any from another any.

    -

    @@ -390,33 +341,32 @@ - + - +

    binding

    Specifies the bindings of placeholders to actual types.

    Specifies the mapping between the two concepts.

    other

    The reference to copy.

    The object to bind the reference to.

    Requires:

    -

    The type stored in other must match the type expected by binding.

    - - -

    Postconditions:

    -

    binding_of(*this) == binding

    + +

    Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

    +

    After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

    +

    Throws:

    -Nothing. +std::bad_alloc
  • template<typename Concept2, typename Tag2> 
    -  any(any< Concept2, Tag2 > && other, const binding< Concept > & binding);
    + any(const any< Concept2, Tag2 > & other, const binding< Concept > & binding);

    Constructs an any from another any.

    @@ -466,52 +416,47 @@

  • any & operator=(const any & other);

    Assigns to an any.

    -

    If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

    -

    -

    -
    ---- - - - - -

    Throws:

    Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
    -
  • -
  • -
    template<typename U> any & operator=(U & other);
    -

    Assigns to an any.

    -

    If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

    +

    - + + + + + + - - + + +

    Requires:

    relaxed is in Concept.

    Throws:

    Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
    Nothing.
  • -
    template<typename U> any & operator=(const U & other);
    +
    template<typename U> any & operator=(const U & other);

    Assigns to an any.

    -

    If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

    +

    - + + + + + + - - + + +

    Requires:

    relaxed is in Concept.

    Throws:

    Whatever the assignment operator of the contained type throws. When falling back on construction, throws std::bad_alloc. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
    std::bad_alloc. Provides the strong exception guarantee.
  • @@ -528,7 +473,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_4.html b/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_4.html new file mode 100644 index 0000000000..527160060d --- /dev/null +++ b/doc/html/boost/type_erasure/any_Conc_1_3_41_13_1_1_1_4.html @@ -0,0 +1,498 @@ + + + + +Class template any<Concept, T &&> + + + + + + + + + + + + + + + +
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    +
    +
    +PrevUpHomeNext +
    +
    +
    +
    +

    Class template any<Concept, T &&>

    +

    boost::type_erasure::any<Concept, T &&>

    +
    +

    Synopsis

    +
    // In header: <boost/type_erasure/any.hpp>
    +
    +template<typename Concept, typename T> 
    +class any<Concept, T &&> {
    +public:
    +  // construct/copy/destruct
    +  template<typename U> any(U &&);
    +  template<typename U, typename Map> any(U &&, const static_binding< Map > &);
    +  any(any< Concept, T > &&);
    +  template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 && > &&);
    +  template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > &&);
    +  template<typename Concept2, typename Tag2, typename Map> 
    +    any(const any< Concept2, Tag2 && > &, const static_binding< Map > &);
    +  template<typename Concept2, typename Tag2, typename Map> 
    +    any(any< Concept2, Tag2 > &&, const static_binding< Map > &);
    +  template<typename Concept2, typename Tag2> 
    +    any(const any< Concept2, Tag2 && > &, const binding< Concept > &);
    +  template<typename Concept2, typename Tag2> 
    +    any(any< Concept2, Tag2 > &&, const binding< Concept > &);
    +  template<typename U> any & operator=(U &&);
    +};
    +
    +

    Description

    +
    +

    +any + public + construct/copy/destruct

    +
      +
    1. +
      template<typename U> any(U && arg);
      +

      Constructs an any from a reference.

      +

      + + +

      +
      ++++ + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + +

      arg

      The object to bind the reference to.

      Requires:

      +

      U is a model of Concept.

      +

      Concept must not refer to any non-deduced placeholder besides T.

      +

      Throws:

      Nothing.
      +
    2. +
    3. +
      template<typename U, typename Map> 
      +  any(U && arg, const static_binding< Map > & binding);
      +

      Constructs an any from a reference.

      +

      + + +

      +
      ++++ + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + + + + + + + +

      arg

      The object to bind the reference to.

      binding

      Specifies the actual types that all the placeholders should bind to.

      Requires:

      +

      U is a model of Concept.

      +

      Map is an MPL map with an entry for every non-deduced placeholder referred to by Concept.

      +

      Throws:

      Nothing.
      +
    4. +
    5. +
      any(any< Concept, T > && other);
      +

      Constructs an any from another rvalue reference.

      +

      + + + +

      +
      ++++ + + + + + + + + + + +

      Parameters:

      ++++ + + + + +

      other

      +

      The reference to copy.

      +

      The object to bind the reference to.

      +

      Throws:

      +

      Nothing. Constructs an any from another any.

      +

      Nothing.

      +
      +
    6. +
    7. +
      template<typename Concept2, typename Tag2> 
      +  any(any< Concept2, Tag2 && > && other);
      +

      Constructs an any from another rvalue reference.

      +

      + + +

      +
      ++++ + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + +

      other

      The reference to copy.

      Requires:

      +

      Concept must not refer to any non-deduced placeholder besides T.

      +

      After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

      +

      Throws:

      std::bad_alloc
      +
    8. +
    9. +
      template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > && other);
      +

      Constructs an any from another any.

      +

      + + +

      +
      ++++ + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + +

      other

      The object to bind the reference to.

      Requires:

      +

      Concept must not refer to any non-deduced placeholder besides T.

      +

      After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.

      +

      Throws:

      std::bad_alloc
      +
    10. +
    11. +
      template<typename Concept2, typename Tag2, typename Map> 
      +  any(const any< Concept2, Tag2 && > & other, 
      +      const static_binding< Map > & binding);
      +

      Constructs an any from another reference.

      +

      + + +

      +
      ++++ + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + + + + + + + +

      binding

      Specifies the mapping between the two concepts.

      other

      The reference to copy.

      Requires:

      +

      Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

      +

      After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

      +

      Throws:

      std::bad_alloc
      +
    12. +
    13. +
      template<typename Concept2, typename Tag2, typename Map> 
      +  any(any< Concept2, Tag2 > && other, const static_binding< Map > & binding);
      +

      Constructs an any from another any.

      +

      + + +

      +
      ++++ + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + + + + + + + +

      binding

      Specifies the mapping between the two concepts.

      other

      The object to bind the reference to.

      Requires:

      +

      Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.

      +

      After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.

      +

      Throws:

      std::bad_alloc
      +
    14. +
    15. +
      template<typename Concept2, typename Tag2> 
      +  any(const any< Concept2, Tag2 && > & other, 
      +      const binding< Concept > & binding);
      +

      Constructs an any from another rvalue reference.

      +

      + + + +

      +
      ++++ + + + + + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + + + + + + + +

      binding

      Specifies the bindings of placeholders to actual types.

      other

      The reference to copy.

      Requires:

      The type stored in other must match the type expected by binding.

      Postconditions:

      binding_of(*this) == binding

      Throws:

      Nothing.
      +
    16. +
    17. +
      template<typename Concept2, typename Tag2> 
      +  any(any< Concept2, Tag2 > && other, const binding< Concept > & binding);
      +

      Constructs an any from another any.

      +

      + + + +

      +
      ++++ + + + + + + + + + + + + + + + + + + +

      Parameters:

      ++++ + + + + + + + + + + +

      binding

      Specifies the bindings of placeholders to actual types.

      other

      The object to bind the reference to.

      Requires:

      The type stored in other must match the type expected by binding.

      Postconditions:

      binding_of(*this) == binding

      Throws:

      Nothing.
      +
    18. +
    19. +
      template<typename U> any & operator=(U && other);
      +

      Assigns to an any.

      +

      If an appropriate overload of assignable is not available and relaxed is in Concept, falls back on constructing from other.

      +

      +

      +
      ++++ + + + + +

      Throws:

      Whatever the assignment operator of the contained type throws. When falling back on construction, can only throw std::bad_alloc if U is an any that uses a different Concept. In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides.
      +
    20. +
    +
    +
    +
    + + + +
    +
    +
    +PrevUpHomeNext +
    + + diff --git a/doc/html/boost/type_erasure/any_cast.html b/doc/html/boost/type_erasure/any_cast.html index 1f68639856..e2e0bf519a 100644 --- a/doc/html/boost/type_erasure/any_cast.html +++ b/doc/html/boost/type_erasure/any_cast.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -65,7 +65,7 @@

    Requires:

    if arg is a pointer, T must be a pointer type.

    -

    Concept must contain typeid_<Tag>.

    +

    Concept must contain typeid_<Tag>.

    @@ -87,7 +87,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/as_param.html b/doc/html/boost/type_erasure/as_param.html index 6ae1499ad5..544a315cf6 100644 --- a/doc/html/boost/type_erasure/as_param.html +++ b/doc/html/boost/type_erasure/as_param.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -38,8 +38,8 @@ typedef unspecified type; };
    -

    Description

    -

    If T is a (cv/reference qualifed) placeholder, returns param<concept_of<Any>::type, T>, otherwise, returns T. This metafunction is intended to be used for function arguments in specializations of concept_interface.

    +

    Description

    +

    If T is a (cv/reference qualified) placeholder, returns param<concept_of<Any>::type, T>, otherwise, returns T. This metafunction is intended to be used for function arguments in specializations of concept_interface.

    See Also:

    derived, rebind_any

    @@ -56,7 +56,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/assignable.html b/doc/html/boost/type_erasure/assignable.html index 9a6913c160..018e4cbb77 100644 --- a/doc/html/boost/type_erasure/assignable.html +++ b/doc/html/boost/type_erasure/assignable.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -32,11 +32,11 @@

    Synopsis

    // In header: <boost/type_erasure/builtin.hpp>
     
    -template<typename T = _self, typename U = T> 
    +template<typename T = _self, typename U = const T&> 
     struct assignable {
     
       // public static functions
    -  static void apply(T &, const U &);
    +  static void apply(T &, U);
     };

    Description

    @@ -44,7 +44,7 @@

    assignable public static functions

    -
    1. static void apply(T & dst, const U & src);
    +
    1. static void apply(T & dst, U src);
    @@ -58,7 +58,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/binding.html b/doc/html/boost/type_erasure/binding.html index e4fd3a5827..1cbb84e142 100644 --- a/doc/html/boost/type_erasure/binding.html +++ b/doc/html/boost/type_erasure/binding.html @@ -6,9 +6,9 @@ - - - + + + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,38 +30,38 @@

    boost::type_erasure::binding

    Synopsis

    -
    // In header: <boost/type_erasure/require_match.hpp>
    +
    // In header: <boost/type_erasure/binding.hpp>
     
     template<typename Concept> 
     class binding {
     public:
       // construct/copy/destruct
    -  binding();
    -  template<typename Map> explicit binding(const Map &);
    -  template<typename Map> binding(const static_binding< Map > &);
    +  binding();
    +  template<typename Map> explicit binding(const Map &);
    +  template<typename Map> binding(const static_binding< Map > &);
       template<typename Concept2, typename Map> 
    -    binding(const binding< Concept2 > &, const Map &);
    +    binding(const binding< Concept2 > &, const Map &);
       template<typename Concept2, typename Map> 
    -    binding(const binding< Concept2 > &, const static_binding< Map > &);
    +    binding(const binding< Concept2 > &, const static_binding< Map > &);
       template<typename Placeholders, typename Map> 
    -    binding(const dynamic_binding< Placeholders > &, 
    +    binding(const dynamic_binding< Placeholders > &, 
                 const static_binding< Map > &);
     
    -  // friend functions
    -  friend bool operator==(const binding &, const binding &);
    -  friend bool operator!=(const binding &, const binding &);
    +  // friend functions
    +  friend bool operator==(const binding &, const binding &);
    +  friend bool operator!=(const binding &, const binding &);
     };
    -

    Description

    +

    Description

    Stores the binding of a Concept to a set of actual types. Concept is interpreted in the same way as with any.

    -

    +

    binding public construct/copy/destruct

    1. -
      binding();
      +
      binding();

      @@ -83,7 +83,7 @@
  • -
    template<typename Map> explicit binding(const Map &);
    +
    template<typename Map> explicit binding(const Map &);

    @@ -105,7 +105,7 @@
  • -
    template<typename Map> binding(const static_binding< Map > &);
    +
    template<typename Map> binding(const static_binding< Map > &);

    @@ -128,7 +128,7 @@
  • template<typename Concept2, typename Map> 
    -  binding(const binding< Concept2 > & other, const Map &);
    + binding(const binding< Concept2 > & other, const Map &);
  • Converts from another set of bindings.

    @@ -152,7 +152,7 @@

  • template<typename Concept2, typename Map> 
    -  binding(const binding< Concept2 > & other, const static_binding< Map > &);
    + binding(const binding< Concept2 > & other, const static_binding< Map > &);

    Converts from another set of bindings.

    @@ -176,7 +176,7 @@

  • template<typename Placeholders, typename Map> 
    -  binding(const dynamic_binding< Placeholders > & other, 
    +  binding(const dynamic_binding< Placeholders > & other, 
               const static_binding< Map > &);

    Converts from another set of bindings.

    @@ -202,11 +202,11 @@

  • -

    -binding friend functions

    +

    +binding friend functions

    1. -
      friend bool operator==(const binding & lhs, const binding & rhs);
      +
      friend bool operator==(const binding & lhs, const binding & rhs);

      @@ -228,7 +228,7 @@
  • -
    friend bool operator!=(const binding & lhs, const binding & rhs);
    +
    friend bool operator!=(const binding & lhs, const binding & rhs);

    @@ -263,7 +263,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/binding_of.html b/doc/html/boost/type_erasure/binding_of.html index 6723f79e38..327af3b143 100644 --- a/doc/html/boost/type_erasure/binding_of.html +++ b/doc/html/boost/type_erasure/binding_of.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -68,7 +68,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/call.html b/doc/html/boost/type_erasure/call.html index 25ed435779..de44cab625 100644 --- a/doc/html/boost/type_erasure/call.html +++ b/doc/html/boost/type_erasure/call.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -81,7 +81,7 @@ Example:


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/callable.html b/doc/html/boost/type_erasure/callable.html index e1b646fe3a..175eb2b8af 100644 --- a/doc/html/boost/type_erasure/callable.html +++ b/doc/html/boost/type_erasure/callable.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -62,7 +62,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/check_match.html b/doc/html/boost/type_erasure/check_match.html index ccba7872cb..ce34171450 100644 --- a/doc/html/boost/type_erasure/check_match.html +++ b/doc/html/boost/type_erasure/check_match.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -38,7 +38,7 @@ U &&... args); template<typename Op, class... U> bool check_match(const Op & f, U &&... args);
    -

    Description

    +

    Description

    If relaxed is in Concept, checks whether the arguments to f match the types specified by binding. If relaxed is not in Concept, returns true. If binding is not specified, it will be deduced from the arguments.

    @@ -52,7 +52,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/dynamic_any_cast.html b/doc/html/boost/type_erasure/dynamic_any_cast.html index 87b42e719e..5147c1e8f2 100644 --- a/doc/html/boost/type_erasure/dynamic_any_cast.html +++ b/doc/html/boost/type_erasure/dynamic_any_cast.html @@ -75,7 +75,7 @@ Example:

    Throws:

    -bad_any_cast if the concepts used by R were not previously registered via a call to register_binding. +bad_any_cast if the concepts used by R were not previously registered via a call to register_binding.
    diff --git a/doc/html/boost/type_erasure/is_placeholder.html b/doc/html/boost/type_erasure/is_placeholder.html index 6be8ff886a..e501438380 100644 --- a/doc/html/boost/type_erasure/is_placeholder.html +++ b/doc/html/boost/type_erasure/is_placeholder.html @@ -33,7 +33,7 @@
    // In header: <boost/type_erasure/is_placeholder.hpp>
     
     template<typename T> 
    -struct is_placeholder : public boost::is_base_and_derived< placeholder, T > {
    +struct is_placeholder {
     };

    Description

    diff --git a/doc/html/boost/type_erasure/istreamable.html b/doc/html/boost/type_erasure/istreamable.html index 2ccb01e77d..a5df981f38 100644 --- a/doc/html/boost/type_erasure/istreamable.html +++ b/doc/html/boost/type_erasure/istreamable.html @@ -8,7 +8,7 @@ - + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -58,7 +58,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/param.html b/doc/html/boost/type_erasure/param.html index 9475ebd88a..37e5042109 100644 --- a/doc/html/boost/type_erasure/param.html +++ b/doc/html/boost/type_erasure/param.html @@ -6,9 +6,9 @@ - - - + + + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -30,23 +30,23 @@

    boost::type_erasure::param — A wrapper to help with overload resolution for functions operating on an any.

    Synopsis

    -
    // In header: <boost/type_erasure/placeholder_of.hpp>
    +
    // In header: <boost/type_erasure/param.hpp>
     
     template<typename Concept, typename T> 
     class param {
     public:
       // construct/copy/destruct
    -  template<typename U> param(any< Concept, U > &);
    -  template<typename U> param(const any< Concept, U > &);
    -  template<typename U> param(any< Concept, U > &&);
    +  template<typename U> param(any< Concept, U > &);
    +  template<typename U> param(const any< Concept, U > &);
    +  template<typename U> param(any< Concept, U > &&);
     
    -  // public member functions
    -  any< Concept, T > get() const;
    +  // public member functions
    +  any< Concept, T > get() const;
     };
    -

    Description

    +

    Description

    The template arguments are interpreted in the same way as any.

    -

    A parameter of type param can be initialized with an any that has the same Concept and base placeholder when there exists a corresponding standard conversion for the placeholder. A conversion sequence from any<C, P> to param<C, P1> is a better conversion sequence than any<C, P> to param<C, P2> iff the corresponding placeholder standard conversion sequence from P to P1 is a better conversion sequence than P to P2.

    +

    A parameter of type param can be initialized with an any that has the same Concept and base placeholder when there exists a corresponding standard conversion for the placeholder. A conversion sequence from any<C, P> to param<C, P1> is a better conversion sequence than any<C, P> to param<C, P2> iff the corresponding placeholder standard conversion sequence from P to P1 is a better conversion sequence than P to P2.

    @@ -69,21 +69,21 @@ Example:

    -

    +

    param public construct/copy/destruct

      -
    1. template<typename U> param(any< Concept, U > & a);
    2. -
    3. template<typename U> param(const any< Concept, U > & a);
    4. -
    5. template<typename U> param(any< Concept, U > && a);
    6. +
    7. template<typename U> param(any< Concept, U > & a);
    8. +
    9. template<typename U> param(const any< Concept, U > & a);
    10. +
    11. template<typename U> param(any< Concept, U > && a);
    -

    -param public member functions

    +

    +param public member functions

    1. -
      any< Concept, T > get() const;
      +
      any< Concept, T > get() const;

      Returns the stored any.

    @@ -99,7 +99,7 @@ Example:

    [Note]

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/placeholder_of.html b/doc/html/boost/type_erasure/placeholder_of.html index f0576bfc26..6e6b3ea652 100644 --- a/doc/html/boost/type_erasure/placeholder_of.html +++ b/doc/html/boost/type_erasure/placeholder_of.html @@ -7,8 +7,8 @@ - - + + @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -38,7 +38,7 @@ typedef unspecified type; };
    -

    Description

    +

    Description

    A metafunction returning the (const/reference qualified) placeholder corresponding to an any. It will also work for all bases of any, so it can be applied to the Base parameter of concept_interface.

    @@ -52,7 +52,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/rebind_any.html b/doc/html/boost/type_erasure/rebind_any.html index a33ba62db0..1195b4713f 100644 --- a/doc/html/boost/type_erasure/rebind_any.html +++ b/doc/html/boost/type_erasure/rebind_any.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    @@ -38,12 +38,13 @@ typedef unspecified type; };
    -

    Description

    +

    Description

    A metafunction that changes the placeholder of an any. If T is not a placeholder, returns T unchanged. This class is intended to be used in concept_interface to deduce the argument types from the arguments of the concept.

    rebind_any<any<Concept>, _a>::type -> any<Concept, _a>
     rebind_any<any<Concept>, _b&>::type -> any<Concept, _b&>
    +rebind_any<any<Concept>, _c&&>::type -> any<Concept, _c&&>
     rebind_any<any<Concept>, int>::type -> int
     

    See Also:

    @@ -62,7 +63,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost/type_erasure/register_binding.html b/doc/html/boost/type_erasure/register_binding.html index 2e7a024b18..30b2b2f8c1 100644 --- a/doc/html/boost/type_erasure/register_binding.html +++ b/doc/html/boost/type_erasure/register_binding.html @@ -38,7 +38,7 @@ template<typename Concept, typename T> void register_binding();

    Description

    -

    Registers a model of a concept to allow downcasting any via dynamic_any_cast.

    +

    Registers a model of a concept to allow downcasting any via dynamic_any_cast.

    diff --git a/doc/html/boost/type_erasure/relaxed.html b/doc/html/boost/type_erasure/relaxed.html index d5c59e478e..75c3745209 100644 --- a/doc/html/boost/type_erasure/relaxed.html +++ b/doc/html/boost/type_erasure/relaxed.html @@ -8,7 +8,7 @@ - +
    @@ -21,7 +21,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -41,7 +41,7 @@

    In detail, relaxed enables the following:

    • A raw value can be assigned to an any. This will replace the value stored by the any. (But note that if assignable is present, it takes priority.)

    • -
    • copy assignment of any uses the copy constructor if it can't use assignable (either because assignable is missing, or because the stored types do not match).

    • +
    • assignment of any uses the constructor if it can't use assignable (either because assignable is missing, or because the stored types do not match).

    • default construction of any is allowed and creates a null any.

    • equality_comparable: If the types do not match, it will return false.

    • less_than_comparable: If the types do not match, the ordering will be according to std::type_info::before.

    • @@ -61,7 +61,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/type_erasure/require_match.html b/doc/html/boost/type_erasure/require_match.html index 3d7f5d9559..7a5cf4cfb5 100644 --- a/doc/html/boost/type_erasure/require_match.html +++ b/doc/html/boost/type_erasure/require_match.html @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@
      -PrevUpHomeNext +PrevUpHomeNext
      @@ -39,7 +39,7 @@ template<typename Op, class... U> void require_match(const Op & f, U &&... args);
      -

      Description

      +

      Description

      Checks that the actual types stored in all the any arguments match the types specified by binding. If they do not match then,

      • If relaxed is in Concept, throws bad_function_call.

      • @@ -72,7 +72,7 @@
        -PrevUpHomeNext +PrevUpHomeNext
        diff --git a/doc/html/boost/type_erasure/static_binding.html b/doc/html/boost/type_erasure/static_binding.html index 123b3843db..ea457fbd93 100644 --- a/doc/html/boost/type_erasure/static_binding.html +++ b/doc/html/boost/type_erasure/static_binding.html @@ -34,6 +34,8 @@ template<typename Map> struct static_binding { + // types + typedef Map map_type; };

      Description

      diff --git a/doc/html/boost/type_erasure/typeid_.html b/doc/html/boost/type_erasure/typeid_.html index 07a8aace8a..86e8623c2a 100644 --- a/doc/html/boost/type_erasure/typeid_.html +++ b/doc/html/boost/type_erasure/typeid_.html @@ -6,9 +6,9 @@ - - - + + + @@ -21,7 +21,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      @@ -30,13 +30,13 @@

      boost::type_erasure::typeid_

      Synopsis

      -
      // In header: <boost/type_erasure/check_match.hpp>
      +
      // In header: <boost/type_erasure/builtin.hpp>
       
      -template<typename T> 
      +template<typename T = _self> 
       struct typeid_ {
       };
      -

      Description

      +

      Description

      Enables runtime type information. This is required if you want to use any_cast or typeid_of.

      @@ -59,7 +59,7 @@

      -PrevUpHomeNext +PrevUpHomeNext
      diff --git a/doc/html/boost/typeindex/hash_value.html b/doc/html/boost/typeindex/hash_value.html index 5d53ca69ad..ce32b85061 100644 --- a/doc/html/boost/typeindex/hash_value.html +++ b/doc/html/boost/typeindex/hash_value.html @@ -43,7 +43,7 @@ [Note] Note -

      <boost/functional/hash.hpp> has to be included if this function is used.

      +

      <boost/container_hash/hash.hpp> has to be included if this function is used.

      diff --git a/doc/html/boost/typeindex/type_index_facade.html b/doc/html/boost/typeindex/type_index_facade.html index 0cbfe550ac..2c94f7efcc 100644 --- a/doc/html/boost/typeindex/type_index_facade.html +++ b/doc/html/boost/typeindex/type_index_facade.html @@ -173,7 +173,7 @@ [Note] Note -

      Derived class header must include <boost/functional/hash.hpp>, unless this function is redefined in Derived class to not use boost::hash_range().

      +

      Derived class header must include <boost/container_hash/hash.hpp>, unless this function is redefined in Derived class to not use boost::hash_range().

      diff --git a/doc/html/boost/units/absolute.html b/doc/html/boost/units/absolute.html index b5d2ce76aa..04941d3b3a 100644 --- a/doc/html/boost/units/absolute.html +++ b/doc/html/boost/units/absolute.html @@ -43,12 +43,12 @@ absolute(); absolute(const value_type &); absolute(const this_type &); - this_type & operator=(const this_type &); + BOOST_CXX14_CONSTEXPR this_type & operator=(const this_type &); // public member functions - const value_type & value() const; - const this_type & operator+=(const value_type &); - const this_type & operator-=(const value_type &); + BOOST_CONSTEXPR const value_type & value() const; + BOOST_CXX14_CONSTEXPR const this_type & operator+=(const value_type &); + BOOST_CXX14_CONSTEXPR const this_type & operator-=(const value_type &); };

      Description

      @@ -62,16 +62,16 @@
    • absolute();
    • absolute(const value_type & val);
    • absolute(const this_type & source);
    • -
    • this_type & operator=(const this_type & source);
    • +
    • BOOST_CXX14_CONSTEXPR this_type & operator=(const this_type & source);
    • absolute public member functions

        -
      1. const value_type & value() const;
      2. -
      3. const this_type & operator+=(const value_type & val);
      4. -
      5. const this_type & operator-=(const value_type & val);
      6. +
      7. BOOST_CONSTEXPR const value_type & value() const;
      8. +
      9. BOOST_CXX14_CONSTEXPR const this_type & operator+=(const value_type & val);
      10. +
      11. BOOST_CXX14_CONSTEXPR const this_type & operator-=(const value_type & val);
      diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_10_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_10_1_1_1.html index 3fba04f1d1..5afaf481ac 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_10_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_10_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::inch_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_11_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_11_1_1_1.html index 39eada609c..552596c344 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_11_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_11_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::league_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
  • diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_12_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_12_1_1_1.html index 67eafe16d2..abf94f8b16 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_12_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_12_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::mile_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_13_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_13_1_1_1.html index 4e33581462..3f329222d4 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_13_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_13_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::ounce_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_16_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_16_1_1_1.html index 1bc8a7ca75..466f126451 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_16_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_16_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::quart_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_17_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_17_1_1_1.html index 6a10dd2494..1a06ed9b56 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_17_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_17_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::quarter_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_18_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_18_1_1_1.html index 88897627d7..7e11117f93 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_18_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_18_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::stone_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_19_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_19_1_1_1.html index a9a4eefdc0..b02a791cd8 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_19_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_19_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::thou_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_5_20_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_5_20_1_1_1.html index 36ac9b4082..9d5d0e9e95 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_5_20_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_5_20_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::ton_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_6_10_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_6_10_1_1_1.html index 6a2090bed5..aeb3e163bb 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_6_10_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_6_10_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::hour_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_6_13_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_6_13_1_1_1.html index 2df2b8cf69..f0449379af 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_6_13_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_6_13_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::micron_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_6_14_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_6_14_1_1_1.html index 432ca3f7c1..8bcde05806 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_6_14_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_6_14_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::minute_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_6_16_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_6_16_1_1_1.html index 3d9a4f9c1b..60c4db5e2a 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_6_16_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_6_16_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::nautical_mile_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_6_17_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_6_17_1_1_1.html index 6dc5b1c11d..c846dfea69 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_6_17_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_6_17_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::ton_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_6_19_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_6_19_1_1_1.html index e3ceecd0b6..06778de8e1 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_6_19_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_6_19_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::year_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_10_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_10_1_1_1.html index 9243e0b459..cbd5a34329 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_10_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_10_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::hundredweight_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_11_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_11_1_1_1.html index 0588387d0d..550f67ef6a 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_11_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_11_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::inch_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_12_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_12_1_1_1.html index 7d2319fc4b..8abf4c5e61 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_12_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_12_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::mil_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_13_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_13_1_1_1.html index 367b028c78..0c1a0c139c 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_13_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_13_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::mile_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_14_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_14_1_1_1.html index fae0a275f5..dbaebddb8a 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_14_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_14_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::minim_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_15_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_15_1_1_1.html index 44657ed006..2ff4cc287c 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_15_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_15_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::ounce_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_19_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_19_1_1_1.html index 4c590f2445..921e9f26bc 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_19_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_19_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::quart_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_20_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_20_1_1_1.html index 2bc31f6e4b..d71d25eed1 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_20_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_20_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::tablespoon_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_21_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_21_1_1_1.html index 4b120e0cdc..c830271e83 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_21_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_21_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::teaspoon_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/ba_1_3_44_10_10_9_22_1_1_1.html b/doc/html/boost/units/ba_1_3_44_10_10_9_22_1_1_1.html index 1d2672af40..ed3dd61993 100644 --- a/doc/html/boost/units/ba_1_3_44_10_10_9_22_1_1_1.html +++ b/doc/html/boost/units/ba_1_3_44_10_10_9_22_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::ton_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_2_2_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_2_2_1_1_1.html index 4f45774b67..b8aa95de39 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_2_2_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_2_2_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<angle::arcminute_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_2_3_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_2_3_1_1_1.html index bad3461d51..df997235e4 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_2_3_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_2_3_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<angle::arcsecond_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_2_7_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_2_7_1_1_1.html index c39ebe4b3a..47fee1f16b 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_2_7_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_2_7_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<angle::revolution_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_3_3_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_3_3_1_1_1.html index 4dd5dc93db..58a22227df 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_3_3_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_3_3_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<astronomical::light_day_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_3_4_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_3_4_1_1_1.html index 20a83b7b62..215513547c 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_3_4_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_3_4_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<astronomical::light_hour_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_3_5_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_3_5_1_1_1.html index ec8b7942f2..118208110a 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_3_5_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_3_5_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<astronomical::light_minute_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_3_7_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_3_7_1_1_1.html index f952d2f161..23a6c82c72 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_3_7_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_3_7_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<astronomical::light_year_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_5_2_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_5_2_1_1_1.html index e4dd8ba3c2..134722a6ed 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_5_2_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_5_2_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::drachm_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_5_3_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_5_3_1_1_1.html index 6bbfab0064..35467c809d 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_5_3_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_5_3_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::fluid_ounce_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_5_4_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_5_4_1_1_1.html index 5eacd699fb..958d788d10 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_5_4_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_5_4_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::foot_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_5_5_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_5_5_1_1_1.html index 299b98f903..deddf77223 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_5_5_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_5_5_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::furlong_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_5_6_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_5_6_1_1_1.html index f8207eeef1..0fbc72f81c 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_5_6_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_5_6_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::gallon_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_5_7_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_5_7_1_1_1.html index d0ab01024e..611e71e4f5 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_5_7_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_5_7_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::gill_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_5_8_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_5_8_1_1_1.html index f5d0832847..0e029c6383 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_5_8_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_5_8_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::grain_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_5_9_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_5_9_1_1_1.html index 38f563f1cc..2ad08ad62a 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_5_9_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_5_9_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<imperial::hundredweight_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_6_2_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_6_2_1_1_1.html index bee4b32d80..f8278af814 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_6_2_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_6_2_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::angstrom_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_6_7_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_6_7_1_1_1.html index 1549bc36a3..e3489e2507 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_6_7_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_6_7_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::day_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_6_8_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_6_8_1_1_1.html index 51481f2b2d..04b946c381 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_6_8_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_6_8_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<metric::fermi_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_9_2_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_9_2_1_1_1.html index daebd0b5df..d3eb23dca1 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_9_2_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_9_2_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::cup_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_9_3_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_9_3_1_1_1.html index 815d8620c5..d47c601d18 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_9_3_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_9_3_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::dram_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_9_4_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_9_4_1_1_1.html index 4c7323f811..ddb0cf4a51 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_9_4_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_9_4_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::fluid_dram_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_9_5_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_9_5_1_1_1.html index 5a31b9ad01..a0b5a7574c 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_9_5_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_9_5_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::fluid_ounce_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_9_6_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_9_6_1_1_1.html index 50e14e3795..9d7ba31546 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_9_6_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_9_6_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::foot_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_9_7_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_9_7_1_1_1.html index c2d8c8b368..54b95055f8 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_9_7_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_9_7_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::gallon_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_9_8_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_9_8_1_1_1.html index 98f8d023d8..2f4a1687da 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_9_8_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_9_8_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::gill_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/bas_1_3_44_10_10_9_9_1_1_1.html b/doc/html/boost/units/bas_1_3_44_10_10_9_9_1_1_1.html index a70656d6a7..36abfda3b7 100644 --- a/doc/html/boost/units/bas_1_3_44_10_10_9_9_1_1_1.html +++ b/doc/html/boost/units/bas_1_3_44_10_10_9_9_1_1_1.html @@ -36,8 +36,8 @@ struct base_unit_info<us::grain_base_unit> { // public static functions - static const char * name(); - static const char * symbol(); + static BOOST_CONSTEXPR const char * name(); + static BOOST_CONSTEXPR const char * symbol(); };

    Description

    @@ -45,8 +45,8 @@

    base_unit_info public static functions

      -
    1. static const char * name();
    2. -
    3. static const char * symbol();
    4. +
    5. static BOOST_CONSTEXPR const char * name();
    6. +
    7. static BOOST_CONSTEXPR const char * symbol();
    diff --git a/doc/html/boost/units/conversion_helper.html b/doc/html/boost/units/conversion_helper.html index 45a95f3449..0e1155f22e 100644 --- a/doc/html/boost/units/conversion_helper.html +++ b/doc/html/boost/units/conversion_helper.html @@ -36,7 +36,7 @@ struct conversion_helper { // public static functions - static To convert(const From &); + static BOOST_CONSTEXPR To convert(const From &); };

    Description

    @@ -58,7 +58,7 @@

    conversion_helper public static functions

    -
    1. static To convert(const From &);
    +
    1. static BOOST_CONSTEXPR To convert(const From &);
    diff --git a/doc/html/boost/units/pow_1_3_44_10_2_5_3_1_29.html b/doc/html/boost/units/pow_1_3_44_10_2_5_3_1_29.html index ecf316ce4c..fa692a4dcc 100644 --- a/doc/html/boost/units/pow_1_3_44_10_2_5_3_1_29.html +++ b/doc/html/boost/units/pow_1_3_44_10_2_5_3_1_29.html @@ -34,7 +34,7 @@ template<typename S, typename Y> - quantity< BOOST_UNITS_DIMENSIONLESS_UNIT(S), Y > + BOOST_CONSTEXPR quantity< BOOST_UNITS_DIMENSIONLESS_UNIT(S), Y > pow(const quantity< BOOST_UNITS_DIMENSIONLESS_UNIT(S), Y > & q1, const quantity< BOOST_UNITS_DIMENSIONLESS_UNIT(S), Y > & q2);
    diff --git a/doc/html/boost/units/power_1_3_44_10_2_42_1_1_3.html b/doc/html/boost/units/power_1_3_44_10_2_42_1_1_3.html index 522ceda57d..d02a34f5f4 100644 --- a/doc/html/boost/units/power_1_3_44_10_2_42_1_1_3.html +++ b/doc/html/boost/units/power_1_3_44_10_2_42_1_1_3.html @@ -38,14 +38,14 @@ typedef unit< typename static_power< Dim, static_rational< N, D > >::type, typename static_power< System, static_rational< N, D > >::type > type; // public static functions - static type value(const unit< Dim, System > &); + static BOOST_CONSTEXPR type value(const unit< Dim, System > &); };

    Description

    power_typeof_helper public static functions

    -
    1. static type value(const unit< Dim, System > &);
    +
    1. static BOOST_CONSTEXPR type value(const unit< Dim, System > &);
    diff --git a/doc/html/boost/units/power_typeof_helper.html b/doc/html/boost/units/power_typeof_helper.html index b939369bed..19993c8fc6 100644 --- a/doc/html/boost/units/power_typeof_helper.html +++ b/doc/html/boost/units/power_typeof_helper.html @@ -38,7 +38,7 @@ typedef unspecified type; // specifies the result type // public static functions - static type value(const BaseType &); + static BOOST_CONSTEXPR type value(const BaseType &); };

    Description

    @@ -47,7 +47,7 @@

    power_typeof_helper public static functions

    1. -
      static type value(const BaseType & base);
      Carries out the runtime calculation.
    +
    static BOOST_CONSTEXPR type value(const BaseType & base);
    Carries out the runtime calculation.
    diff --git a/doc/html/boost/units/quant_1_3_44_10_2_36_1_1_2.html b/doc/html/boost/units/quant_1_3_44_10_2_36_1_1_2.html index 66dcf299c4..c6bac21dfa 100644 --- a/doc/html/boost/units/quant_1_3_44_10_2_36_1_1_2.html +++ b/doc/html/boost/units/quant_1_3_44_10_2_36_1_1_2.html @@ -61,22 +61,24 @@ template<typename System2, typename Y2> explicit quantity(const quantity< unit< dimensionless_type, System2 >, Y2 > &, unspecified = 0); - this_type & operator=(const this_type &); + BOOST_CXX14_CONSTEXPR this_type & operator=(const this_type &); template<typename YY> - this_type & operator=(const quantity< unit< dimension_type, system_type >, YY > &); + BOOST_CXX14_CONSTEXPR this_type & + operator=(const quantity< unit< dimension_type, system_type >, YY > &); template<typename System2> - this_type & operator=(const quantity< BOOST_UNITS_DIMENSIONLESS_UNIT(System2), Y > &); + BOOST_CXX14_CONSTEXPR this_type & + operator=(const quantity< BOOST_UNITS_DIMENSIONLESS_UNIT(System2), Y > &); // public member functions - operator value_type() const; - const value_type & value() const; - this_type & operator+=(const this_type &); - this_type & operator-=(const this_type &); - this_type & operator*=(const value_type &); - this_type & operator/=(const value_type &); + BOOST_CONSTEXPR operator value_type() const; + BOOST_CONSTEXPR const value_type & value() const; + BOOST_CXX14_CONSTEXPR this_type & operator+=(const this_type &); + BOOST_CXX14_CONSTEXPR this_type & operator-=(const this_type &); + BOOST_CXX14_CONSTEXPR this_type & operator*=(const value_type &); + BOOST_CXX14_CONSTEXPR this_type & operator/=(const value_type &); // public static functions - static this_type from_value(const value_type &); + static BOOST_CONSTEXPR this_type from_value(const value_type &); };

    Description

    @@ -113,13 +115,15 @@ unspecified = 0);

    conversion between different unit systems is explicit when the units are not equivalent.

    -
  • this_type & operator=(const this_type & source);
  • +
  • BOOST_CXX14_CONSTEXPR this_type & operator=(const this_type & source);
  • template<typename YY> 
    -  this_type & operator=(const quantity< unit< dimension_type, system_type >, YY > & source);
    implicit assignment between value types is allowed if allowed for value types themselves
  • + BOOST_CXX14_CONSTEXPR this_type & + operator=(const quantity< unit< dimension_type, system_type >, YY > & source);implicit assignment between value types is allowed if allowed for value types themselves
  • template<typename System2> 
    -  this_type & operator=(const quantity< BOOST_UNITS_DIMENSIONLESS_UNIT(System2), Y > & source);
    implicit assignment between different unit systems is allowed
  • + BOOST_CXX14_CONSTEXPR this_type & + operator=(const quantity< BOOST_UNITS_DIMENSIONLESS_UNIT(System2), Y > & source);implicit assignment between different unit systems is allowed
    @@ -127,24 +131,24 @@ quantity public member functions
    1. -
      operator value_type() const;
      implicit conversion to value_type is allowed
    2. +
      BOOST_CONSTEXPR operator value_type() const;
      implicit conversion to value_type is allowed
    3. -
      const value_type & value() const;
      constant accessor to value

      can add a quantity of the same type if add_typeof_helper<value_type,value_type>::type is convertible to value_type

      +
      BOOST_CONSTEXPR const value_type & value() const;
      constant accessor to value

      can add a quantity of the same type if add_typeof_helper<value_type,value_type>::type is convertible to value_type

    4. -
      this_type & operator+=(const this_type & source);
      can subtract a quantity of the same type if subtract_typeof_helper<value_type,value_type>::type is convertible to value_type
    5. +
      BOOST_CXX14_CONSTEXPR this_type & operator+=(const this_type & source);
      can subtract a quantity of the same type if subtract_typeof_helper<value_type,value_type>::type is convertible to value_type
    6. -
      this_type & operator-=(const this_type & source);
      can multiply a quantity by a scalar value_type if multiply_typeof_helper<value_type,value_type>::type is convertible to value_type
    7. +
      BOOST_CXX14_CONSTEXPR this_type & operator-=(const this_type & source);
      can multiply a quantity by a scalar value_type if multiply_typeof_helper<value_type,value_type>::type is convertible to value_type
    8. -
      this_type & operator*=(const value_type & val);
      can divide a quantity by a scalar value_type if divide_typeof_helper<value_type,value_type>::type is convertible to value_type
    9. -
    10. this_type & operator/=(const value_type & val);
    11. +
      BOOST_CXX14_CONSTEXPR this_type & operator*=(const value_type & val);
      can divide a quantity by a scalar value_type if divide_typeof_helper<value_type,value_type>::type is convertible to value_type +
    12. BOOST_CXX14_CONSTEXPR this_type & operator/=(const value_type & val);

    quantity public static functions

    1. -
      static this_type from_value(const value_type & val);
      Construct quantity directly from value_type.
    +
    static BOOST_CONSTEXPR this_type from_value(const value_type & val);
    Construct quantity directly from value_type.
    diff --git a/doc/html/boost/units/quantity.html b/doc/html/boost/units/quantity.html index c2b9a82c35..c931414196 100644 --- a/doc/html/boost/units/quantity.html +++ b/doc/html/boost/units/quantity.html @@ -53,29 +53,34 @@ template<typename Unit2, typename YY> quantity(const quantity< Unit2, YY > &, unspecified = 0); explicit quantity(const value_type &, int); - this_type & operator=(const this_type &); - template<typename YY> this_type & operator=(const quantity< Unit, YY > &); + BOOST_CXX14_CONSTEXPR this_type & operator=(const this_type &); + template<typename YY> + BOOST_CXX14_CONSTEXPR this_type & operator=(const quantity< Unit, YY > &); template<typename Unit2, typename YY> - this_type & operator=(const quantity< Unit2, YY > &); + BOOST_CXX14_CONSTEXPR this_type & operator=(const quantity< Unit2, YY > &); // private member functions BOOST_MPL_ASSERT_NOT(unspecified); // public member functions - const value_type & value() const; + BOOST_CONSTEXPR const value_type & value() const; template<typename Unit2, typename YY> - this_type & operator+=(const quantity< Unit2, YY > &); + BOOST_CXX14_CONSTEXPR this_type & + operator+=(const quantity< Unit2, YY > &); template<typename Unit2, typename YY> - this_type & operator-=(const quantity< Unit2, YY > &); + BOOST_CXX14_CONSTEXPR this_type & + operator-=(const quantity< Unit2, YY > &); template<typename Unit2, typename YY> - this_type & operator*=(const quantity< Unit2, YY > &); + BOOST_CXX14_CONSTEXPR this_type & + operator*=(const quantity< Unit2, YY > &); template<typename Unit2, typename YY> - this_type & operator/=(const quantity< Unit2, YY > &); - this_type & operator*=(const value_type &); - this_type & operator/=(const value_type &); + BOOST_CXX14_CONSTEXPR this_type & + operator/=(const quantity< Unit2, YY > &); + BOOST_CXX14_CONSTEXPR this_type & operator*=(const value_type &); + BOOST_CXX14_CONSTEXPR this_type & operator/=(const value_type &); // public static functions - static this_type from_value(const value_type &); + static BOOST_CONSTEXPR this_type from_value(const value_type &); };

    Description

    @@ -101,13 +106,15 @@
    template<typename Unit2, typename YY> 
       quantity(const quantity< Unit2, YY > & source, unspecified = 0);
    implicit conversion between different unit systems is allowed if each fundamental dimension is implicitly convertible
  • explicit quantity(const value_type & val, int);
  • -
  • this_type & operator=(const this_type & source);
  • +
  • BOOST_CXX14_CONSTEXPR this_type & operator=(const this_type & source);
  • template<typename YY> 
    -  this_type & operator=(const quantity< Unit, YY > & source);
    implicit assignment between value types is allowed if allowed for value types themselves
  • + BOOST_CXX14_CONSTEXPR this_type & + operator=(const quantity< Unit, YY > & source);implicit assignment between value types is allowed if allowed for value types themselves
  • template<typename Unit2, typename YY> 
    -  this_type & operator=(const quantity< Unit2, YY > & source);
    implicit assignment between different unit systems is allowed if each fundamental dimension is implicitly convertible
  • + BOOST_CXX14_CONSTEXPR this_type & + operator=(const quantity< Unit2, YY > & source);implicit assignment between different unit systems is allowed if each fundamental dimension is implicitly convertible
    @@ -120,28 +127,32 @@ quantity public member functions
    1. -
      const value_type & value() const;
      constant accessor to value

      can add a quantity of the same type if add_typeof_helper<value_type,value_type>::type is convertible to value_type

      +
      BOOST_CONSTEXPR const value_type & value() const;
      constant accessor to value

      can add a quantity of the same type if add_typeof_helper<value_type,value_type>::type is convertible to value_type

    2. template<typename Unit2, typename YY> 
      -  this_type & operator+=(const quantity< Unit2, YY > & source);
      can subtract a quantity of the same type if subtract_typeof_helper<value_type,value_type>::type is convertible to value_type
    3. + BOOST_CXX14_CONSTEXPR this_type & + operator+=(const quantity< Unit2, YY > & source);can subtract a quantity of the same type if subtract_typeof_helper<value_type,value_type>::type is convertible to value_type
    4. template<typename Unit2, typename YY> 
      -  this_type & operator-=(const quantity< Unit2, YY > & source);
    5. + BOOST_CXX14_CONSTEXPR this_type & + operator-=(const quantity< Unit2, YY > & source);
    6. template<typename Unit2, typename YY> 
      -  this_type & operator*=(const quantity< Unit2, YY > & source);
    7. + BOOST_CXX14_CONSTEXPR this_type & + operator*=(const quantity< Unit2, YY > & source);
    8. template<typename Unit2, typename YY> 
      -  this_type & operator/=(const quantity< Unit2, YY > & source);
      can multiply a quantity by a scalar value_type if multiply_typeof_helper<value_type,value_type>::type is convertible to value_type
    9. + BOOST_CXX14_CONSTEXPR this_type & + operator/=(const quantity< Unit2, YY > & source);can multiply a quantity by a scalar value_type if multiply_typeof_helper<value_type,value_type>::type is convertible to value_type
    10. -
      this_type & operator*=(const value_type & source);
      can divide a quantity by a scalar value_type if divide_typeof_helper<value_type,value_type>::type is convertible to value_type
    11. -
    12. this_type & operator/=(const value_type & source);
    13. +
      BOOST_CXX14_CONSTEXPR this_type & operator*=(const value_type & source);
      can divide a quantity by a scalar value_type if divide_typeof_helper<value_type,value_type>::type is convertible to value_type +
    14. BOOST_CXX14_CONSTEXPR this_type & operator/=(const value_type & source);

    quantity public static functions

    1. -
      static this_type from_value(const value_type & val);
      Construct quantity directly from value_type (potentially dangerous).
    +
    static BOOST_CONSTEXPR this_type from_value(const value_type & val);
    Construct quantity directly from value_type (potentially dangerous).

    Specializations

    diff --git a/doc/html/boost/units/root__1_3_44_10_2_42_1_1_4.html b/doc/html/boost/units/root__1_3_44_10_2_42_1_1_4.html index bfe27b2815..e2f705a9e6 100644 --- a/doc/html/boost/units/root__1_3_44_10_2_42_1_1_4.html +++ b/doc/html/boost/units/root__1_3_44_10_2_42_1_1_4.html @@ -38,14 +38,14 @@ typedef unit< typename static_root< Dim, static_rational< N, D > >::type, typename static_root< System, static_rational< N, D > >::type > type; // public static functions - static type value(const unit< Dim, System > &); + static BOOST_CONSTEXPR type value(const unit< Dim, System > &); };

    Description

    root_typeof_helper public static functions

    -
    1. static type value(const unit< Dim, System > &);
    +
    1. static BOOST_CONSTEXPR type value(const unit< Dim, System > &);
    diff --git a/doc/html/boost/units/root_typeof_helper.html b/doc/html/boost/units/root_typeof_helper.html index 487e201ef3..06c283c8ff 100644 --- a/doc/html/boost/units/root_typeof_helper.html +++ b/doc/html/boost/units/root_typeof_helper.html @@ -38,7 +38,7 @@ typedef unspecified type; // specifies the result type // public static functions - static type value(const Radicand &); + static BOOST_CONSTEXPR type value(const Radicand &); };

    Description

    @@ -47,7 +47,7 @@

    root_typeof_helper public static functions

    1. -
      static type value(const Radicand & base);
      Carries out the runtime calculation.
    +
    static BOOST_CONSTEXPR type value(const Radicand & base);
    Carries out the runtime calculation.
    diff --git a/doc/html/boost/units/scale.html b/doc/html/boost/units/scale.html index f9a16fdf8a..60a8397bde 100644 --- a/doc/html/boost/units/scale.html +++ b/doc/html/boost/units/scale.html @@ -39,10 +39,10 @@ typedef double value_type; // public static functions - static value_type value(); + static BOOST_CONSTEXPR value_type value(); // public data members - static const long base; + BOOST_STATIC_CONSTEXPR long base; };

    Description

    @@ -50,7 +50,7 @@

    scale public static functions

    -
    1. static value_type value();
    +
    1. static BOOST_CONSTEXPR value_type value();
    diff --git a/doc/html/boost/units/static_rational.html b/doc/html/boost/units/static_rational.html index d21c5b0253..fccc4b4574 100644 --- a/doc/html/boost/units/static_rational.html +++ b/doc/html/boost/units/static_rational.html @@ -43,12 +43,12 @@ static_rational(); // public static functions - static integer_type numerator(); - static integer_type denominator(); + static BOOST_CONSTEXPR integer_type numerator(); + static BOOST_CONSTEXPR integer_type denominator(); // public data members - static const integer_type Numerator; - static const integer_type Denominator; + BOOST_STATIC_CONSTEXPR integer_type Numerator; + BOOST_STATIC_CONSTEXPR integer_type Denominator; };

    Description

    @@ -74,8 +74,8 @@

    static_rational public static functions

      -
    1. static integer_type numerator();
    2. -
    3. static integer_type denominator();
    4. +
    5. static BOOST_CONSTEXPR integer_type numerator();
    6. +
    7. static BOOST_CONSTEXPR integer_type denominator();
    diff --git a/doc/html/boost/units/unit.html b/doc/html/boost/units/unit.html index 8a33370828..f8d48a9f7e 100644 --- a/doc/html/boost/units/unit.html +++ b/doc/html/boost/units/unit.html @@ -44,7 +44,7 @@ // construct/copy/destruct unit(); unit(const this_type &); - this_type & operator=(const this_type &); + BOOST_CXX14_CONSTEXPR this_type & operator=(const this_type &); };

    Description

    @@ -57,7 +57,7 @@
    1. unit();
    2. unit(const this_type &);
    3. -
    4. this_type & operator=(const this_type &);
    5. +
    6. BOOST_CXX14_CONSTEXPR this_type & operator=(const this_type &);
    diff --git a/doc/html/boost_asio.html b/doc/html/boost_asio.html index 07dac1028a..fa60f7881e 100644 --- a/doc/html/boost_asio.html +++ b/doc/html/boost_asio.html @@ -25,7 +25,7 @@

    Christopher Kohlhoff

    -
    +

    Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -82,7 +82,7 @@

    - +

    Last revised: December 14, 2017 at 00:01:04 GMT

    Last revised: April 11, 2018 at 14:03:06 GMT


    diff --git a/doc/html/boost_asio/example/cpp03/allocation/server.cpp b/doc/html/boost_asio/example/cpp03/allocation/server.cpp index cb4cbcd472..4c4bbf5b0f 100644 --- a/doc/html/boost_asio/example/cpp03/allocation/server.cpp +++ b/doc/html/boost_asio/example/cpp03/allocation/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/buffers/reference_counted.cpp b/doc/html/boost_asio/example/cpp03/buffers/reference_counted.cpp index 81128f5986..f62b6bc16c 100644 --- a/doc/html/boost_asio/example/cpp03/buffers/reference_counted.cpp +++ b/doc/html/boost_asio/example/cpp03/buffers/reference_counted.cpp @@ -2,7 +2,7 @@ // reference_counted.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/chat/chat_client.cpp b/doc/html/boost_asio/example/cpp03/chat/chat_client.cpp index e37dfe4b57..9c60e92a5c 100644 --- a/doc/html/boost_asio/example/cpp03/chat/chat_client.cpp +++ b/doc/html/boost_asio/example/cpp03/chat/chat_client.cpp @@ -2,7 +2,7 @@ // chat_client.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/chat/chat_message.hpp b/doc/html/boost_asio/example/cpp03/chat/chat_message.hpp index 75d31ab993..942b480a19 100644 --- a/doc/html/boost_asio/example/cpp03/chat/chat_message.hpp +++ b/doc/html/boost_asio/example/cpp03/chat/chat_message.hpp @@ -2,7 +2,7 @@ // chat_message.hpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/chat/chat_server.cpp b/doc/html/boost_asio/example/cpp03/chat/chat_server.cpp index 903b568bce..e5d79019e1 100644 --- a/doc/html/boost_asio/example/cpp03/chat/chat_server.cpp +++ b/doc/html/boost_asio/example/cpp03/chat/chat_server.cpp @@ -2,7 +2,7 @@ // chat_server.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/chat/posix_chat_client.cpp b/doc/html/boost_asio/example/cpp03/chat/posix_chat_client.cpp index 40844c94e4..994be59bd9 100644 --- a/doc/html/boost_asio/example/cpp03/chat/posix_chat_client.cpp +++ b/doc/html/boost_asio/example/cpp03/chat/posix_chat_client.cpp @@ -2,7 +2,7 @@ // posix_chat_client.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/echo/async_tcp_echo_server.cpp b/doc/html/boost_asio/example/cpp03/echo/async_tcp_echo_server.cpp index f0a672dde6..9afc46541b 100644 --- a/doc/html/boost_asio/example/cpp03/echo/async_tcp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp03/echo/async_tcp_echo_server.cpp @@ -2,7 +2,7 @@ // async_tcp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/echo/async_udp_echo_server.cpp b/doc/html/boost_asio/example/cpp03/echo/async_udp_echo_server.cpp index bdcd4f785b..5723d28011 100644 --- a/doc/html/boost_asio/example/cpp03/echo/async_udp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp03/echo/async_udp_echo_server.cpp @@ -2,7 +2,7 @@ // async_udp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/echo/blocking_tcp_echo_client.cpp b/doc/html/boost_asio/example/cpp03/echo/blocking_tcp_echo_client.cpp index 1def9d0bc0..74b28106bb 100644 --- a/doc/html/boost_asio/example/cpp03/echo/blocking_tcp_echo_client.cpp +++ b/doc/html/boost_asio/example/cpp03/echo/blocking_tcp_echo_client.cpp @@ -2,7 +2,7 @@ // blocking_tcp_echo_client.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/echo/blocking_tcp_echo_server.cpp b/doc/html/boost_asio/example/cpp03/echo/blocking_tcp_echo_server.cpp index c4acbe4e15..28846129fc 100644 --- a/doc/html/boost_asio/example/cpp03/echo/blocking_tcp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp03/echo/blocking_tcp_echo_server.cpp @@ -2,7 +2,7 @@ // blocking_tcp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/echo/blocking_udp_echo_client.cpp b/doc/html/boost_asio/example/cpp03/echo/blocking_udp_echo_client.cpp index 3b1067a03e..71d503a3da 100644 --- a/doc/html/boost_asio/example/cpp03/echo/blocking_udp_echo_client.cpp +++ b/doc/html/boost_asio/example/cpp03/echo/blocking_udp_echo_client.cpp @@ -2,7 +2,7 @@ // blocking_udp_echo_client.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/echo/blocking_udp_echo_server.cpp b/doc/html/boost_asio/example/cpp03/echo/blocking_udp_echo_server.cpp index 5e70a6e44f..00dc177698 100644 --- a/doc/html/boost_asio/example/cpp03/echo/blocking_udp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp03/echo/blocking_udp_echo_server.cpp @@ -2,7 +2,7 @@ // blocking_udp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/fork/daemon.cpp b/doc/html/boost_asio/example/cpp03/fork/daemon.cpp index 53fdf28781..db69befbae 100644 --- a/doc/html/boost_asio/example/cpp03/fork/daemon.cpp +++ b/doc/html/boost_asio/example/cpp03/fork/daemon.cpp @@ -2,7 +2,7 @@ // daemon.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/fork/process_per_connection.cpp b/doc/html/boost_asio/example/cpp03/fork/process_per_connection.cpp index 305cdc2d23..f85ea93dca 100644 --- a/doc/html/boost_asio/example/cpp03/fork/process_per_connection.cpp +++ b/doc/html/boost_asio/example/cpp03/fork/process_per_connection.cpp @@ -2,7 +2,7 @@ // process_per_connection.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/client/async_client.cpp b/doc/html/boost_asio/example/cpp03/http/client/async_client.cpp index 61832aa34f..5c486e39c0 100644 --- a/doc/html/boost_asio/example/cpp03/http/client/async_client.cpp +++ b/doc/html/boost_asio/example/cpp03/http/client/async_client.cpp @@ -2,7 +2,7 @@ // async_client.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/client/sync_client.cpp b/doc/html/boost_asio/example/cpp03/http/client/sync_client.cpp index 6813e053f5..d2af7c593e 100644 --- a/doc/html/boost_asio/example/cpp03/http/client/sync_client.cpp +++ b/doc/html/boost_asio/example/cpp03/http/client/sync_client.cpp @@ -2,7 +2,7 @@ // sync_client.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/connection.cpp b/doc/html/boost_asio/example/cpp03/http/server/connection.cpp index c922257697..8e4a960cd5 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/connection.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server/connection.cpp @@ -2,7 +2,7 @@ // connection.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/connection.hpp b/doc/html/boost_asio/example/cpp03/http/server/connection.hpp index 80bf20df5e..9f806549eb 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/connection.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/connection.hpp @@ -2,7 +2,7 @@ // connection.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/connection_manager.cpp b/doc/html/boost_asio/example/cpp03/http/server/connection_manager.cpp index ac2ba36817..b7eb24e211 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/connection_manager.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server/connection_manager.cpp @@ -2,7 +2,7 @@ // connection_manager.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/connection_manager.hpp b/doc/html/boost_asio/example/cpp03/http/server/connection_manager.hpp index 706c4e1e07..1e18e4490e 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/connection_manager.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/connection_manager.hpp @@ -2,7 +2,7 @@ // connection_manager.hpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/header.hpp b/doc/html/boost_asio/example/cpp03/http/server/header.hpp index 877211f190..18bad986a4 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/header.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/header.hpp @@ -2,7 +2,7 @@ // header.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/main.cpp b/doc/html/boost_asio/example/cpp03/http/server/main.cpp index 0125aee76a..9ea3c09a96 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/main.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server/main.cpp @@ -2,7 +2,7 @@ // main.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/mime_types.cpp b/doc/html/boost_asio/example/cpp03/http/server/mime_types.cpp index a03d5e7a16..8a66683e01 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/mime_types.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server/mime_types.cpp @@ -2,7 +2,7 @@ // mime_types.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/mime_types.hpp b/doc/html/boost_asio/example/cpp03/http/server/mime_types.hpp index 891c443669..a5f352e69a 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/mime_types.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/mime_types.hpp @@ -2,7 +2,7 @@ // mime_types.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/reply.cpp b/doc/html/boost_asio/example/cpp03/http/server/reply.cpp index 4f08fe34d3..d9a4df0d7e 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/reply.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server/reply.cpp @@ -2,7 +2,7 @@ // reply.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/reply.hpp b/doc/html/boost_asio/example/cpp03/http/server/reply.hpp index 51d495bc65..03293227e7 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/reply.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/reply.hpp @@ -2,7 +2,7 @@ // reply.hpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/request.hpp b/doc/html/boost_asio/example/cpp03/http/server/request.hpp index 20efff4dd3..6488b1ddeb 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/request.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/request.hpp @@ -2,7 +2,7 @@ // request.hpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/request_handler.cpp b/doc/html/boost_asio/example/cpp03/http/server/request_handler.cpp index 1b45ce577c..a8a5a5529c 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/request_handler.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server/request_handler.cpp @@ -2,7 +2,7 @@ // request_handler.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/request_handler.hpp b/doc/html/boost_asio/example/cpp03/http/server/request_handler.hpp index 542df83b7a..7d05dbcb91 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/request_handler.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/request_handler.hpp @@ -2,7 +2,7 @@ // request_handler.hpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/request_parser.cpp b/doc/html/boost_asio/example/cpp03/http/server/request_parser.cpp index bda4f1dbe3..7ce45ddeab 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/request_parser.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server/request_parser.cpp @@ -2,7 +2,7 @@ // request_parser.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/request_parser.hpp b/doc/html/boost_asio/example/cpp03/http/server/request_parser.hpp index f8c45bec9f..ecda685f57 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/request_parser.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/request_parser.hpp @@ -2,7 +2,7 @@ // request_parser.hpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/server.cpp b/doc/html/boost_asio/example/cpp03/http/server/server.cpp index 1ebddad8d2..912a4369d4 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/server.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server/server.hpp b/doc/html/boost_asio/example/cpp03/http/server/server.hpp index 8702dce85b..e14d3527a4 100644 --- a/doc/html/boost_asio/example/cpp03/http/server/server.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server/server.hpp @@ -2,7 +2,7 @@ // server.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/connection.cpp b/doc/html/boost_asio/example/cpp03/http/server2/connection.cpp index 328e4a9fff..d671ba5bec 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/connection.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/connection.cpp @@ -2,7 +2,7 @@ // connection.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/connection.hpp b/doc/html/boost_asio/example/cpp03/http/server2/connection.hpp index b9ba677f56..770a0aaa6b 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/connection.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/connection.hpp @@ -2,7 +2,7 @@ // connection.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/header.hpp b/doc/html/boost_asio/example/cpp03/http/server2/header.hpp index 45613d3cf4..559c5c1aef 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/header.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/header.hpp @@ -2,7 +2,7 @@ // header.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/io_context_pool.cpp b/doc/html/boost_asio/example/cpp03/http/server2/io_context_pool.cpp index ed47b75569..817517a7e4 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/io_context_pool.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/io_context_pool.cpp @@ -2,7 +2,7 @@ // io_context_pool.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/io_context_pool.hpp b/doc/html/boost_asio/example/cpp03/http/server2/io_context_pool.hpp index 7af524a077..06bd88658a 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/io_context_pool.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/io_context_pool.hpp @@ -2,7 +2,7 @@ // io_context_pool.hpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/main.cpp b/doc/html/boost_asio/example/cpp03/http/server2/main.cpp index c6a00836c2..2d04db4cb7 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/main.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/main.cpp @@ -2,7 +2,7 @@ // main.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/mime_types.cpp b/doc/html/boost_asio/example/cpp03/http/server2/mime_types.cpp index 5dee5eb3b6..0fdd731015 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/mime_types.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/mime_types.cpp @@ -2,7 +2,7 @@ // mime_types.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/mime_types.hpp b/doc/html/boost_asio/example/cpp03/http/server2/mime_types.hpp index bf1f6d39e5..c11280b5d0 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/mime_types.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/mime_types.hpp @@ -2,7 +2,7 @@ // mime_types.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/reply.cpp b/doc/html/boost_asio/example/cpp03/http/server2/reply.cpp index d7f7c987cb..5da5414621 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/reply.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/reply.cpp @@ -2,7 +2,7 @@ // reply.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/reply.hpp b/doc/html/boost_asio/example/cpp03/http/server2/reply.hpp index fd386217ef..8a974bbc44 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/reply.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/reply.hpp @@ -2,7 +2,7 @@ // reply.hpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/request.hpp b/doc/html/boost_asio/example/cpp03/http/server2/request.hpp index 0d70416209..3eb3494f3e 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/request.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/request.hpp @@ -2,7 +2,7 @@ // request.hpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/request_handler.cpp b/doc/html/boost_asio/example/cpp03/http/server2/request_handler.cpp index 84f50b8732..acac4d1830 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/request_handler.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/request_handler.cpp @@ -2,7 +2,7 @@ // request_handler.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/request_handler.hpp b/doc/html/boost_asio/example/cpp03/http/server2/request_handler.hpp index 75d8d0d0ba..3f9c743304 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/request_handler.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/request_handler.hpp @@ -2,7 +2,7 @@ // request_handler.hpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/request_parser.cpp b/doc/html/boost_asio/example/cpp03/http/server2/request_parser.cpp index 8e2e4637e6..b7e7d6490c 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/request_parser.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/request_parser.cpp @@ -2,7 +2,7 @@ // request_parser.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/request_parser.hpp b/doc/html/boost_asio/example/cpp03/http/server2/request_parser.hpp index a8c6945492..a986720951 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/request_parser.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/request_parser.hpp @@ -2,7 +2,7 @@ // request_parser.hpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/server.cpp b/doc/html/boost_asio/example/cpp03/http/server2/server.cpp index d3bfa58ea7..367708c59d 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/server.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server2/server.hpp b/doc/html/boost_asio/example/cpp03/http/server2/server.hpp index a35415b5e0..3867a9204d 100644 --- a/doc/html/boost_asio/example/cpp03/http/server2/server.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server2/server.hpp @@ -2,7 +2,7 @@ // server.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/connection.cpp b/doc/html/boost_asio/example/cpp03/http/server3/connection.cpp index 37890b570d..378ded16b2 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/connection.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/connection.cpp @@ -2,7 +2,7 @@ // connection.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/connection.hpp b/doc/html/boost_asio/example/cpp03/http/server3/connection.hpp index 420dd0e743..5cb78db242 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/connection.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/connection.hpp @@ -2,7 +2,7 @@ // connection.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/header.hpp b/doc/html/boost_asio/example/cpp03/http/server3/header.hpp index 54e034ba29..d53fede4b0 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/header.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/header.hpp @@ -2,7 +2,7 @@ // header.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/main.cpp b/doc/html/boost_asio/example/cpp03/http/server3/main.cpp index ee1812e425..c7af0c7a1c 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/main.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/main.cpp @@ -2,7 +2,7 @@ // main.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/mime_types.cpp b/doc/html/boost_asio/example/cpp03/http/server3/mime_types.cpp index 97aba9db57..8bc6cd47eb 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/mime_types.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/mime_types.cpp @@ -2,7 +2,7 @@ // mime_types.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/mime_types.hpp b/doc/html/boost_asio/example/cpp03/http/server3/mime_types.hpp index e4793e0613..559380699f 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/mime_types.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/mime_types.hpp @@ -2,7 +2,7 @@ // mime_types.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/reply.cpp b/doc/html/boost_asio/example/cpp03/http/server3/reply.cpp index a8a2f3e7b9..e899c68424 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/reply.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/reply.cpp @@ -2,7 +2,7 @@ // reply.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/reply.hpp b/doc/html/boost_asio/example/cpp03/http/server3/reply.hpp index fa3c7e8f7f..7931e70a69 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/reply.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/reply.hpp @@ -2,7 +2,7 @@ // reply.hpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/request.hpp b/doc/html/boost_asio/example/cpp03/http/server3/request.hpp index 388f80b6f9..92ef781771 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/request.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/request.hpp @@ -2,7 +2,7 @@ // request.hpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/request_handler.cpp b/doc/html/boost_asio/example/cpp03/http/server3/request_handler.cpp index 611d06c311..e13d21d884 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/request_handler.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/request_handler.cpp @@ -2,7 +2,7 @@ // request_handler.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/request_handler.hpp b/doc/html/boost_asio/example/cpp03/http/server3/request_handler.hpp index 167b3771d5..8697fbcd9e 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/request_handler.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/request_handler.hpp @@ -2,7 +2,7 @@ // request_handler.hpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/request_parser.cpp b/doc/html/boost_asio/example/cpp03/http/server3/request_parser.cpp index 9ef5e7c773..1623443829 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/request_parser.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/request_parser.cpp @@ -2,7 +2,7 @@ // request_parser.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/request_parser.hpp b/doc/html/boost_asio/example/cpp03/http/server3/request_parser.hpp index 20da2d55e7..19cfa1c9f8 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/request_parser.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/request_parser.hpp @@ -2,7 +2,7 @@ // request_parser.hpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/server.cpp b/doc/html/boost_asio/example/cpp03/http/server3/server.cpp index fc1c651686..edcc3a89fd 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/server.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server3/server.hpp b/doc/html/boost_asio/example/cpp03/http/server3/server.hpp index 8f1b1c20af..ede47b232a 100644 --- a/doc/html/boost_asio/example/cpp03/http/server3/server.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server3/server.hpp @@ -2,7 +2,7 @@ // server.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/file_handler.cpp b/doc/html/boost_asio/example/cpp03/http/server4/file_handler.cpp index d1cdb0e2f0..1a4bb6c8ab 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/file_handler.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/file_handler.cpp @@ -2,7 +2,7 @@ // file_handler.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/file_handler.hpp b/doc/html/boost_asio/example/cpp03/http/server4/file_handler.hpp index 678da526e8..1835922bfc 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/file_handler.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/file_handler.hpp @@ -2,7 +2,7 @@ // file_handler.hpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/header.hpp b/doc/html/boost_asio/example/cpp03/http/server4/header.hpp index 4478e1de39..8fa25127b7 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/header.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/header.hpp @@ -2,7 +2,7 @@ // header.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/main.cpp b/doc/html/boost_asio/example/cpp03/http/server4/main.cpp index 449ffa3a3e..cdcd484388 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/main.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/main.cpp @@ -2,7 +2,7 @@ // main.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/mime_types.cpp b/doc/html/boost_asio/example/cpp03/http/server4/mime_types.cpp index 255f628e89..7b30ffbf4e 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/mime_types.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/mime_types.cpp @@ -2,7 +2,7 @@ // mime_types.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/mime_types.hpp b/doc/html/boost_asio/example/cpp03/http/server4/mime_types.hpp index 7f3f04f9ce..6eae007d36 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/mime_types.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/mime_types.hpp @@ -2,7 +2,7 @@ // mime_types.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/reply.cpp b/doc/html/boost_asio/example/cpp03/http/server4/reply.cpp index b69247c2e6..5d21aa18d0 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/reply.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/reply.cpp @@ -2,7 +2,7 @@ // reply.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/reply.hpp b/doc/html/boost_asio/example/cpp03/http/server4/reply.hpp index 1f744a7a17..fae8bfea41 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/reply.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/reply.hpp @@ -2,7 +2,7 @@ // reply.hpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/request.hpp b/doc/html/boost_asio/example/cpp03/http/server4/request.hpp index ade91fa965..902212ad56 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/request.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/request.hpp @@ -2,7 +2,7 @@ // request.hpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/request_parser.cpp b/doc/html/boost_asio/example/cpp03/http/server4/request_parser.cpp index 1031e7046c..0e1a598379 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/request_parser.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/request_parser.cpp @@ -2,7 +2,7 @@ // request_parser.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/request_parser.hpp b/doc/html/boost_asio/example/cpp03/http/server4/request_parser.hpp index 34d4c47f58..42edfd36da 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/request_parser.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/request_parser.hpp @@ -2,7 +2,7 @@ // request_parser.hpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/server.cpp b/doc/html/boost_asio/example/cpp03/http/server4/server.cpp index 080fa345b9..9a8d39e1ea 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/server.cpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/http/server4/server.hpp b/doc/html/boost_asio/example/cpp03/http/server4/server.hpp index 3ef3b68a9b..ed5a392a00 100644 --- a/doc/html/boost_asio/example/cpp03/http/server4/server.hpp +++ b/doc/html/boost_asio/example/cpp03/http/server4/server.hpp @@ -2,7 +2,7 @@ // server.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/icmp/icmp_header.hpp b/doc/html/boost_asio/example/cpp03/icmp/icmp_header.hpp index 12272e21a8..2e6f46b019 100644 --- a/doc/html/boost_asio/example/cpp03/icmp/icmp_header.hpp +++ b/doc/html/boost_asio/example/cpp03/icmp/icmp_header.hpp @@ -2,7 +2,7 @@ // icmp_header.hpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/icmp/ipv4_header.hpp b/doc/html/boost_asio/example/cpp03/icmp/ipv4_header.hpp index b724707d50..1026aa2762 100644 --- a/doc/html/boost_asio/example/cpp03/icmp/ipv4_header.hpp +++ b/doc/html/boost_asio/example/cpp03/icmp/ipv4_header.hpp @@ -2,7 +2,7 @@ // ipv4_header.hpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/icmp/ping.cpp b/doc/html/boost_asio/example/cpp03/icmp/ping.cpp index 4daf81948b..b4aac7cbf0 100644 --- a/doc/html/boost_asio/example/cpp03/icmp/ping.cpp +++ b/doc/html/boost_asio/example/cpp03/icmp/ping.cpp @@ -2,7 +2,7 @@ // ping.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the 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,8 +18,8 @@ #include "ipv4_header.hpp" using boost::asio::ip::icmp; -using boost::asio::deadline_timer; -namespace posix_time = boost::posix_time; +using boost::asio::steady_timer; +namespace chrono = boost::asio::chrono; class pinger { @@ -53,12 +53,12 @@ private: os << echo_request << body; // Send the request. - time_sent_ = posix_time::microsec_clock::universal_time(); + time_sent_ = steady_timer::clock_type::now(); socket_.send_to(request_buffer.data(), destination_); // Wait up to five seconds for a reply. num_replies_ = 0; - timer_.expires_at(time_sent_ + posix_time::seconds(5)); + timer_.expires_at(time_sent_ + chrono::seconds(5)); timer_.async_wait(boost::bind(&pinger::handle_timeout, this)); } @@ -68,7 +68,7 @@ private: std::cout << "Request timed out" << std::endl; // Requests must be sent no less than one second apart. - timer_.expires_at(time_sent_ + posix_time::seconds(1)); + timer_.expires_at(time_sent_ + chrono::seconds(1)); timer_.async_wait(boost::bind(&pinger::start_send, this)); } @@ -106,12 +106,14 @@ private: timer_.cancel(); // Print out some information about the reply packet. - posix_time::ptime now = posix_time::microsec_clock::universal_time(); + chrono::steady_clock::time_point now = chrono::steady_clock::now(); + chrono::steady_clock::duration elapsed = now - time_sent_; std::cout << length - ipv4_hdr.header_length() << " bytes from " << ipv4_hdr.source_address() << ": icmp_seq=" << icmp_hdr.sequence_number() << ", ttl=" << ipv4_hdr.time_to_live() - << ", time=" << (now - time_sent_).total_milliseconds() << " ms" + << ", time=" + << chrono::duration_cast(elapsed).count() << std::endl; } @@ -130,9 +132,9 @@ private: icmp::resolver resolver_; icmp::endpoint destination_; icmp::socket socket_; - deadline_timer timer_; + steady_timer timer_; unsigned short sequence_number_; - posix_time::ptime time_sent_; + chrono::steady_clock::time_point time_sent_; boost::asio::streambuf reply_buffer_; std::size_t num_replies_; }; diff --git a/doc/html/boost_asio/example/cpp03/invocation/prioritised_handlers.cpp b/doc/html/boost_asio/example/cpp03/invocation/prioritised_handlers.cpp index 5e2dcb7997..71940977ba 100644 --- a/doc/html/boost_asio/example/cpp03/invocation/prioritised_handlers.cpp +++ b/doc/html/boost_asio/example/cpp03/invocation/prioritised_handlers.cpp @@ -2,7 +2,7 @@ // prioritised_handlers.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -153,8 +153,8 @@ int main() client_socket.connect(acceptor.local_endpoint()); // Set a deadline timer to expire immediately. - boost::asio::deadline_timer timer(io_context); - timer.expires_at(boost::posix_time::neg_infin); + boost::asio::steady_timer timer(io_context); + timer.expires_at(boost::asio::steady_timer::time_point::min()); timer.async_wait(pri_queue.wrap(42, middle_priority_handler)); while (io_context.run_one()) diff --git a/doc/html/boost_asio/example/cpp03/iostreams/daytime_client.cpp b/doc/html/boost_asio/example/cpp03/iostreams/daytime_client.cpp index 20ed37211f..c750024ddd 100644 --- a/doc/html/boost_asio/example/cpp03/iostreams/daytime_client.cpp +++ b/doc/html/boost_asio/example/cpp03/iostreams/daytime_client.cpp @@ -2,7 +2,7 @@ // daytime_client.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/iostreams/daytime_server.cpp b/doc/html/boost_asio/example/cpp03/iostreams/daytime_server.cpp index 3e0356c79b..b7aae994c0 100644 --- a/doc/html/boost_asio/example/cpp03/iostreams/daytime_server.cpp +++ b/doc/html/boost_asio/example/cpp03/iostreams/daytime_server.cpp @@ -2,7 +2,7 @@ // daytime_server.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/iostreams/http_client.cpp b/doc/html/boost_asio/example/cpp03/iostreams/http_client.cpp index 52842abfd7..2460123297 100644 --- a/doc/html/boost_asio/example/cpp03/iostreams/http_client.cpp +++ b/doc/html/boost_asio/example/cpp03/iostreams/http_client.cpp @@ -2,7 +2,7 @@ // http_client.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the 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,7 +33,7 @@ int main(int argc, char* argv[]) // The entire sequence of I/O operations must complete within 60 seconds. // If an expiry occurs, the socket is automatically closed and the stream // becomes bad. - s.expires_after(boost::posix_time::seconds(60)); + s.expires_after(boost::asio::chrono::seconds(60)); // Establish a connection to the server. s.connect(argv[1], "http"); diff --git a/doc/html/boost_asio/example/cpp03/local/connect_pair.cpp b/doc/html/boost_asio/example/cpp03/local/connect_pair.cpp index 934731b710..892ec62f06 100644 --- a/doc/html/boost_asio/example/cpp03/local/connect_pair.cpp +++ b/doc/html/boost_asio/example/cpp03/local/connect_pair.cpp @@ -2,7 +2,7 @@ // connect_pair.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/local/iostream_client.cpp b/doc/html/boost_asio/example/cpp03/local/iostream_client.cpp index d2e0621c82..9ddc80c3c6 100644 --- a/doc/html/boost_asio/example/cpp03/local/iostream_client.cpp +++ b/doc/html/boost_asio/example/cpp03/local/iostream_client.cpp @@ -2,7 +2,7 @@ // stream_client.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/local/stream_client.cpp b/doc/html/boost_asio/example/cpp03/local/stream_client.cpp index 915cbe2f3f..a41e937ad8 100644 --- a/doc/html/boost_asio/example/cpp03/local/stream_client.cpp +++ b/doc/html/boost_asio/example/cpp03/local/stream_client.cpp @@ -2,7 +2,7 @@ // stream_client.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/local/stream_server.cpp b/doc/html/boost_asio/example/cpp03/local/stream_server.cpp index 05194240c3..8eea66a525 100644 --- a/doc/html/boost_asio/example/cpp03/local/stream_server.cpp +++ b/doc/html/boost_asio/example/cpp03/local/stream_server.cpp @@ -2,7 +2,7 @@ // stream_server.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/multicast/receiver.cpp b/doc/html/boost_asio/example/cpp03/multicast/receiver.cpp index ed9d5ccb27..fcea3c9169 100644 --- a/doc/html/boost_asio/example/cpp03/multicast/receiver.cpp +++ b/doc/html/boost_asio/example/cpp03/multicast/receiver.cpp @@ -2,7 +2,7 @@ // receiver.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/multicast/sender.cpp b/doc/html/boost_asio/example/cpp03/multicast/sender.cpp index 15267248b4..aa27dade75 100644 --- a/doc/html/boost_asio/example/cpp03/multicast/sender.cpp +++ b/doc/html/boost_asio/example/cpp03/multicast/sender.cpp @@ -2,7 +2,7 @@ // sender.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -13,7 +13,6 @@ #include #include #include "boost/bind.hpp" -#include "boost/date_time/posix_time/posix_time_types.hpp" const short multicast_port = 30001; const int max_message_count = 10; @@ -42,7 +41,7 @@ public: { if (!error && message_count_ < max_message_count) { - timer_.expires_from_now(boost::posix_time::seconds(1)); + timer_.expires_after(boost::asio::chrono::seconds(1)); timer_.async_wait( boost::bind(&sender::handle_timeout, this, boost::asio::placeholders::error)); @@ -67,7 +66,7 @@ public: private: boost::asio::ip::udp::endpoint endpoint_; boost::asio::ip::udp::socket socket_; - boost::asio::deadline_timer timer_; + boost::asio::steady_timer timer_; int message_count_; std::string message_; }; diff --git a/doc/html/boost_asio/example/cpp03/nonblocking/third_party_lib.cpp b/doc/html/boost_asio/example/cpp03/nonblocking/third_party_lib.cpp index 6ace6d8c63..1148947615 100644 --- a/doc/html/boost_asio/example/cpp03/nonblocking/third_party_lib.cpp +++ b/doc/html/boost_asio/example/cpp03/nonblocking/third_party_lib.cpp @@ -2,7 +2,7 @@ // third_party_lib.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/porthopper/client.cpp b/doc/html/boost_asio/example/cpp03/porthopper/client.cpp index 05c020cd75..dc02322ebf 100644 --- a/doc/html/boost_asio/example/cpp03/porthopper/client.cpp +++ b/doc/html/boost_asio/example/cpp03/porthopper/client.cpp @@ -2,7 +2,7 @@ // client.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/porthopper/protocol.hpp b/doc/html/boost_asio/example/cpp03/porthopper/protocol.hpp index 272aa876eb..f67de4f748 100644 --- a/doc/html/boost_asio/example/cpp03/porthopper/protocol.hpp +++ b/doc/html/boost_asio/example/cpp03/porthopper/protocol.hpp @@ -2,7 +2,7 @@ // protocol.hpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/porthopper/server.cpp b/doc/html/boost_asio/example/cpp03/porthopper/server.cpp index 0426c365be..e8c9f8af67 100644 --- a/doc/html/boost_asio/example/cpp03/porthopper/server.cpp +++ b/doc/html/boost_asio/example/cpp03/porthopper/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -22,7 +22,7 @@ using boost::asio::ip::tcp; using boost::asio::ip::udp; typedef boost::shared_ptr tcp_socket_ptr; -typedef boost::shared_ptr timer_ptr; +typedef boost::shared_ptr timer_ptr; typedef boost::shared_ptr control_request_ptr; class server @@ -43,7 +43,7 @@ public: boost::asio::placeholders::error, new_socket)); // Start the timer used to generate outgoing frames. - timer_.expires_from_now(boost::posix_time::milliseconds(100)); + timer_.expires_after(boost::asio::chrono::milliseconds(100)); timer_.async_wait(boost::bind(&server::handle_timer, this)); } @@ -75,8 +75,8 @@ public: { // Delay handling of the control request to simulate network latency. timer_ptr delay_timer( - new boost::asio::deadline_timer(acceptor_.get_executor().context())); - delay_timer->expires_from_now(boost::posix_time::seconds(2)); + new boost::asio::steady_timer(acceptor_.get_executor().context())); + delay_timer->expires_after(boost::asio::chrono::seconds(2)); delay_timer->async_wait( boost::bind(&server::handle_control_request_timer, this, socket, request, delay_timer)); @@ -142,7 +142,7 @@ public: } // Wait for next timeout. - timer_.expires_from_now(boost::posix_time::milliseconds(100)); + timer_.expires_after(boost::asio::chrono::milliseconds(100)); timer_.async_wait(boost::bind(&server::handle_timer, this)); } @@ -151,7 +151,7 @@ private: tcp::acceptor acceptor_; // The timer used for generating data. - boost::asio::deadline_timer timer_; + boost::asio::steady_timer timer_; // The socket used to send data to subscribers. udp::socket udp_socket_; diff --git a/doc/html/boost_asio/example/cpp03/serialization/client.cpp b/doc/html/boost_asio/example/cpp03/serialization/client.cpp index 06f3e4c09e..f11e55f44e 100644 --- a/doc/html/boost_asio/example/cpp03/serialization/client.cpp +++ b/doc/html/boost_asio/example/cpp03/serialization/client.cpp @@ -2,7 +2,7 @@ // client.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/serialization/connection.hpp b/doc/html/boost_asio/example/cpp03/serialization/connection.hpp index 88b0a71508..4eb662db90 100644 --- a/doc/html/boost_asio/example/cpp03/serialization/connection.hpp +++ b/doc/html/boost_asio/example/cpp03/serialization/connection.hpp @@ -2,7 +2,7 @@ // connection.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/serialization/server.cpp b/doc/html/boost_asio/example/cpp03/serialization/server.cpp index 6fb4881d94..df99e371ec 100644 --- a/doc/html/boost_asio/example/cpp03/serialization/server.cpp +++ b/doc/html/boost_asio/example/cpp03/serialization/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/serialization/stock.hpp b/doc/html/boost_asio/example/cpp03/serialization/stock.hpp index 67a5d3f49b..b1d1c60c62 100644 --- a/doc/html/boost_asio/example/cpp03/serialization/stock.hpp +++ b/doc/html/boost_asio/example/cpp03/serialization/stock.hpp @@ -2,7 +2,7 @@ // stock.hpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/services/basic_logger.hpp b/doc/html/boost_asio/example/cpp03/services/basic_logger.hpp index 0f56c2fef8..6f0aeb426f 100644 --- a/doc/html/boost_asio/example/cpp03/services/basic_logger.hpp +++ b/doc/html/boost_asio/example/cpp03/services/basic_logger.hpp @@ -2,7 +2,7 @@ // basic_logger.hpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/services/daytime_client.cpp b/doc/html/boost_asio/example/cpp03/services/daytime_client.cpp index 204382a989..109e061699 100644 --- a/doc/html/boost_asio/example/cpp03/services/daytime_client.cpp +++ b/doc/html/boost_asio/example/cpp03/services/daytime_client.cpp @@ -2,7 +2,7 @@ // daytime_client.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/services/logger.hpp b/doc/html/boost_asio/example/cpp03/services/logger.hpp index 749620d1ab..71ec68d0b8 100644 --- a/doc/html/boost_asio/example/cpp03/services/logger.hpp +++ b/doc/html/boost_asio/example/cpp03/services/logger.hpp @@ -2,7 +2,7 @@ // logger.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/services/logger_service.cpp b/doc/html/boost_asio/example/cpp03/services/logger_service.cpp index 1324d30745..82fcb223c5 100644 --- a/doc/html/boost_asio/example/cpp03/services/logger_service.cpp +++ b/doc/html/boost_asio/example/cpp03/services/logger_service.cpp @@ -2,7 +2,7 @@ // logger_service.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/services/logger_service.hpp b/doc/html/boost_asio/example/cpp03/services/logger_service.hpp index 071d6bfc5e..84ac5a195c 100644 --- a/doc/html/boost_asio/example/cpp03/services/logger_service.hpp +++ b/doc/html/boost_asio/example/cpp03/services/logger_service.hpp @@ -2,7 +2,7 @@ // logger_service.hpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/socks4/socks4.hpp b/doc/html/boost_asio/example/cpp03/socks4/socks4.hpp index 07dc1a1ce2..e954d7a88a 100644 --- a/doc/html/boost_asio/example/cpp03/socks4/socks4.hpp +++ b/doc/html/boost_asio/example/cpp03/socks4/socks4.hpp @@ -2,7 +2,7 @@ // socks4.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/socks4/sync_client.cpp b/doc/html/boost_asio/example/cpp03/socks4/sync_client.cpp index e9106a059c..5650248603 100644 --- a/doc/html/boost_asio/example/cpp03/socks4/sync_client.cpp +++ b/doc/html/boost_asio/example/cpp03/socks4/sync_client.cpp @@ -2,7 +2,7 @@ // sync_client.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/spawn/echo_server.cpp b/doc/html/boost_asio/example/cpp03/spawn/echo_server.cpp index db6a1679f5..6b60b46f4a 100644 --- a/doc/html/boost_asio/example/cpp03/spawn/echo_server.cpp +++ b/doc/html/boost_asio/example/cpp03/spawn/echo_server.cpp @@ -2,16 +2,16 @@ // echo_server.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the 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 #include #include #include +#include #include #include #include @@ -53,7 +53,7 @@ private: char data[128]; for (;;) { - timer_.expires_from_now(boost::posix_time::seconds(10)); + timer_.expires_after(boost::asio::chrono::seconds(10)); std::size_t n = socket_.async_read_some(boost::asio::buffer(data), yield); boost::asio::async_write(socket_, boost::asio::buffer(data, n), yield); } @@ -71,14 +71,14 @@ private: { boost::system::error_code ignored_ec; timer_.async_wait(yield[ignored_ec]); - if (timer_.expires_from_now() <= boost::posix_time::seconds(0)) + if (timer_.expiry() <= boost::asio::steady_timer::clock_type::now()) socket_.close(); } } boost::asio::io_context::strand strand_; tcp::socket socket_; - boost::asio::deadline_timer timer_; + boost::asio::steady_timer timer_; }; void do_accept(boost::asio::io_context& io_context, diff --git a/doc/html/boost_asio/example/cpp03/spawn/parallel_grep.cpp b/doc/html/boost_asio/example/cpp03/spawn/parallel_grep.cpp index 63aa2fc447..5de86204b5 100644 --- a/doc/html/boost_asio/example/cpp03/spawn/parallel_grep.cpp +++ b/doc/html/boost_asio/example/cpp03/spawn/parallel_grep.cpp @@ -2,7 +2,7 @@ // parallel_grep.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/ssl/client.cpp b/doc/html/boost_asio/example/cpp03/ssl/client.cpp index 7239496add..6064ca4959 100644 --- a/doc/html/boost_asio/example/cpp03/ssl/client.cpp +++ b/doc/html/boost_asio/example/cpp03/ssl/client.cpp @@ -2,7 +2,7 @@ // client.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/ssl/server.cpp b/doc/html/boost_asio/example/cpp03/ssl/server.cpp index 604189034e..0848b0a096 100644 --- a/doc/html/boost_asio/example/cpp03/ssl/server.cpp +++ b/doc/html/boost_asio/example/cpp03/ssl/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp03/timeouts/async_tcp_client.cpp b/doc/html/boost_asio/example/cpp03/timeouts/async_tcp_client.cpp index 2134e6395d..f295ed5fb2 100644 --- a/doc/html/boost_asio/example/cpp03/timeouts/async_tcp_client.cpp +++ b/doc/html/boost_asio/example/cpp03/timeouts/async_tcp_client.cpp @@ -2,22 +2,23 @@ // async_tcp_client.cpp // ~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the 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 +#include #include #include #include -#include +#include #include #include #include +#include -using boost::asio::deadline_timer; +using boost::asio::steady_timer; using boost::asio::ip::tcp; // @@ -78,7 +79,7 @@ using boost::asio::ip::tcp; // // The heartbeat actor sends a heartbeat (a message that consists of a single // newline character) every 10 seconds. In this example, no deadline is applied -// message sending. +// to message sending. // class client { @@ -125,7 +126,7 @@ private: std::cout << "Trying " << endpoint_iter->endpoint() << "...\n"; // Set a deadline for the connect operation. - deadline_.expires_from_now(boost::posix_time::seconds(60)); + deadline_.expires_after(boost::asio::chrono::seconds(60)); // Start the asynchronous connect operation. socket_.async_connect(endpoint_iter->endpoint(), @@ -185,14 +186,15 @@ private: void start_read() { // Set a deadline for the read operation. - deadline_.expires_from_now(boost::posix_time::seconds(30)); + deadline_.expires_after(boost::asio::chrono::seconds(30)); // Start an asynchronous operation to read a newline-delimited message. - boost::asio::async_read_until(socket_, input_buffer_, '\n', - boost::bind(&client::handle_read, this, _1)); + boost::asio::async_read_until(socket_, + boost::asio::dynamic_buffer(input_buffer_), '\n', + boost::bind(&client::handle_read, this, _1, _2)); } - void handle_read(const boost::system::error_code& ec) + void handle_read(const boost::system::error_code& ec, std::size_t n) { if (stopped_) return; @@ -200,9 +202,8 @@ private: if (!ec) { // Extract the newline-delimited message from the buffer. - std::string line; - std::istream is(&input_buffer_); - std::getline(is, line); + std::string line(input_buffer_.substr(0, n - 1)); + input_buffer_.erase(0, n); // Empty messages are heartbeats and so ignored. if (!line.empty()) @@ -238,7 +239,7 @@ private: if (!ec) { // Wait 10 seconds before sending the next heartbeat. - heartbeat_timer_.expires_from_now(boost::posix_time::seconds(10)); + heartbeat_timer_.expires_after(boost::asio::chrono::seconds(10)); heartbeat_timer_.async_wait(boost::bind(&client::start_write, this)); } else @@ -257,15 +258,16 @@ private: // Check whether the deadline has passed. We compare the deadline against // the current time since a new asynchronous operation may have moved the // deadline before this actor had a chance to run. - if (deadline_.expires_at() <= deadline_timer::traits_type::now()) + if (deadline_.expiry() <= steady_timer::clock_type::now()) { // The deadline has passed. The socket is closed so that any outstanding // asynchronous operations are cancelled. socket_.close(); - // There is no longer an active deadline. The expiry is set to positive - // infinity so that the actor takes no action until a new deadline is set. - deadline_.expires_at(boost::posix_time::pos_infin); + // There is no longer an active deadline. The expiry is set to the + // maximum time point so that the actor takes no action until a new + // deadline is set. + deadline_.expires_at(steady_timer::time_point::max()); } // Put the actor back to sleep. @@ -276,9 +278,9 @@ private: bool stopped_; tcp::resolver::results_type endpoints_; tcp::socket socket_; - boost::asio::streambuf input_buffer_; - deadline_timer deadline_; - deadline_timer heartbeat_timer_; + std::string input_buffer_; + steady_timer deadline_; + steady_timer heartbeat_timer_; }; int main(int argc, char* argv[]) diff --git a/doc/html/boost_asio/example/cpp03/timeouts/blocking_tcp_client.cpp b/doc/html/boost_asio/example/cpp03/timeouts/blocking_tcp_client.cpp index 67224cfd0f..2392882c87 100644 --- a/doc/html/boost_asio/example/cpp03/timeouts/blocking_tcp_client.cpp +++ b/doc/html/boost_asio/example/cpp03/timeouts/blocking_tcp_client.cpp @@ -2,18 +2,17 @@ // blocking_tcp_client.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the 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 #include -#include #include #include #include -#include #include #include #include @@ -22,178 +21,127 @@ #include #include -using boost::asio::deadline_timer; using boost::asio::ip::tcp; using boost::lambda::bind; using boost::lambda::var; using boost::lambda::_1; +using boost::lambda::_2; //---------------------------------------------------------------------- // -// This class manages socket timeouts by applying the concept of a deadline. -// Each asynchronous operation is given a deadline by which it must complete. -// Deadlines are enforced by an "actor" that persists for the lifetime of the -// client object: -// -// +----------------+ -// | | -// | check_deadline |<---+ -// | | | -// +----------------+ | async_wait() -// | | -// +---------+ -// -// If the actor determines that the deadline has expired, the socket is closed -// and any outstanding operations are consequently cancelled. The socket -// operations themselves use boost::lambda function objects as completion -// handlers. For a given socket operation, the client object runs the -// io_context to block thread execution until the actor completes. +// This class manages socket timeouts by running the io_context using the timed +// io_context::run_for() member function. Each asynchronous operation is given +// a timeout within which it must complete. The socket operations themselves +// use boost::lambda function objects as completion handlers. For a given +// socket operation, the client object runs the io_context to block thread +// execution until the operation completes or the timeout is reached. If the +// io_context::run_for() function times out, the socket is closed and the +// outstanding asynchronous operation is cancelled. // class client { public: client() - : socket_(io_context_), - deadline_(io_context_) + : socket_(io_context_) { - // No deadline is required until the first socket operation is started. We - // set the deadline to positive infinity so that the actor takes no action - // until a specific deadline is set. - deadline_.expires_at(boost::posix_time::pos_infin); - - // Start the persistent actor that checks for deadline expiry. - check_deadline(); } void connect(const std::string& host, const std::string& service, - boost::posix_time::time_duration timeout) + boost::asio::chrono::steady_clock::duration timeout) { // Resolve the host name and service to a list of endpoints. tcp::resolver::results_type endpoints = tcp::resolver(io_context_).resolve(host, service); - // Set a deadline for the asynchronous operation. As a host name may - // resolve to multiple endpoints, this function uses the composed operation - // async_connect. The deadline applies to the entire operation, rather than - // individual connection attempts. - deadline_.expires_from_now(timeout); - - // Set up the variable that receives the result of the asynchronous - // operation. The error code is set to would_block to signal that the - // operation is incomplete. Asio guarantees that its asynchronous - // operations will never fail with would_block, so any other value in - // ec indicates completion. - boost::system::error_code ec = boost::asio::error::would_block; - // Start the asynchronous operation itself. The boost::lambda function // object is used as a callback and will update the ec variable when the // operation completes. The blocking_udp_client.cpp example shows how you // can use boost::bind rather than boost::lambda. + boost::system::error_code ec; boost::asio::async_connect(socket_, endpoints, var(ec) = _1); - // Block until the asynchronous operation has completed. - do io_context_.run_one(); while (ec == boost::asio::error::would_block); - - // Determine whether a connection was successfully established. The - // deadline actor may have had a chance to run and close our socket, even - // though the connect operation notionally succeeded. Therefore we must - // check whether the socket is still open before deciding if we succeeded - // or failed. - if (ec || !socket_.is_open()) - throw boost::system::system_error( - ec ? ec : boost::asio::error::operation_aborted); + // Run the operation until it completes, or until the timeout. + run(timeout); + + // Determine whether a connection was successfully established. + if (ec) + throw boost::system::system_error(ec); } - std::string read_line(boost::posix_time::time_duration timeout) + std::string read_line(boost::asio::chrono::steady_clock::duration timeout) { - // Set a deadline for the asynchronous operation. Since this function uses - // a composed operation (async_read_until), the deadline applies to the - // entire operation, rather than individual reads from the socket. - deadline_.expires_from_now(timeout); - - // Set up the variable that receives the result of the asynchronous - // operation. The error code is set to would_block to signal that the - // operation is incomplete. Asio guarantees that its asynchronous - // operations will never fail with would_block, so any other value in - // ec indicates completion. - boost::system::error_code ec = boost::asio::error::would_block; - - // Start the asynchronous operation itself. The boost::lambda function - // object is used as a callback and will update the ec variable when the - // operation completes. The blocking_udp_client.cpp example shows how you - // can use boost::bind rather than boost::lambda. - boost::asio::async_read_until(socket_, input_buffer_, '\n', var(ec) = _1); - - // Block until the asynchronous operation has completed. - do io_context_.run_one(); while (ec == boost::asio::error::would_block); - + // Start the asynchronous operation. The boost::lambda function object is + // used as a callback and will update the ec variable when the operation + // completes. The blocking_udp_client.cpp example shows how you can use + // boost::bind rather than boost::lambda. + boost::system::error_code ec; + std::size_t n = 0; + boost::asio::async_read_until(socket_, + boost::asio::dynamic_buffer(input_buffer_), + '\n', (var(ec) = _1, var(n) = _2)); + + // Run the operation until it completes, or until the timeout. + run(timeout); + + // Determine whether the read completed successfully. if (ec) throw boost::system::system_error(ec); - std::string line; - std::istream is(&input_buffer_); - std::getline(is, line); + std::string line(input_buffer_.substr(0, n - 1)); + input_buffer_.erase(0, n); return line; } void write_line(const std::string& line, - boost::posix_time::time_duration timeout) + boost::asio::chrono::steady_clock::duration timeout) { std::string data = line + "\n"; - // Set a deadline for the asynchronous operation. Since this function uses - // a composed operation (async_write), the deadline applies to the entire - // operation, rather than individual writes to the socket. - deadline_.expires_from_now(timeout); - - // Set up the variable that receives the result of the asynchronous - // operation. The error code is set to would_block to signal that the - // operation is incomplete. Asio guarantees that its asynchronous - // operations will never fail with would_block, so any other value in - // ec indicates completion. - boost::system::error_code ec = boost::asio::error::would_block; - - // Start the asynchronous operation itself. The boost::lambda function - // object is used as a callback and will update the ec variable when the - // operation completes. The blocking_udp_client.cpp example shows how you - // can use boost::bind rather than boost::lambda. + // Start the asynchronous operation. The boost::lambda function object is + // used as a callback and will update the ec variable when the operation + // completes. The blocking_udp_client.cpp example shows how you can use + // boost::bind rather than boost::lambda. + boost::system::error_code ec; boost::asio::async_write(socket_, boost::asio::buffer(data), var(ec) = _1); - // Block until the asynchronous operation has completed. - do io_context_.run_one(); while (ec == boost::asio::error::would_block); + // Run the operation until it completes, or until the timeout. + run(timeout); + // Determine whether the read completed successfully. if (ec) throw boost::system::system_error(ec); } private: - void check_deadline() + void run(boost::asio::chrono::steady_clock::duration timeout) { - // Check whether the deadline has passed. We compare the deadline against - // the current time since a new asynchronous operation may have moved the - // deadline before this actor had a chance to run. - if (deadline_.expires_at() <= deadline_timer::traits_type::now()) + // Restart the io_context, as it may have been left in the "stopped" state + // by a previous operation. + io_context_.restart(); + + // Block until the asynchronous operation has completed, or timed out. If + // the pending asynchronous operation is a composed operation, the deadline + // applies to the entire operation, rather than individual operations on + // the socket. + io_context_.run_for(timeout); + + // If the asynchronous operation completed successfully then the io_context + // would have been stopped due to running out of work. If it was not + // stopped, then the io_context::run_for call must have timed out. + if (!io_context_.stopped()) { - // The deadline has passed. The socket is closed so that any outstanding - // asynchronous operations are cancelled. This allows the blocked - // connect(), read_line() or write_line() functions to return. - boost::system::error_code ignored_ec; - socket_.close(ignored_ec); - - // There is no longer an active deadline. The expiry is set to positive - // infinity so that the actor takes no action until a new deadline is set. - deadline_.expires_at(boost::posix_time::pos_infin); - } + // Close the socket to cancel the outstanding asynchronous operation. + socket_.close(); - // Put the actor back to sleep. - deadline_.async_wait(bind(&client::check_deadline, this)); + // Run the io_context again until the operation completes. + io_context_.run(); + } } boost::asio::io_context io_context_; tcp::socket socket_; - deadline_timer deadline_; - boost::asio::streambuf input_buffer_; + std::string input_buffer_; }; //---------------------------------------------------------------------- @@ -204,32 +152,34 @@ int main(int argc, char* argv[]) { if (argc != 4) { - std::cerr << "Usage: blocking_tcp \n"; + std::cerr << "Usage: blocking_tcp_client \n"; return 1; } client c; - c.connect(argv[1], argv[2], boost::posix_time::seconds(10)); + c.connect(argv[1], argv[2], boost::asio::chrono::seconds(10)); - boost::posix_time::ptime time_sent = - boost::posix_time::microsec_clock::universal_time(); + boost::asio::chrono::steady_clock::time_point time_sent = + boost::asio::chrono::steady_clock::now(); - c.write_line(argv[3], boost::posix_time::seconds(10)); + c.write_line(argv[3], boost::asio::chrono::seconds(10)); for (;;) { - std::string line = c.read_line(boost::posix_time::seconds(10)); + std::string line = c.read_line(boost::asio::chrono::seconds(10)); // Keep going until we get back the line that was sent. if (line == argv[3]) break; } - boost::posix_time::ptime time_received = - boost::posix_time::microsec_clock::universal_time(); + boost::asio::chrono::steady_clock::time_point time_received = + boost::asio::chrono::steady_clock::now(); std::cout << "Round trip time: "; - std::cout << (time_received - time_sent).total_microseconds(); + std::cout << boost::asio::chrono::duration_cast< + boost::asio::chrono::microseconds>( + time_received - time_sent).count(); std::cout << " microseconds\n"; } catch (std::exception& e) diff --git a/doc/html/boost_asio/example/cpp03/timeouts/blocking_token_tcp_client.cpp b/doc/html/boost_asio/example/cpp03/timeouts/blocking_token_tcp_client.cpp new file mode 100644 index 0000000000..0903d87864 --- /dev/null +++ b/doc/html/boost_asio/example/cpp03/timeouts/blocking_token_tcp_client.cpp @@ -0,0 +1,198 @@ +// +// blocking_token_tcp_client.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using boost::asio::ip::tcp; + +//---------------------------------------------------------------------- + +// A custom completion token that makes asynchronous operations behave as +// though they are blocking calls with a timeout. +struct close_after +{ + close_after(boost::asio::chrono::steady_clock::duration t, tcp::socket& s) + : timeout_(t), socket_(s) + { + } + + // The maximum time to wait for an asynchronous operation to complete. + boost::asio::chrono::steady_clock::duration timeout_; + + // The socket to be closed if the operation does not complete in time. + tcp::socket& socket_; +}; + +namespace boost { +namespace asio { + +// The async_result template is specialised to allow the close_after token to +// be used with asynchronous operations that have a completion signature of +// void(error_code, T). Generalising this for all completion signature forms is +// left as an exercise for the reader. +template +class async_result +{ +public: + // An asynchronous operation's initiating function automatically creates an + // completion_handler_type object from the token. This function object is + // then called on completion of the asynchronous operation. + class completion_handler_type + { + public: + completion_handler_type(const close_after& token) + : token_(token) + { + } + + void operator()(boost::system::error_code ec, T t) + { + *ec_ = ec; + *t_ = t; + } + + private: + friend class async_result; + close_after token_; + boost::system::error_code* ec_; + T* t_; + }; + + // The async_result constructor associates the completion handler object with + // the result of the initiating function. + explicit async_result(completion_handler_type& h) + : timeout_(h.token_.timeout_), + socket_(h.token_.socket_) + { + h.ec_ = &ec_; + h.t_ = &t_; + } + + // The return_type typedef determines the result type of the asynchronous + // operation's initiating function. + typedef T return_type; + + // The get() function is used to obtain the result of the asynchronous + // operation's initiating function. For the close_after completion token, we + // use this function to run the io_context until the operation is complete. + return_type get() + { + boost::asio::io_context& io_context = socket_.get_executor().context(); + + // Restart the io_context, as it may have been left in the "stopped" state + // by a previous operation. + io_context.restart(); + + // Block until the asynchronous operation has completed, or timed out. If + // the pending asynchronous operation is a composed operation, the deadline + // applies to the entire operation, rather than individual operations on + // the socket. + io_context.run_for(timeout_); + + // If the asynchronous operation completed successfully then the io_context + // would have been stopped due to running out of work. If it was not + // stopped, then the io_context::run_for call must have timed out and the + // operation is still incomplete. + if (!io_context.stopped()) + { + // Close the socket to cancel the outstanding asynchronous operation. + socket_.close(); + + // Run the io_context again until the operation completes. + io_context.run(); + } + + // If the operation failed, throw an exception. Otherwise return the result. + return ec_ ? throw boost::system::system_error(ec_) : t_; + } + +private: + boost::asio::chrono::steady_clock::duration timeout_; + tcp::socket& socket_; + boost::system::error_code ec_; + T t_; +}; + +} // namespace asio +} // namespace boost + +//---------------------------------------------------------------------- + +int main(int argc, char* argv[]) +{ + try + { + if (argc != 4) + { + std::cerr << "Usage: blocking_tcp_client \n"; + return 1; + } + + boost::asio::io_context io_context; + + // Resolve the host name and service to a list of endpoints. + tcp::resolver::results_type endpoints = + tcp::resolver(io_context).resolve(argv[1], argv[2]); + + tcp::socket socket(io_context); + + // Run an asynchronous connect operation with a timeout. + boost::asio::async_connect(socket, endpoints, + close_after(boost::asio::chrono::seconds(10), socket)); + + boost::asio::chrono::steady_clock::time_point time_sent = + boost::asio::chrono::steady_clock::now(); + + // Run an asynchronous write operation with a timeout. + std::string msg = argv[3] + std::string("\n"); + boost::asio::async_write(socket, boost::asio::buffer(msg), + close_after(boost::asio::chrono::seconds(10), socket)); + + for (std::string input_buffer;;) + { + // Run an asynchronous read operation with a timeout. + std::size_t n = boost::asio::async_read_until(socket, + boost::asio::dynamic_buffer(input_buffer), '\n', + close_after(boost::asio::chrono::seconds(10), socket)); + + std::string line(input_buffer.substr(0, n - 1)); + input_buffer.erase(0, n); + + // Keep going until we get back the line that was sent. + if (line == argv[3]) + break; + } + + boost::asio::chrono::steady_clock::time_point time_received = + boost::asio::chrono::steady_clock::now(); + + std::cout << "Round trip time: "; + std::cout << boost::asio::chrono::duration_cast< + boost::asio::chrono::microseconds>( + time_received - time_sent).count(); + std::cout << " microseconds\n"; + } + catch (std::exception& e) + { + std::cerr << "Exception: " << e.what() << "\n"; + } + + return 0; +} diff --git a/doc/html/boost_asio/example/cpp03/timeouts/blocking_udp_client.cpp b/doc/html/boost_asio/example/cpp03/timeouts/blocking_udp_client.cpp index 03aafca2f7..7630e8da26 100644 --- a/doc/html/boost_asio/example/cpp03/timeouts/blocking_udp_client.cpp +++ b/doc/html/boost_asio/example/cpp03/timeouts/blocking_udp_client.cpp @@ -2,42 +2,28 @@ // blocking_udp_client.cpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the 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 +#include #include #include #include #include -#include #include -using boost::asio::deadline_timer; using boost::asio::ip::udp; //---------------------------------------------------------------------- // -// This class manages socket timeouts by applying the concept of a deadline. -// Each asynchronous operation is given a deadline by which it must complete. -// Deadlines are enforced by an "actor" that persists for the lifetime of the -// client object: -// -// +----------------+ -// | | -// | check_deadline |<---+ -// | | | -// +----------------+ | async_wait() -// | | -// +---------+ -// -// If the actor determines that the deadline has expired, any outstanding -// socket operations are cancelled. The socket operations themselves are -// implemented as transient actors: +// This class manages socket timeouts by running the io_context using the timed +// io_context::run_for() member function. Each asynchronous operation is given +// a timeout within which it must complete. The socket operations themselves +// use boost::bind to specify the completion handler: // // +---------------+ // | | @@ -51,73 +37,59 @@ using boost::asio::ip::udp; // | | // +----------------+ // -// The client object runs the io_context to block thread execution until the -// actor completes. +// For a given socket operation, the client object runs the io_context to block +// thread execution until the operation completes or the timeout is reached. If +// the io_context::run_for() function times out, the socket is closed and the +// outstanding asynchronous operation is cancelled. // class client { public: client(const udp::endpoint& listen_endpoint) - : socket_(io_context_, listen_endpoint), - deadline_(io_context_) + : socket_(io_context_, listen_endpoint) { - // No deadline is required until the first socket operation is started. We - // set the deadline to positive infinity so that the actor takes no action - // until a specific deadline is set. - deadline_.expires_at(boost::posix_time::pos_infin); - - // Start the persistent actor that checks for deadline expiry. - check_deadline(); } std::size_t receive(const boost::asio::mutable_buffer& buffer, - boost::posix_time::time_duration timeout, boost::system::error_code& ec) + boost::asio::chrono::steady_clock::duration timeout, + boost::system::error_code& ec) { - // Set a deadline for the asynchronous operation. - deadline_.expires_from_now(timeout); - - // Set up the variables that receive the result of the asynchronous - // operation. The error code is set to would_block to signal that the - // operation is incomplete. Asio guarantees that its asynchronous - // operations will never fail with would_block, so any other value in - // ec indicates completion. - ec = boost::asio::error::would_block; + // Start the asynchronous operation. The handle_receive function used as a + // callback will update the ec and length variables. std::size_t length = 0; - - // Start the asynchronous operation itself. The handle_receive function - // used as a callback will update the ec and length variables. socket_.async_receive(boost::asio::buffer(buffer), boost::bind(&client::handle_receive, _1, _2, &ec, &length)); - // Block until the asynchronous operation has completed. - do io_context_.run_one(); while (ec == boost::asio::error::would_block); + // Run the operation until it completes, or until the timeout. + run(timeout); return length; } private: - void check_deadline() + void run(boost::asio::chrono::steady_clock::duration timeout) { - // Check whether the deadline has passed. We compare the deadline against - // the current time since a new asynchronous operation may have moved the - // deadline before this actor had a chance to run. - if (deadline_.expires_at() <= deadline_timer::traits_type::now()) + // Restart the io_context, as it may have been left in the "stopped" state + // by a previous operation. + io_context_.restart(); + + // Block until the asynchronous operation has completed, or timed out. If + // the pending asynchronous operation is a composed operation, the deadline + // applies to the entire operation, rather than individual operations on + // the socket. + io_context_.run_for(timeout); + + // If the asynchronous operation completed successfully then the io_context + // would have been stopped due to running out of work. If it was not + // stopped, then the io_context::run_for call must have timed out. + if (!io_context_.stopped()) { - // The deadline has passed. The outstanding asynchronous operation needs - // to be cancelled so that the blocked receive() function will return. - // - // Please note that cancel() has portability issues on some versions of - // Microsoft Windows, and it may be necessary to use close() instead. - // Consult the documentation for cancel() for further information. + // Cancel the outstanding asynchronous operation. socket_.cancel(); - // There is no longer an active deadline. The expiry is set to positive - // infinity so that the actor takes no action until a new deadline is set. - deadline_.expires_at(boost::posix_time::pos_infin); + // Run the io_context again until the operation completes. + io_context_.run(); } - - // Put the actor back to sleep. - deadline_.async_wait(boost::bind(&client::check_deadline, this)); } static void handle_receive( @@ -131,7 +103,6 @@ private: private: boost::asio::io_context io_context_; udp::socket socket_; - deadline_timer deadline_; }; //---------------------------------------------------------------------- @@ -144,7 +115,7 @@ int main(int argc, char* argv[]) if (argc != 3) { - std::cerr << "Usage: blocking_udp_timeout \n"; + std::cerr << "Usage: blocking_udp_client \n"; return 1; } @@ -159,7 +130,7 @@ int main(int argc, char* argv[]) char data[1024]; boost::system::error_code ec; std::size_t n = c.receive(boost::asio::buffer(data), - boost::posix_time::seconds(10), ec); + boost::asio::chrono::seconds(10), ec); if (ec) { diff --git a/doc/html/boost_asio/example/cpp03/timeouts/server.cpp b/doc/html/boost_asio/example/cpp03/timeouts/server.cpp index 23c276521e..be85fc2dbe 100644 --- a/doc/html/boost_asio/example/cpp03/timeouts/server.cpp +++ b/doc/html/boost_asio/example/cpp03/timeouts/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -13,18 +13,19 @@ #include #include #include +#include #include #include #include -#include +#include #include #include #include #include -#include +#include #include -using boost::asio::deadline_timer; +using boost::asio::steady_timer; using boost::asio::ip::tcp; using boost::asio::ip::udp; @@ -121,8 +122,8 @@ private: // +-------------+ +--------------+ // // The output actor first waits for an output message to be enqueued. It does -// this by using a deadline_timer as an asynchronous condition variable. The -// deadline_timer will be signalled whenever the output queue is non-empty. +// this by using a steady_timer as an asynchronous condition variable. The +// steady_timer will be signalled whenever the output queue is non-empty. // // Once a message is available, it is sent to the client. The deadline for // sending a complete message is 30 seconds. After the message is successfully @@ -140,13 +141,13 @@ public: non_empty_output_queue_(io_context), output_deadline_(io_context) { - input_deadline_.expires_at(boost::posix_time::pos_infin); - output_deadline_.expires_at(boost::posix_time::pos_infin); + input_deadline_.expires_at(steady_timer::time_point::max()); + output_deadline_.expires_at(steady_timer::time_point::max()); - // The non_empty_output_queue_ deadline_timer is set to pos_infin whenever - // the output queue is empty. This ensures that the output actor stays - // asleep until a message is put into the queue. - non_empty_output_queue_.expires_at(boost::posix_time::pos_infin); + // The non_empty_output_queue_ steady_timer is set to the maximum time + // point whenever the output queue is empty. This ensures that the output + // actor stays asleep until a message is put into the queue. + non_empty_output_queue_.expires_at(steady_timer::time_point::max()); } tcp::socket& socket() @@ -195,20 +196,21 @@ private: // Signal that the output queue contains messages. Modifying the expiry // will wake the output actor, if it is waiting on the timer. - non_empty_output_queue_.expires_at(boost::posix_time::neg_infin); + non_empty_output_queue_.expires_at(steady_timer::time_point::min()); } void start_read() { // Set a deadline for the read operation. - input_deadline_.expires_from_now(boost::posix_time::seconds(30)); + input_deadline_.expires_after(boost::asio::chrono::seconds(30)); // Start an asynchronous operation to read a newline-delimited message. - boost::asio::async_read_until(socket_, input_buffer_, '\n', - boost::bind(&tcp_session::handle_read, shared_from_this(), _1)); + boost::asio::async_read_until(socket_, + boost::asio::dynamic_buffer(input_buffer_), '\n', + boost::bind(&tcp_session::handle_read, shared_from_this(), _1, _2)); } - void handle_read(const boost::system::error_code& ec) + void handle_read(const boost::system::error_code& ec, std::size_t n) { if (stopped()) return; @@ -216,9 +218,8 @@ private: if (!ec) { // Extract the newline-delimited message from the buffer. - std::string msg; - std::istream is(&input_buffer_); - std::getline(is, msg); + std::string msg(input_buffer_.substr(0, n - 1)); + input_buffer_.erase(0, n); if (!msg.empty()) { @@ -234,7 +235,7 @@ private: // Signal that the output queue contains messages. Modifying the // expiry will wake the output actor, if it is waiting on the timer. - non_empty_output_queue_.expires_at(boost::posix_time::neg_infin); + non_empty_output_queue_.expires_at(steady_timer::time_point::min()); } } @@ -256,7 +257,7 @@ private: // There are no messages that are ready to be sent. The actor goes to // sleep by waiting on the non_empty_output_queue_ timer. When a new // message is added, the timer will be modified and the actor will wake. - non_empty_output_queue_.expires_at(boost::posix_time::pos_infin); + non_empty_output_queue_.expires_at(steady_timer::time_point::max()); non_empty_output_queue_.async_wait( boost::bind(&tcp_session::await_output, shared_from_this())); } @@ -269,7 +270,7 @@ private: void start_write() { // Set a deadline for the write operation. - output_deadline_.expires_from_now(boost::posix_time::seconds(30)); + output_deadline_.expires_after(boost::asio::chrono::seconds(30)); // Start an asynchronous operation to send a message. boost::asio::async_write(socket_, @@ -294,7 +295,7 @@ private: } } - void check_deadline(deadline_timer* deadline) + void check_deadline(steady_timer* deadline) { if (stopped()) return; @@ -302,7 +303,7 @@ private: // Check whether the deadline has passed. We compare the deadline against // the current time since a new asynchronous operation may have moved the // deadline before this actor had a chance to run. - if (deadline->expires_at() <= deadline_timer::traits_type::now()) + if (deadline->expiry() <= steady_timer::clock_type::now()) { // The deadline has passed. Stop the session. The other actors will // terminate as soon as possible. @@ -319,11 +320,11 @@ private: channel& channel_; tcp::socket socket_; - boost::asio::streambuf input_buffer_; - deadline_timer input_deadline_; + std::string input_buffer_; + steady_timer input_deadline_; std::deque output_queue_; - deadline_timer non_empty_output_queue_; - deadline_timer output_deadline_; + steady_timer non_empty_output_queue_; + steady_timer output_deadline_; }; typedef boost::shared_ptr tcp_session_ptr; @@ -339,6 +340,7 @@ public: : socket_(io_context) { socket_.connect(broadcast_endpoint); + socket_.set_option(udp::socket::broadcast(true)); } private: diff --git a/doc/html/boost_asio/example/cpp03/timers/tick_count_timer.cpp b/doc/html/boost_asio/example/cpp03/timers/tick_count_timer.cpp deleted file mode 100644 index 8111a5cacd..0000000000 --- a/doc/html/boost_asio/example/cpp03/timers/tick_count_timer.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// -// tick_count_timer.cpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the 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 -#include -#include - -#if defined(WIN32) -# include -#else -# error This example is for Windows only! -#endif - -struct tick_count_traits -{ - // The time type. This type has no constructor that takes a DWORD to ensure - // that the timer can only be used with relative times. - class time_type - { - public: - time_type() : ticks_(0) {} - private: - friend struct tick_count_traits; - DWORD ticks_; - }; - - // The duration type. According to the TimeTraits requirements, the duration - // must be a signed type. This means we can't handle durations larger than - // 2^31. - class duration_type - { - public: - duration_type() : ticks_(0) {} - duration_type(LONG ticks) : ticks_(ticks) {} - private: - friend struct tick_count_traits; - LONG ticks_; - }; - - // Get the current time. - static time_type now() - { - time_type result; - result.ticks_ = ::GetTickCount(); - return result; - } - - // Add a duration to a time. - static time_type add(const time_type& t, const duration_type& d) - { - time_type result; - result.ticks_ = t.ticks_ + d.ticks_; - return result; - } - - // Subtract one time from another. - static duration_type subtract(const time_type& t1, const time_type& t2) - { - // DWORD tick count values can wrap (see less_than() below). We'll convert - // to a duration by taking the absolute difference and adding the sign - // based on which is the "lesser" absolute time. - return duration_type(less_than(t1, t2) - ? -static_cast(t2.ticks_ - t1.ticks_) - : static_cast(t1.ticks_ - t2.ticks_)); - } - - // Test whether one time is less than another. - static bool less_than(const time_type& t1, const time_type& t2) - { - // DWORD tick count values wrap periodically, so we'll use a heuristic that - // says that if subtracting t1 from t2 yields a value smaller than 2^31, - // then t1 is probably less than t2. This means that we can't handle - // durations larger than 2^31, which shouldn't be a problem in practice. - return (t2.ticks_ - t1.ticks_) < static_cast(1 << 31); - } - - // Convert to POSIX duration type. - static boost::posix_time::time_duration to_posix_duration( - const duration_type& d) - { - return boost::posix_time::milliseconds(d.ticks_); - } -}; - -typedef boost::asio::basic_deadline_timer< - DWORD, tick_count_traits> tick_count_timer; - -void handle_timeout(const boost::system::error_code&) -{ - std::cout << "handle_timeout\n"; -} - -int main() -{ - try - { - boost::asio::io_context io_context; - - tick_count_timer timer(io_context, 5000); - std::cout << "Starting synchronous wait\n"; - timer.wait(); - std::cout << "Finished synchronous wait\n"; - - timer.expires_from_now(5000); - std::cout << "Starting asynchronous wait\n"; - timer.async_wait(&handle_timeout); - io_context.run(); - std::cout << "Finished asynchronous wait\n"; - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/doc/html/boost_asio/example/cpp03/timers/time_t_timer.cpp b/doc/html/boost_asio/example/cpp03/timers/time_t_timer.cpp index 95b443eccd..061ed81bf1 100644 --- a/doc/html/boost_asio/example/cpp03/timers/time_t_timer.cpp +++ b/doc/html/boost_asio/example/cpp03/timers/time_t_timer.cpp @@ -2,7 +2,7 @@ // time_t_timer.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the 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,53 +12,66 @@ #include #include -struct time_t_traits +// A custom implementation of the Clock concept from the standard C++ library. +struct time_t_clock { - // The time type. - typedef std::time_t time_type; - // The duration type. - struct duration_type - { - duration_type() : value(0) {} - duration_type(std::time_t v) : value(v) {} - std::time_t value; - }; + typedef boost::asio::chrono::steady_clock::duration duration; - // Get the current time. - static time_type now() - { - return std::time(0); - } + // The duration's underlying arithmetic representation. + typedef duration::rep rep; - // Add a duration to a time. - static time_type add(const time_type& t, const duration_type& d) - { - return t + d.value; - } + // The ratio representing the duration's tick period. + typedef duration::period period; + + // An absolute time point represented using the clock. + typedef boost::asio::chrono::time_point time_point; + + // The clock is not monotonically increasing. + static const bool is_steady = false; - // Subtract one time from another. - static duration_type subtract(const time_type& t1, const time_type& t2) + // Get the current time. + static time_point now() { - return duration_type(t1 - t2); + return time_point() + boost::asio::chrono::seconds(std::time(0)); } +}; - // Test whether one time is less than another. - static bool less_than(const time_type& t1, const time_type& t2) +// The boost::asio::basic_waitable_timer template accepts an optional WaitTraits +// template parameter. The underlying time_t clock has one-second granularity, +// so these traits may be customised to reduce the latency between the clock +// ticking over and a wait operation's completion. When the timeout is near +// (less than one second away) we poll the clock more frequently to detect the +// time change closer to when it occurs. The user can select the appropriate +// trade off between accuracy and the increased CPU cost of polling. In extreme +// cases, a zero duration may be returned to make the timers as accurate as +// possible, albeit with 100% CPU usage. +struct time_t_wait_traits +{ + // Determine how long until the clock should be next polled to determine + // whether the duration has elapsed. + static time_t_clock::duration to_wait_duration( + const time_t_clock::duration& d) { - return t1 < t2; + if (d > boost::asio::chrono::seconds(1)) + return d - boost::asio::chrono::seconds(1); + else if (d > boost::asio::chrono::seconds(0)) + return boost::asio::chrono::milliseconds(10); + else + return boost::asio::chrono::seconds(0); } - // Convert to POSIX duration type. - static boost::posix_time::time_duration to_posix_duration( - const duration_type& d) + // Determine how long until the clock should be next polled to determine + // whether the absoluate time has been reached. + static time_t_clock::duration to_wait_duration( + const time_t_clock::time_point& t) { - return boost::posix_time::seconds(d.value); + return to_wait_duration(t - time_t_clock::now()); } }; -typedef boost::asio::basic_deadline_timer< - std::time_t, time_t_traits> time_t_timer; +typedef boost::asio::basic_waitable_timer< + time_t_clock, time_t_wait_traits> time_t_timer; void handle_timeout(const boost::system::error_code&) { @@ -73,12 +86,12 @@ int main() time_t_timer timer(io_context); - timer.expires_from_now(5); + timer.expires_after(boost::asio::chrono::seconds(5)); std::cout << "Starting synchronous wait\n"; timer.wait(); std::cout << "Finished synchronous wait\n"; - timer.expires_from_now(5); + timer.expires_after(boost::asio::chrono::seconds(5)); std::cout << "Starting asynchronous wait\n"; timer.async_wait(&handle_timeout); io_context.run(); diff --git a/doc/html/boost_asio/example/cpp03/windows/transmit_file.cpp b/doc/html/boost_asio/example/cpp03/windows/transmit_file.cpp index 38ff8a9d60..2f2f05c735 100644 --- a/doc/html/boost_asio/example/cpp03/windows/transmit_file.cpp +++ b/doc/html/boost_asio/example/cpp03/windows/transmit_file.cpp @@ -2,7 +2,7 @@ // transmit_file.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/allocation/server.cpp b/doc/html/boost_asio/example/cpp11/allocation/server.cpp index 5be7508dcc..fc1b03eaa3 100644 --- a/doc/html/boost_asio/example/cpp11/allocation/server.cpp +++ b/doc/html/boost_asio/example/cpp11/allocation/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/buffers/reference_counted.cpp b/doc/html/boost_asio/example/cpp11/buffers/reference_counted.cpp index 462d5f04e1..e56778f249 100644 --- a/doc/html/boost_asio/example/cpp11/buffers/reference_counted.cpp +++ b/doc/html/boost_asio/example/cpp11/buffers/reference_counted.cpp @@ -2,7 +2,7 @@ // reference_counted.cpp // ~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -13,6 +13,7 @@ #include #include #include +#include using boost::asio::ip::tcp; diff --git a/doc/html/boost_asio/example/cpp11/chat/chat_client.cpp b/doc/html/boost_asio/example/cpp11/chat/chat_client.cpp index a422e0f9f8..5ee9464cef 100644 --- a/doc/html/boost_asio/example/cpp11/chat/chat_client.cpp +++ b/doc/html/boost_asio/example/cpp11/chat/chat_client.cpp @@ -2,7 +2,7 @@ // chat_client.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/chat/chat_message.hpp b/doc/html/boost_asio/example/cpp11/chat/chat_message.hpp index d2edd1cc76..629105b05b 100644 --- a/doc/html/boost_asio/example/cpp11/chat/chat_message.hpp +++ b/doc/html/boost_asio/example/cpp11/chat/chat_message.hpp @@ -2,7 +2,7 @@ // chat_message.hpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/chat/chat_server.cpp b/doc/html/boost_asio/example/cpp11/chat/chat_server.cpp index 4db62b4ba3..6253ff2de9 100644 --- a/doc/html/boost_asio/example/cpp11/chat/chat_server.cpp +++ b/doc/html/boost_asio/example/cpp11/chat/chat_server.cpp @@ -2,7 +2,7 @@ // chat_server.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp index 14a3810a63..34fbb48808 100644 --- a/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp @@ -2,7 +2,7 @@ // async_tcp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp index 3e0ab89586..d6e6587ee4 100644 --- a/doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp @@ -2,7 +2,7 @@ // async_udp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp b/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp index 557b14e41d..fe6c447b39 100644 --- a/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp +++ b/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp @@ -2,7 +2,7 @@ // blocking_tcp_echo_client.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp index 44c69c0dae..c00a585242 100644 --- a/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp @@ -2,7 +2,7 @@ // blocking_tcp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp b/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp index 8be33a0688..887891a737 100644 --- a/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp +++ b/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp @@ -2,7 +2,7 @@ // blocking_udp_echo_client.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp index 6626d74d82..0941b0c8d4 100644 --- a/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp @@ -2,7 +2,7 @@ // blocking_udp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/executors/fork_join.cpp b/doc/html/boost_asio/example/cpp11/executors/fork_join.cpp index 4cfd5e6fca..98926d53fe 100644 --- a/doc/html/boost_asio/example/cpp11/executors/fork_join.cpp +++ b/doc/html/boost_asio/example/cpp11/executors/fork_join.cpp @@ -6,6 +6,7 @@ #include #include #include +#include using boost::asio::dispatch; using boost::asio::execution_context; diff --git a/doc/html/boost_asio/example/cpp11/executors/pipeline.cpp b/doc/html/boost_asio/example/cpp11/executors/pipeline.cpp index 52b70cad56..9c2a778fee 100644 --- a/doc/html/boost_asio/example/cpp11/executors/pipeline.cpp +++ b/doc/html/boost_asio/example/cpp11/executors/pipeline.cpp @@ -11,6 +11,7 @@ #include #include #include +#include using boost::asio::execution_context; using boost::asio::executor_binder; diff --git a/doc/html/boost_asio/example/cpp11/fork/daemon.cpp b/doc/html/boost_asio/example/cpp11/fork/daemon.cpp index 4e0557365b..2661926220 100644 --- a/doc/html/boost_asio/example/cpp11/fork/daemon.cpp +++ b/doc/html/boost_asio/example/cpp11/fork/daemon.cpp @@ -2,7 +2,7 @@ // daemon.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/fork/process_per_connection.cpp b/doc/html/boost_asio/example/cpp11/fork/process_per_connection.cpp index 5f68c12d89..3608c440da 100644 --- a/doc/html/boost_asio/example/cpp11/fork/process_per_connection.cpp +++ b/doc/html/boost_asio/example/cpp11/fork/process_per_connection.cpp @@ -2,7 +2,7 @@ // process_per_connection.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/futures/daytime_client.cpp b/doc/html/boost_asio/example/cpp11/futures/daytime_client.cpp index 2ec8a67290..1e49fc87d3 100644 --- a/doc/html/boost_asio/example/cpp11/futures/daytime_client.cpp +++ b/doc/html/boost_asio/example/cpp11/futures/daytime_client.cpp @@ -2,7 +2,7 @@ // daytime_client.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/handler_tracking/async_tcp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/handler_tracking/async_tcp_echo_server.cpp index 14a3810a63..34fbb48808 100644 --- a/doc/html/boost_asio/example/cpp11/handler_tracking/async_tcp_echo_server.cpp +++ b/doc/html/boost_asio/example/cpp11/handler_tracking/async_tcp_echo_server.cpp @@ -2,7 +2,7 @@ // async_tcp_echo_server.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/handler_tracking/custom_tracking.hpp b/doc/html/boost_asio/example/cpp11/handler_tracking/custom_tracking.hpp index 7e039b5562..997e1588c3 100644 --- a/doc/html/boost_asio/example/cpp11/handler_tracking/custom_tracking.hpp +++ b/doc/html/boost_asio/example/cpp11/handler_tracking/custom_tracking.hpp @@ -2,7 +2,7 @@ // custom_tracking.hpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/connection.cpp b/doc/html/boost_asio/example/cpp11/http/server/connection.cpp index 733fe69d27..5eed24764e 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/connection.cpp +++ b/doc/html/boost_asio/example/cpp11/http/server/connection.cpp @@ -2,7 +2,7 @@ // connection.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/connection.hpp b/doc/html/boost_asio/example/cpp11/http/server/connection.hpp index d459e5f8cc..5f3ce5c377 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/connection.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/connection.hpp @@ -2,7 +2,7 @@ // connection.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/connection_manager.cpp b/doc/html/boost_asio/example/cpp11/http/server/connection_manager.cpp index e3e18ca7a1..ac862994b5 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/connection_manager.cpp +++ b/doc/html/boost_asio/example/cpp11/http/server/connection_manager.cpp @@ -2,7 +2,7 @@ // connection_manager.cpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/connection_manager.hpp b/doc/html/boost_asio/example/cpp11/http/server/connection_manager.hpp index 617a54f1ba..027b9e92d8 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/connection_manager.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/connection_manager.hpp @@ -2,7 +2,7 @@ // connection_manager.hpp // ~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/header.hpp b/doc/html/boost_asio/example/cpp11/http/server/header.hpp index 877211f190..18bad986a4 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/header.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/header.hpp @@ -2,7 +2,7 @@ // header.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/main.cpp b/doc/html/boost_asio/example/cpp11/http/server/main.cpp index fcc72ecc93..15cffd5234 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/main.cpp +++ b/doc/html/boost_asio/example/cpp11/http/server/main.cpp @@ -2,7 +2,7 @@ // main.cpp // ~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/mime_types.cpp b/doc/html/boost_asio/example/cpp11/http/server/mime_types.cpp index c05ee4b656..0762cf7fea 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/mime_types.cpp +++ b/doc/html/boost_asio/example/cpp11/http/server/mime_types.cpp @@ -2,7 +2,7 @@ // mime_types.cpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/mime_types.hpp b/doc/html/boost_asio/example/cpp11/http/server/mime_types.hpp index 891c443669..a5f352e69a 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/mime_types.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/mime_types.hpp @@ -2,7 +2,7 @@ // mime_types.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/reply.cpp b/doc/html/boost_asio/example/cpp11/http/server/reply.cpp index c7e9b9f2b7..e1e23daaa6 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/reply.cpp +++ b/doc/html/boost_asio/example/cpp11/http/server/reply.cpp @@ -2,7 +2,7 @@ // reply.cpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/reply.hpp b/doc/html/boost_asio/example/cpp11/http/server/reply.hpp index 51d495bc65..03293227e7 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/reply.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/reply.hpp @@ -2,7 +2,7 @@ // reply.hpp // ~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/request.hpp b/doc/html/boost_asio/example/cpp11/http/server/request.hpp index 20efff4dd3..6488b1ddeb 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/request.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/request.hpp @@ -2,7 +2,7 @@ // request.hpp // ~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/request_handler.cpp b/doc/html/boost_asio/example/cpp11/http/server/request_handler.cpp index 419c62b5ae..04a5959b12 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/request_handler.cpp +++ b/doc/html/boost_asio/example/cpp11/http/server/request_handler.cpp @@ -2,7 +2,7 @@ // request_handler.cpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/request_handler.hpp b/doc/html/boost_asio/example/cpp11/http/server/request_handler.hpp index e2dff5c26c..82bd61392a 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/request_handler.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/request_handler.hpp @@ -2,7 +2,7 @@ // request_handler.hpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/request_parser.cpp b/doc/html/boost_asio/example/cpp11/http/server/request_parser.cpp index 2104034ea7..4b148c5af6 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/request_parser.cpp +++ b/doc/html/boost_asio/example/cpp11/http/server/request_parser.cpp @@ -2,7 +2,7 @@ // request_parser.cpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/request_parser.hpp b/doc/html/boost_asio/example/cpp11/http/server/request_parser.hpp index 2c1d05ab04..aaae6b9539 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/request_parser.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/request_parser.hpp @@ -2,7 +2,7 @@ // request_parser.hpp // ~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/server.cpp b/doc/html/boost_asio/example/cpp11/http/server/server.cpp index df453b8ed2..ce415b80fd 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/server.cpp +++ b/doc/html/boost_asio/example/cpp11/http/server/server.cpp @@ -2,7 +2,7 @@ // server.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/http/server/server.hpp b/doc/html/boost_asio/example/cpp11/http/server/server.hpp index 7b8aee0c5d..820b46bc13 100644 --- a/doc/html/boost_asio/example/cpp11/http/server/server.hpp +++ b/doc/html/boost_asio/example/cpp11/http/server/server.hpp @@ -2,7 +2,7 @@ // server.hpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/invocation/prioritised_handlers.cpp b/doc/html/boost_asio/example/cpp11/invocation/prioritised_handlers.cpp index d7ef7b1ff4..99ea7454f2 100644 --- a/doc/html/boost_asio/example/cpp11/invocation/prioritised_handlers.cpp +++ b/doc/html/boost_asio/example/cpp11/invocation/prioritised_handlers.cpp @@ -2,7 +2,7 @@ // prioritised_handlers.cpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/local/connect_pair.cpp b/doc/html/boost_asio/example/cpp11/local/connect_pair.cpp index 727b12f850..ad5428dd66 100644 --- a/doc/html/boost_asio/example/cpp11/local/connect_pair.cpp +++ b/doc/html/boost_asio/example/cpp11/local/connect_pair.cpp @@ -2,7 +2,7 @@ // connect_pair.cpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/local/iostream_client.cpp b/doc/html/boost_asio/example/cpp11/local/iostream_client.cpp index 57c0faf86e..7bab1d39fa 100644 --- a/doc/html/boost_asio/example/cpp11/local/iostream_client.cpp +++ b/doc/html/boost_asio/example/cpp11/local/iostream_client.cpp @@ -2,7 +2,7 @@ // stream_client.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/local/stream_client.cpp b/doc/html/boost_asio/example/cpp11/local/stream_client.cpp index 234d190b8e..0faf617ea7 100644 --- a/doc/html/boost_asio/example/cpp11/local/stream_client.cpp +++ b/doc/html/boost_asio/example/cpp11/local/stream_client.cpp @@ -2,7 +2,7 @@ // stream_client.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/local/stream_server.cpp b/doc/html/boost_asio/example/cpp11/local/stream_server.cpp index 7413773a8f..abfdf3d2fc 100644 --- a/doc/html/boost_asio/example/cpp11/local/stream_server.cpp +++ b/doc/html/boost_asio/example/cpp11/local/stream_server.cpp @@ -2,7 +2,7 @@ // stream_server.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/multicast/receiver.cpp b/doc/html/boost_asio/example/cpp11/multicast/receiver.cpp index f77266e871..d785265b6c 100644 --- a/doc/html/boost_asio/example/cpp11/multicast/receiver.cpp +++ b/doc/html/boost_asio/example/cpp11/multicast/receiver.cpp @@ -2,7 +2,7 @@ // receiver.cpp // ~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/multicast/sender.cpp b/doc/html/boost_asio/example/cpp11/multicast/sender.cpp index 41f59d89b7..7b52e4ebe3 100644 --- a/doc/html/boost_asio/example/cpp11/multicast/sender.cpp +++ b/doc/html/boost_asio/example/cpp11/multicast/sender.cpp @@ -2,7 +2,7 @@ // sender.cpp // ~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp b/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp index 350304e63e..979c9a9273 100644 --- a/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp +++ b/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp @@ -2,7 +2,7 @@ // echo_server.cpp // ~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp11/spawn/parallel_grep.cpp b/doc/html/boost_asio/example/cpp11/spawn/parallel_grep.cpp index b15173be2c..e4af2624e7 100644 --- a/doc/html/boost_asio/example/cpp11/spawn/parallel_grep.cpp +++ b/doc/html/boost_asio/example/cpp11/spawn/parallel_grep.cpp @@ -2,7 +2,7 @@ // parallel_grep.cpp // ~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/boost_asio/example/cpp17/coroutines_ts/chat_server.cpp b/doc/html/boost_asio/example/cpp17/coroutines_ts/chat_server.cpp new file mode 100644 index 0000000000..cf6260ea57 --- /dev/null +++ b/doc/html/boost_asio/example/cpp17/coroutines_ts/chat_server.cpp @@ -0,0 +1,224 @@ +// +// chat_server.cpp +// ~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using boost::asio::ip::tcp; +using boost::asio::experimental::awaitable; +using boost::asio::experimental::co_spawn; +using boost::asio::experimental::detached; +using boost::asio::experimental::redirect_error; +namespace this_coro = boost::asio::experimental::this_coro; + +//---------------------------------------------------------------------- + +class chat_participant +{ +public: + virtual ~chat_participant() {} + virtual void deliver(const std::string& msg) = 0; +}; + +typedef std::shared_ptr chat_participant_ptr; + +//---------------------------------------------------------------------- + +class chat_room +{ +public: + void join(chat_participant_ptr participant) + { + participants_.insert(participant); + for (auto msg: recent_msgs_) + participant->deliver(msg); + } + + void leave(chat_participant_ptr participant) + { + participants_.erase(participant); + } + + void deliver(const std::string& msg) + { + recent_msgs_.push_back(msg); + while (recent_msgs_.size() > max_recent_msgs) + recent_msgs_.pop_front(); + + for (auto participant: participants_) + participant->deliver(msg); + } + +private: + std::set participants_; + enum { max_recent_msgs = 100 }; + std::deque recent_msgs_; +}; + +//---------------------------------------------------------------------- + +class chat_session + : public chat_participant, + public std::enable_shared_from_this +{ +public: + chat_session(tcp::socket socket, chat_room& room) + : socket_(std::move(socket)), + timer_(socket_.get_executor().context()), + room_(room) + { + timer_.expires_at(std::chrono::steady_clock::time_point::max()); + } + + void start() + { + room_.join(shared_from_this()); + + co_spawn(socket_.get_executor(), + [self = shared_from_this()]{ return self->reader(); }, + detached); + + co_spawn(socket_.get_executor(), + [self = shared_from_this()]{ return self->writer(); }, + detached); + } + + void deliver(const std::string& msg) + { + write_msgs_.push_back(msg); + timer_.cancel_one(); + } + +private: + awaitable reader() + { + auto token = co_await this_coro::token(); + + try + { + for (std::string read_msg;;) + { + std::size_t n = co_await boost::asio::async_read_until(socket_, + boost::asio::dynamic_buffer(read_msg, 1024), "\n", token); + + room_.deliver(read_msg.substr(0, n)); + read_msg.erase(0, n); + } + } + catch (std::exception&) + { + stop(); + } + } + + awaitable writer() + { + auto token = co_await this_coro::token(); + + try + { + while (socket_.is_open()) + { + if (write_msgs_.empty()) + { + boost::system::error_code ec; + co_await timer_.async_wait(redirect_error(token, ec)); + } + else + { + co_await boost::asio::async_write(socket_, + boost::asio::buffer(write_msgs_.front()), token); + write_msgs_.pop_front(); + } + } + } + catch (std::exception&) + { + stop(); + } + } + + void stop() + { + room_.leave(shared_from_this()); + socket_.close(); + timer_.cancel(); + } + + tcp::socket socket_; + boost::asio::steady_timer timer_; + chat_room& room_; + std::deque write_msgs_; +}; + +//---------------------------------------------------------------------- + +awaitable listener(tcp::acceptor acceptor) +{ + auto token = co_await this_coro::token(); + + chat_room room; + + for (;;) + { + std::make_shared( + co_await acceptor.async_accept(token), + room + )->start(); + } +} + +//---------------------------------------------------------------------- + +int main(int argc, char* argv[]) +{ + try + { + if (argc < 2) + { + std::cerr << "Usage: chat_server [ ...]\n"; + return 1; + } + + boost::asio::io_context io_context(1); + + for (int i = 1; i < argc; ++i) + { + unsigned short port = std::atoi(argv[i]); + co_spawn(io_context, + [&]{ return listener(tcp::acceptor(io_context, {tcp::v4(), port})); }, + detached); + } + + boost::asio::signal_set signals(io_context, SIGINT, SIGTERM); + signals.async_wait([&](auto, auto){ io_context.stop(); }); + + io_context.run(); + } + catch (std::exception& e) + { + std::cerr << "Exception: " << e.what() << "\n"; + } + + return 0; +} diff --git a/doc/html/boost_asio/example/cpp17/coroutines_ts/double_buffered_echo_server.cpp b/doc/html/boost_asio/example/cpp17/coroutines_ts/double_buffered_echo_server.cpp new file mode 100644 index 0000000000..2355df29c0 --- /dev/null +++ b/doc/html/boost_asio/example/cpp17/coroutines_ts/double_buffered_echo_server.cpp @@ -0,0 +1,97 @@ +// +// double_buffered_echo_server.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the 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 +#include +#include +#include +#include +#include +#include + +using boost::asio::ip::tcp; +using boost::asio::experimental::co_spawn; +using boost::asio::experimental::detached; +namespace this_coro = boost::asio::experimental::this_coro; + +template + using awaitable = boost::asio::experimental::awaitable< + T, boost::asio::io_context::executor_type>; + +awaitable echo(tcp::socket s) +{ + auto token = co_await this_coro::token(); + + try + { + char data1[1024]; + char data2[1024]; + + char* p1 = data1; + char* p2 = data2; + + // Perform initial read into first buffer. + size_t n = co_await s.async_read_some(boost::asio::buffer(p1, 1024), token); + + for (;;) + { + // Swap received data to other buffer and initiate write operation. + std::swap(p1, p2); + auto write_result = boost::asio::async_write(s, boost::asio::buffer(p2, n), token); + + // Perform next read while write operation is in progress. + n = co_await s.async_read_some(boost::asio::buffer(p1, 1024), token); + + // Wait for write operation to complete before proceeding. + co_await write_result; + } + } + catch (std::exception& e) + { + std::printf("echo Exception: %s\n", e.what()); + } +} + +awaitable listener() +{ + auto executor = co_await this_coro::executor(); + auto token = co_await this_coro::token(); + + tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); + for (;;) + { + tcp::socket socket = co_await acceptor.async_accept(token); + co_spawn(executor, + [socket = std::move(socket)]() mutable + { + return echo(std::move(socket)); + }, + detached); + } +} + +int main() +{ + try + { + boost::asio::io_context io_context(1); + + boost::asio::signal_set signals(io_context, SIGINT, SIGTERM); + signals.async_wait([&](auto, auto){ io_context.stop(); }); + + co_spawn(io_context, listener, detached); + + io_context.run(); + } + catch (std::exception& e) + { + std::printf("Exception: %s\n", e.what()); + } +} diff --git a/doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server.cpp b/doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server.cpp new file mode 100644 index 0000000000..7f663effe9 --- /dev/null +++ b/doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server.cpp @@ -0,0 +1,82 @@ +// +// echo_server.cpp +// ~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the 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 +#include +#include +#include +#include +#include +#include + +using boost::asio::ip::tcp; +using boost::asio::experimental::co_spawn; +using boost::asio::experimental::detached; +namespace this_coro = boost::asio::experimental::this_coro; + +template + using awaitable = boost::asio::experimental::awaitable< + T, boost::asio::io_context::executor_type>; + +awaitable echo(tcp::socket socket) +{ + auto token = co_await this_coro::token(); + + try + { + char data[1024]; + for (;;) + { + std::size_t n = co_await socket.async_read_some(boost::asio::buffer(data), token); + co_await async_write(socket, boost::asio::buffer(data, n), token); + } + } + catch (std::exception& e) + { + std::printf("echo Exception: %s\n", e.what()); + } +} + +awaitable listener() +{ + auto executor = co_await this_coro::executor(); + auto token = co_await this_coro::token(); + + tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); + for (;;) + { + tcp::socket socket = co_await acceptor.async_accept(token); + co_spawn(executor, + [socket = std::move(socket)]() mutable + { + return echo(std::move(socket)); + }, + detached); + } +} + +int main() +{ + try + { + boost::asio::io_context io_context(1); + + boost::asio::signal_set signals(io_context, SIGINT, SIGTERM); + signals.async_wait([&](auto, auto){ io_context.stop(); }); + + co_spawn(io_context, listener, detached); + + io_context.run(); + } + catch (std::exception& e) + { + std::printf("Exception: %s\n", e.what()); + } +} diff --git a/doc/html/boost_asio/example/cpp17/coroutines_ts/range_based_for.cpp b/doc/html/boost_asio/example/cpp17/coroutines_ts/range_based_for.cpp new file mode 100644 index 0000000000..a43f888395 --- /dev/null +++ b/doc/html/boost_asio/example/cpp17/coroutines_ts/range_based_for.cpp @@ -0,0 +1,111 @@ +// +// range_based_for.cpp +// ~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the 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 +#include +#include +#include +#include +#include +#include + +using boost::asio::ip::tcp; +using boost::asio::experimental::awaitable; +using boost::asio::experimental::co_spawn; +using boost::asio::experimental::detached; +namespace this_coro = boost::asio::experimental::this_coro; + +class connection_iter +{ + friend class connections; + tcp::acceptor* acceptor_ = nullptr; + tcp::socket socket_; + + connection_iter(tcp::acceptor& a, tcp::socket s) + : acceptor_(&a), socket_(std::move(s)) {} + +public: + tcp::socket operator*() + { + return std::move(socket_); + } + + awaitable operator++() + { + auto token = co_await this_coro::token(); + socket_ = co_await acceptor_->async_accept(token); + } + + bool operator==(const connection_iter&) const noexcept + { + return false; + } + + bool operator!=(const connection_iter&) const noexcept + { + return true; + } +}; + +class connections +{ + tcp::acceptor& acceptor_; + +public: + explicit connections(tcp::acceptor& a) : acceptor_(a) {} + + awaitable begin() + { + auto token = co_await this_coro::token(); + tcp::socket s = co_await acceptor_.async_accept(token); + co_return connection_iter(acceptor_, std::move(s)); + } + + connection_iter end() + { + return connection_iter(acceptor_, + tcp::socket(acceptor_.get_executor().context())); + } +}; + +awaitable listener(tcp::acceptor acceptor) +{ + auto token = co_await this_coro::token(); + + for co_await (tcp::socket s : connections(acceptor)) + { + co_await boost::asio::async_write(s, boost::asio::buffer("hello\r\n", 7), token); + } +} + +int main() +{ + try + { + boost::asio::io_context io_context(1); + + boost::asio::signal_set signals(io_context, SIGINT, SIGTERM); + signals.async_wait([&](auto, auto){ io_context.stop(); }); + + tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); + co_spawn(io_context, + [acceptor = std::move(acceptor)]() mutable + { + return listener(std::move(acceptor)); + }, + detached); + + io_context.run(); + } + catch (std::exception& e) + { + std::printf("Exception: %s\n", e.what()); + } +} diff --git a/doc/html/boost_asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp b/doc/html/boost_asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp new file mode 100644 index 0000000000..57bf3f379a --- /dev/null +++ b/doc/html/boost_asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp @@ -0,0 +1,91 @@ +// +// refactored_echo_server.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the 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 +#include +#include +#include +#include +#include +#include + +using boost::asio::ip::tcp; +using boost::asio::experimental::co_spawn; +using boost::asio::experimental::detached; +namespace this_coro = boost::asio::experimental::this_coro; + +template + using awaitable = boost::asio::experimental::awaitable< + T, boost::asio::io_context::executor_type>; + +awaitable echo_once(tcp::socket& socket) +{ + auto token = co_await this_coro::token(); + + char data[128]; + std::size_t n = co_await socket.async_read_some(boost::asio::buffer(data), token); + co_await async_write(socket, boost::asio::buffer(data, n), token); +} + +awaitable echo(tcp::socket socket) +{ + try + { + for (;;) + { + // The asynchronous operations to echo a single chunk of data have been + // refactored into a separate function. When this function is called, the + // operations are still performed in the context of the current + // coroutine, and the behaviour is functionally equivalent. + co_await echo_once(socket); + } + } + catch (std::exception& e) + { + std::printf("echo Exception: %s\n", e.what()); + } +} + +awaitable listener() +{ + auto executor = co_await this_coro::executor(); + auto token = co_await this_coro::token(); + + tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); + for (;;) + { + tcp::socket socket = co_await acceptor.async_accept(token); + co_spawn(executor, + [socket = std::move(socket)]() mutable + { + return echo(std::move(socket)); + }, + detached); + } +} + +int main() +{ + try + { + boost::asio::io_context io_context(1); + + boost::asio::signal_set signals(io_context, SIGINT, SIGTERM); + signals.async_wait([&](auto, auto){ io_context.stop(); }); + + co_spawn(io_context, listener, detached); + + io_context.run(); + } + catch (std::exception& e) + { + std::printf("Exception: %s\n", e.what()); + } +} diff --git a/doc/html/boost_asio/examples.html b/doc/html/boost_asio/examples.html index f08afdcdde..02de137df4 100644 --- a/doc/html/boost_asio/examples.html +++ b/doc/html/boost_asio/examples.html @@ -39,11 +39,16 @@ only C++11 library and language facilities. These examples do not make direct use of Boost C++ libraries. +
  • + C++17 Examples: + Selected examples illustrating C++17 usage in conjunction with Technical + Specifications. +
  • -
    -

    - + Asio 1.10.10 / Boost 1.65

    @@ -110,7 +234,7 @@

    - + Asio 1.10.9 / Boost 1.64

    @@ -163,7 +287,7 @@

    - + Asio 1.10.8 / Boost 1.62

    @@ -198,7 +322,7 @@

    - + Asio 1.10.7 / Boost 1.60

    @@ -233,7 +357,7 @@

    - + Asio 1.10.6 / Boost 1.58

    @@ -313,7 +437,7 @@

    - + Asio 1.10.5 / Boost 1.57

    @@ -356,7 +480,7 @@

    - + Asio 1.10.4 / Boost 1.56

    @@ -378,7 +502,7 @@

    - + Asio 1.10.3

    @@ -413,7 +537,7 @@

    - + Asio 1.10.2

    @@ -486,7 +610,7 @@

    - + Asio 1.10.1 / Boost 1.55

    @@ -601,7 +725,7 @@

    - + Asio 1.10.0 / Boost 1.54

    @@ -751,7 +875,7 @@

    - + Asio 1.8.3 / Boost 1.53

    @@ -792,7 +916,7 @@

    - + Asio 1.8.2 / Boost 1.51

    @@ -834,7 +958,7 @@

    - + Asio 1.8.1 / Boost 1.50

    @@ -869,7 +993,7 @@

    - + Asio 1.8.0 / Boost 1.49

    @@ -916,7 +1040,7 @@

    - + Asio 1.6.1 / Boost 1.48

    @@ -1009,7 +1133,7 @@

    - + Asio 1.6.0 / Boost 1.47

    @@ -1240,7 +1364,7 @@

    - + Asio 1.4.9 / Boost 1.46.1

    @@ -1271,7 +1395,7 @@

    - + Asio 1.4.8 / Boost 1.46

    @@ -1287,7 +1411,7 @@

    - + Asio 1.4.7 / Boost 1.45

    @@ -1366,7 +1490,7 @@

    - + Asio 1.4.6 / Boost 1.44

    @@ -1434,7 +1558,7 @@

    - + Asio 1.4.5 / Boost 1.43

    @@ -1501,7 +1625,7 @@

    - + Asio 1.4.4 / Boost 1.42

    @@ -1562,7 +1686,7 @@

    - + Asio 1.4.3 / Boost 1.40

    @@ -1617,7 +1741,7 @@

    - + Asio 1.4.2 / Boost 1.39

    @@ -1670,7 +1794,7 @@

    - + Asio 1.4.1 / Boost 1.38

    @@ -1702,7 +1826,7 @@

    - + Asio 1.4.0 / Boost 1.37

    @@ -1737,7 +1861,7 @@

    - + Asio 1.2.0 / Boost 1.36

    @@ -1787,7 +1911,7 @@

    - + Asio 1.0.0 / Boost 1.35

    @@ -1797,7 +1921,7 @@ -

    Symbols

    -
    ~bad_address_cast
    +
    ~awaitable
    +
    experimental::awaitable, experimental::awaitable::~awaitable +
    +
    ~bad_address_cast
    ip::bad_address_cast, ip::bad_address_cast::~bad_address_cast
    -
    ~basic_datagram_socket
    +
    ~basic_datagram_socket
    basic_datagram_socket, basic_datagram_socket::~basic_datagram_socket
    -
    ~basic_deadline_timer
    +
    ~basic_deadline_timer
    basic_deadline_timer, basic_deadline_timer::~basic_deadline_timer
    -
    ~basic_io_object
    +
    ~basic_io_object
    basic_io_object, basic_io_object::~basic_io_object
    -
    ~basic_raw_socket
    +
    ~basic_raw_socket
    basic_raw_socket, basic_raw_socket::~basic_raw_socket
    -
    ~basic_resolver
    +
    ~basic_resolver
    ip::basic_resolver, ip::basic_resolver::~basic_resolver
    -
    ~basic_seq_packet_socket
    +
    ~basic_seq_packet_socket
    basic_seq_packet_socket, basic_seq_packet_socket::~basic_seq_packet_socket
    -
    ~basic_socket
    +
    ~basic_socket
    basic_socket, basic_socket::~basic_socket
    -
    ~basic_socket_acceptor
    +
    ~basic_socket_acceptor
    basic_socket_acceptor, basic_socket_acceptor::~basic_socket_acceptor
    -
    ~basic_socket_streambuf
    +
    ~basic_socket_streambuf
    basic_socket_streambuf, basic_socket_streambuf::~basic_socket_streambuf
    -
    ~basic_stream_socket
    +
    ~basic_stream_socket
    basic_stream_socket, basic_stream_socket::~basic_stream_socket
    -
    ~basic_waitable_timer
    +
    ~basic_waitable_timer
    basic_waitable_timer, basic_waitable_timer::~basic_waitable_timer
    -
    ~context
    +
    ~context
    ssl::context, ssl::context::~context
    -
    ~context_base
    +
    ~context_base
    ssl::context_base, ssl::context_base::~context_base
    -
    ~descriptor
    +
    ~descriptor
    posix::descriptor, posix::descriptor::~descriptor
    -
    ~descriptor_base
    +
    ~descriptor_base
    posix::descriptor_base, posix::descriptor_base::~descriptor_base
    -
    ~execution_context
    +
    ~execution_context
    execution_context, execution_context::~execution_context
    -
    ~executor
    +
    ~executor
    executor, executor::~executor
    -
    ~executor_binder
    +
    ~executor_binder
    executor_binder, executor_binder::~executor_binder
    -
    ~executor_work_guard
    +
    ~executor_work_guard
    executor_work_guard, executor_work_guard::~executor_work_guard
    -
    ~io_context
    +
    ~io_context
    io_context, io_context::~io_context
    -
    ~overlapped_handle
    +
    ~overlapped_handle
    windows::overlapped_handle, windows::overlapped_handle::~overlapped_handle
    -
    ~overlapped_ptr
    +
    ~overlapped_ptr
    windows::overlapped_ptr, windows::overlapped_ptr::~overlapped_ptr
    -
    ~resolver_base
    +
    ~resolver_base
    ip::resolver_base, ip::resolver_base::~resolver_base
    -
    ~resolver_query_base
    +
    ~resolver_query_base
    ip::resolver_query_base, ip::resolver_query_base::~resolver_query_base
    -
    ~serial_port
    +
    ~serial_port
    serial_port, serial_port::~serial_port
    -
    ~serial_port_base
    +
    ~serial_port_base
    serial_port_base, serial_port_base::~serial_port_base
    -
    ~service
    +
    ~service
    execution_context::service, execution_context::service::~service
    io_context::service, io_context::service::~service
    -
    ~signal_set
    +
    ~signal_set
    signal_set, signal_set::~signal_set
    -
    ~socket_base
    +
    ~socket_base
    socket_base, socket_base::~socket_base
    -
    ~strand
    +
    ~strand
    io_context::strand, io_context::strand::~strand
    strand, strand::~strand
    -
    ~stream
    +
    ~stream
    ssl::stream, ssl::stream::~stream
    -
    ~stream_base
    +
    ~stream_base
    ssl::stream_base, ssl::stream_base::~stream_base
    -
    ~system_context
    +
    ~system_context
    system_context, system_context::~system_context
    -
    ~thread_pool
    +
    ~thread_pool
    thread_pool, thread_pool::~thread_pool
    -
    ~work
    +
    ~work
    io_context::work, io_context::work::~work
    @@ -151,20 +154,20 @@

    A

    -
    accept
    +
    accept
    basic_socket_acceptor, basic_socket_acceptor::accept
    -
    acceptor
    +
    acceptor
    ip::tcp, ip::tcp::acceptor
    local::stream_protocol, local::stream_protocol::acceptor
    -
    access_denied
    +
    access_denied
    error::basic_errors, error::basic_errors
    -
    add
    +
    add
    signal_set, signal_set::add
    @@ -173,7 +176,7 @@ boost::posix_time::ptime >::add
    -
    address
    +
    address
    ip::address, ip::address::address
    @@ -184,7 +187,7 @@
    ip::network_v6, ip::network_v6::address
    -
    address_configured
    +
    address_configured
    ip::basic_resolver, ip::basic_resolver::address_configured
    @@ -195,22 +198,22 @@
    ip::resolver_query_base, ip::resolver_query_base::address_configured
    -
    address_family_not_supported
    +
    address_family_not_supported
    error::basic_errors, error::basic_errors
    -
    address_in_use
    +
    address_in_use
    error::basic_errors, error::basic_errors
    -
    address_v4
    +
    address_v4
    ip::address_v4, ip::address_v4::address_v4
    -
    address_v6
    +
    address_v6
    ip::address_v6, ip::address_v6::address_v6
    -
    add_certificate_authority
    +
    add_certificate_authority
    ssl::context, ssl::context::add_certificate_authority
    -
    add_service, add_service +
    add_service, add_service
    execution_context, execution_context::add_service @@ -222,13 +225,13 @@
    thread_pool, thread_pool::add_service
    -
    add_verify_path
    +
    add_verify_path
    ssl::context, ssl::context::add_verify_path
    -
    allocator_type
    +
    allocator_type
    use_future_t, use_future_t::allocator_type
    -
    all_matching
    +
    all_matching
    ip::basic_resolver, ip::basic_resolver::all_matching
    @@ -239,41 +242,41 @@
    ip::resolver_query_base, ip::resolver_query_base::all_matching
    -
    already_connected
    +
    already_connected
    error::basic_errors, error::basic_errors
    -
    already_open
    +
    already_open
    error::misc_errors, error::misc_errors
    -
    already_started
    +
    already_started
    error::basic_errors, error::basic_errors
    -
    any
    +
    any
    ip::address_v4, ip::address_v4::any
    ip::address_v6, ip::address_v6::any
    -
    argument_type
    +
    argument_type
    executor_binder, executor_binder::argument_type
    -
    asio_handler_allocate, asio_handler_allocate +
    asio_handler_allocate, asio_handler_allocate
    -
    asio_handler_deallocate, asio_handler_deallocate +
    asio_handler_deallocate, asio_handler_deallocate
    -
    asio_handler_invoke, asio_handler_invoke +
    asio_handler_invoke, asio_handler_invoke
    -
    asio_handler_is_continuation, asio_handler_is_continuation +
    asio_handler_is_continuation, asio_handler_is_continuation
    -
    asn1
    +
    asn1
    ssl::context, ssl::context::file_format
    ssl::context_base, ssl::context_base::file_format
    -
    assign
    +
    assign
    basic_datagram_socket, basic_datagram_socket::assign
    @@ -302,13 +305,13 @@
    windows::stream_handle, windows::stream_handle::assign
    -
    async_accept
    +
    async_accept
    basic_socket_acceptor, basic_socket_acceptor::async_accept
    -
    async_completion
    +
    async_completion
    async_completion, async_completion::async_completion
    -
    async_connect, async_connect +
    async_connect, async_connect
    basic_datagram_socket, basic_datagram_socket::async_connect @@ -322,28 +325,28 @@
    basic_stream_socket, basic_stream_socket::async_connect
    -
    async_fill
    +
    async_fill
    buffered_read_stream, buffered_read_stream::async_fill
    buffered_stream, buffered_stream::async_fill
    -
    async_flush
    +
    async_flush
    buffered_stream, buffered_stream::async_flush
    buffered_write_stream, buffered_write_stream::async_flush
    -
    async_handshake
    +
    async_handshake
    ssl::stream, ssl::stream::async_handshake
    -
    async_read, async_read +
    async_read, async_read
    -
    async_read_at, async_read_at +
    async_read_at, async_read_at
    -
    async_read_some
    +
    async_read_some
    basic_stream_socket, basic_stream_socket::async_read_some
    @@ -362,12 +365,12 @@
    windows::stream_handle, windows::stream_handle::async_read_some
    -
    async_read_some_at
    +
    async_read_some_at
    windows::random_access_handle, windows::random_access_handle::async_read_some_at
    -
    async_read_until, async_read_until +
    async_read_until, async_read_until
    -
    async_receive
    +
    async_receive
    basic_datagram_socket, basic_datagram_socket::async_receive
    @@ -378,17 +381,17 @@
    basic_stream_socket, basic_stream_socket::async_receive
    -
    async_receive_from
    +
    async_receive_from
    basic_datagram_socket, basic_datagram_socket::async_receive_from
    basic_raw_socket, basic_raw_socket::async_receive_from
    -
    async_resolve
    +
    async_resolve
    ip::basic_resolver, ip::basic_resolver::async_resolve
    -
    async_result
    +
    async_result
    async_result, async_result::async_result
    @@ -401,7 +404,7 @@ std::packaged_task< Result(Args...)>, Signature >::async_result
    -
    async_send
    +
    async_send
    basic_datagram_socket, basic_datagram_socket::async_send
    @@ -412,17 +415,17 @@
    basic_stream_socket, basic_stream_socket::async_send
    -
    async_send_to
    +
    async_send_to
    basic_datagram_socket, basic_datagram_socket::async_send_to
    basic_raw_socket, basic_raw_socket::async_send_to
    -
    async_shutdown
    +
    async_shutdown
    ssl::stream, ssl::stream::async_shutdown
    -
    async_wait
    +
    async_wait
    basic_datagram_socket, basic_datagram_socket::async_wait
    @@ -449,11 +452,11 @@
    windows::object_handle, windows::object_handle::async_wait
    -
    async_write, async_write +
    async_write, async_write
    -
    async_write_at, async_write_at +
    async_write_at, async_write_at
    -
    async_write_some
    +
    async_write_some
    basic_stream_socket, basic_stream_socket::async_write_some
    @@ -472,10 +475,10 @@
    windows::stream_handle, windows::stream_handle::async_write_some
    -
    async_write_some_at
    +
    async_write_some_at
    windows::random_access_handle, windows::random_access_handle::async_write_some_at
    -
    at_mark
    +
    at_mark
    basic_datagram_socket, basic_datagram_socket::at_mark
    @@ -488,7 +491,7 @@
    basic_stream_socket, basic_stream_socket::at_mark
    -
    available
    +
    available
    basic_datagram_socket, basic_datagram_socket::available
    @@ -501,21 +504,27 @@
    basic_stream_socket, basic_stream_socket::available
    +
    awaitable
    +
    experimental::awaitable, experimental::awaitable::awaitable +
    +
    await_token
    +
    experimental::await_token, experimental::await_token::await_token +

    B

    -
    bad_address_cast
    +
    bad_address_cast
    ip::bad_address_cast, ip::bad_address_cast::bad_address_cast
    -
    bad_descriptor
    +
    bad_descriptor
    error::basic_errors, error::basic_errors
    -
    bad_executor
    +
    bad_executor
    bad_executor, bad_executor::bad_executor
    -
    basic_address_iterator
    +
    basic_address_iterator
    ip::basic_address_iterator< address_v4 >, ip::basic_address_iterator< @@ -526,7 +535,7 @@ address_v6 >::basic_address_iterator
    -
    basic_address_range
    +
    basic_address_range
    ip::basic_address_range< address_v4 >, ip::basic_address_range< @@ -537,13 +546,13 @@ address_v6 >::basic_address_range
    -
    basic_datagram_socket
    +
    basic_datagram_socket
    basic_datagram_socket, basic_datagram_socket::basic_datagram_socket
    -
    basic_deadline_timer
    +
    basic_deadline_timer
    basic_deadline_timer, basic_deadline_timer::basic_deadline_timer
    -
    basic_endpoint
    +
    basic_endpoint
    generic::basic_endpoint, generic::basic_endpoint::basic_endpoint
    @@ -552,61 +561,61 @@
    local::basic_endpoint, local::basic_endpoint::basic_endpoint
    -
    basic_io_object
    +
    basic_io_object
    basic_io_object, basic_io_object::basic_io_object
    -
    basic_raw_socket
    +
    basic_raw_socket
    basic_raw_socket, basic_raw_socket::basic_raw_socket
    -
    basic_resolver
    +
    basic_resolver
    ip::basic_resolver, ip::basic_resolver::basic_resolver
    -
    basic_resolver_entry
    +
    basic_resolver_entry
    ip::basic_resolver_entry, ip::basic_resolver_entry::basic_resolver_entry
    -
    basic_resolver_iterator
    +
    basic_resolver_iterator
    ip::basic_resolver_iterator, ip::basic_resolver_iterator::basic_resolver_iterator
    -
    basic_resolver_query
    +
    basic_resolver_query
    ip::basic_resolver_query, ip::basic_resolver_query::basic_resolver_query
    -
    basic_resolver_results
    +
    basic_resolver_results
    ip::basic_resolver_results, ip::basic_resolver_results::basic_resolver_results
    -
    basic_seq_packet_socket
    +
    basic_seq_packet_socket
    basic_seq_packet_socket, basic_seq_packet_socket::basic_seq_packet_socket
    -
    basic_socket
    +
    basic_socket
    basic_socket, basic_socket::basic_socket
    -
    basic_socket_acceptor
    +
    basic_socket_acceptor
    basic_socket_acceptor, basic_socket_acceptor::basic_socket_acceptor
    -
    basic_socket_iostream
    +
    basic_socket_iostream
    basic_socket_iostream, basic_socket_iostream::basic_socket_iostream
    -
    basic_socket_streambuf
    +
    basic_socket_streambuf
    basic_socket_streambuf, basic_socket_streambuf::basic_socket_streambuf
    -
    basic_streambuf
    +
    basic_streambuf
    basic_streambuf, basic_streambuf::basic_streambuf
    -
    basic_streambuf_ref
    +
    basic_streambuf_ref
    basic_streambuf_ref, basic_streambuf_ref::basic_streambuf_ref
    -
    basic_stream_socket
    +
    basic_stream_socket
    basic_stream_socket, basic_stream_socket::basic_stream_socket
    -
    basic_waitable_timer
    +
    basic_waitable_timer
    basic_waitable_timer, basic_waitable_timer::basic_waitable_timer
    -
    basic_yield_context
    +
    basic_yield_context
    basic_yield_context, basic_yield_context::basic_yield_context
    -
    baud_rate
    +
    baud_rate
    serial_port_base::baud_rate, serial_port_base::baud_rate::baud_rate
    -
    begin
    +
    begin
    buffers_iterator, buffers_iterator::begin
    @@ -627,7 +636,7 @@
    null_buffers, null_buffers::begin
    -
    bind
    +
    bind
    basic_datagram_socket, basic_datagram_socket::bind
    @@ -642,9 +651,9 @@
    basic_stream_socket, basic_stream_socket::bind
    -
    bind_executor, bind_executor +
    bind_executor, bind_executor
    -
    broadcast
    +
    broadcast
    basic_datagram_socket, basic_datagram_socket::broadcast
    @@ -665,38 +674,38 @@
    socket_base, socket_base::broadcast
    -
    broken_pipe
    +
    broken_pipe
    error::basic_errors, error::basic_errors
    -
    buffer, buffer +
    buffer, buffer
    -
    buffered_read_stream
    +
    buffered_read_stream
    buffered_read_stream, buffered_read_stream::buffered_read_stream
    -
    buffered_stream
    +
    buffered_stream
    buffered_stream, buffered_stream::buffered_stream
    -
    buffered_write_stream
    +
    buffered_write_stream
    buffered_write_stream, buffered_write_stream::buffered_write_stream
    -
    buffers_begin, buffers_begin +
    buffers_begin, buffers_begin
    -
    buffers_end, buffers_end +
    buffers_end, buffers_end
    -
    buffers_iterator
    +
    buffers_iterator
    buffers_iterator, buffers_iterator::buffers_iterator
    -
    buffer_cast, buffer_cast +
    buffer_cast, buffer_cast
    -
    buffer_copy, buffer_copy +
    buffer_copy, buffer_copy
    -
    buffer_sequence_begin, buffer_sequence_begin +
    buffer_sequence_begin, buffer_sequence_begin
    -
    buffer_sequence_end, buffer_sequence_end +
    buffer_sequence_end, buffer_sequence_end
    -
    buffer_size, buffer_size +
    buffer_size, buffer_size
    -
    bytes_readable
    +
    bytes_readable
    basic_datagram_socket, basic_datagram_socket::bytes_readable
    @@ -719,7 +728,7 @@
    socket_base, socket_base::bytes_readable
    -
    bytes_type
    +
    bytes_type
    ip::address_v4, ip::address_v4::bytes_type
    @@ -731,13 +740,13 @@

    C

    -
    callee_type
    +
    callee_type
    basic_yield_context, basic_yield_context::callee_type
    -
    caller_type
    +
    caller_type
    basic_yield_context, basic_yield_context::caller_type
    -
    cancel
    +
    cancel
    basic_datagram_socket, basic_datagram_socket::cancel
    @@ -774,21 +783,21 @@
    windows::stream_handle, windows::stream_handle::cancel
    -
    cancel_one
    +
    cancel_one
    basic_deadline_timer, basic_deadline_timer::cancel_one
    basic_waitable_timer, basic_waitable_timer::cancel_one
    -
    canonical
    +
    canonical
    ip::network_v4, ip::network_v4::canonical
    ip::network_v6, ip::network_v6::canonical
    -
    canonical_name
    +
    canonical_name
    ip::basic_resolver, ip::basic_resolver::canonical_name
    @@ -799,7 +808,7 @@
    ip::resolver_query_base, ip::resolver_query_base::canonical_name
    -
    capacity
    +
    capacity
    basic_streambuf, basic_streambuf::capacity
    @@ -816,29 +825,29 @@
    local::basic_endpoint, local::basic_endpoint::capacity
    -
    cbegin
    +
    cbegin
    ip::basic_resolver_results, ip::basic_resolver_results::cbegin
    -
    cend
    +
    cend
    ip::basic_resolver_results, ip::basic_resolver_results::cend
    -
    character_size
    +
    character_size
    serial_port_base::character_size, serial_port_base::character_size::character_size
    -
    clear
    +
    clear
    signal_set, signal_set::clear
    -
    clear_options
    +
    clear_options
    ssl::context, ssl::context::clear_options
    -
    client
    +
    client
    ssl::stream, ssl::stream::handshake_type
    ssl::stream_base, ssl::stream_base::handshake_type
    -
    clock_type
    +
    clock_type
    basic_socket_iostream, basic_socket_iostream::clock_type
    @@ -847,7 +856,7 @@
    basic_waitable_timer, basic_waitable_timer::clock_type
    -
    close
    +
    close
    basic_datagram_socket, basic_datagram_socket::close
    @@ -886,7 +895,7 @@
    windows::stream_handle, windows::stream_handle::close
    -
    commit
    +
    commit
    basic_streambuf, basic_streambuf::commit
    @@ -897,13 +906,13 @@
    dynamic_vector_buffer, dynamic_vector_buffer::commit
    -
    complete
    +
    complete
    windows::overlapped_ptr, windows::overlapped_ptr::complete
    -
    completion_handler
    +
    completion_handler
    async_completion, async_completion::completion_handler
    -
    completion_handler_type
    +
    completion_handler_type
    async_completion, async_completion::completion_handler_type
    @@ -914,7 +923,7 @@ std::packaged_task< Result(Args...)>, Signature >::completion_handler_type
    -
    connect, connect +
    connect, connect
    basic_datagram_socket, basic_datagram_socket::connect @@ -932,22 +941,22 @@
    basic_stream_socket, basic_stream_socket::connect
    -
    connection_aborted
    +
    connection_aborted
    error::basic_errors, error::basic_errors
    -
    connection_refused
    +
    connection_refused
    error::basic_errors, error::basic_errors
    -
    connection_reset
    +
    connection_reset
    error::basic_errors, error::basic_errors
    -
    const_buffer
    +
    const_buffer
    const_buffer, const_buffer::const_buffer
    -
    const_buffers_1
    +
    const_buffers_1
    const_buffers_1, const_buffers_1::const_buffers_1
    -
    const_buffers_type
    +
    const_buffers_type
    basic_streambuf, basic_streambuf::const_buffers_type
    @@ -958,7 +967,7 @@
    dynamic_vector_buffer, dynamic_vector_buffer::const_buffers_type
    -
    const_iterator
    +
    const_iterator
    const_buffers_1, const_buffers_1::const_iterator
    @@ -969,10 +978,10 @@
    null_buffers, null_buffers::const_iterator
    -
    const_reference
    +
    const_reference
    ip::basic_resolver_results, ip::basic_resolver_results::const_reference
    -
    consume
    +
    consume
    basic_streambuf, basic_streambuf::consume
    @@ -983,7 +992,7 @@
    dynamic_vector_buffer, dynamic_vector_buffer::consume
    -
    context
    +
    context
    execution_context::service, execution_context::service::context
    @@ -1002,10 +1011,10 @@
    thread_pool::executor_type, thread_pool::executor_type::context
    -
    coroutine
    +
    coroutine
    coroutine, coroutine::coroutine
    -
    count_type
    +
    count_type
    io_context, io_context::count_type
    @@ -1013,7 +1022,7 @@

    D

    -
    data
    +
    data
    basic_streambuf, basic_streambuf::data
    @@ -1038,10 +1047,10 @@
    mutable_buffers_1, mutable_buffers_1::data
    -
    datagram_protocol
    +
    datagram_protocol
    generic::datagram_protocol, generic::datagram_protocol::datagram_protocol
    -
    data_type
    +
    data_type
    generic::basic_endpoint, generic::basic_endpoint::data_type
    @@ -1050,9 +1059,9 @@
    local::basic_endpoint, local::basic_endpoint::data_type
    -
    deadline_timer, deadline_timer +
    deadline_timer, deadline_timer
    -
    debug
    +
    debug
    basic_datagram_socket, basic_datagram_socket::debug
    @@ -1069,21 +1078,21 @@
    socket_base, socket_base::debug
    -
    default_buffer_size
    +
    default_buffer_size
    buffered_read_stream, buffered_read_stream::default_buffer_size
    buffered_write_stream, buffered_write_stream::default_buffer_size
    -
    default_workarounds
    +
    default_workarounds
    ssl::context, ssl::context::default_workarounds
    ssl::context_base, ssl::context_base::default_workarounds
    -
    defer, defer +
    defer, defer
    executor, executor::defer @@ -1099,17 +1108,17 @@
    thread_pool::executor_type, thread_pool::executor_type::defer
    -
    dereference
    +
    dereference
    ip::basic_resolver_iterator, ip::basic_resolver_iterator::dereference
    ip::basic_resolver_results, ip::basic_resolver_results::dereference
    -
    descriptor
    +
    descriptor
    posix::descriptor, posix::descriptor::descriptor
    -
    destroy
    +
    destroy
    execution_context, execution_context::destroy
    @@ -1120,7 +1129,10 @@
    thread_pool, thread_pool::destroy
    -
    difference_type
    +
    detached_t
    +
    experimental::detached_t, experimental::detached_t::detached_t +
    +
    difference_type
    buffers_iterator, buffers_iterator::difference_type
    @@ -1137,7 +1149,7 @@
    ip::basic_resolver_results, ip::basic_resolver_results::difference_type
    -
    dispatch, dispatch +
    dispatch, dispatch
    executor, executor::dispatch @@ -1155,7 +1167,7 @@
    thread_pool::executor_type, thread_pool::executor_type::dispatch
    -
    do_not_route
    +
    do_not_route
    basic_datagram_socket, basic_datagram_socket::do_not_route
    @@ -1172,7 +1184,7 @@
    socket_base, socket_base::do_not_route
    -
    duration
    +
    duration
    basic_socket_iostream, basic_socket_iostream::duration
    @@ -1181,7 +1193,7 @@
    basic_waitable_timer, basic_waitable_timer::duration
    -
    duration_type
    +
    duration_type
    basic_deadline_timer, basic_deadline_timer::duration_type
    @@ -1194,12 +1206,12 @@ boost::posix_time::ptime >::duration_type
    -
    dynamic_buffer, dynamic_buffer +
    dynamic_buffer, dynamic_buffer
    -
    dynamic_string_buffer
    +
    dynamic_string_buffer
    dynamic_string_buffer, dynamic_string_buffer::dynamic_string_buffer
    -
    dynamic_vector_buffer
    +
    dynamic_vector_buffer
    dynamic_vector_buffer, dynamic_vector_buffer::dynamic_vector_buffer
    @@ -1207,7 +1219,10 @@

    E

    -
    empty
    +
    ec_
    +
    experimental::redirect_error_t, experimental::redirect_error_t::ec_ +
    +
    empty
    ip::basic_address_range< address_v4 >, ip::basic_address_range< @@ -1220,7 +1235,7 @@
    ip::basic_resolver_results, ip::basic_resolver_results::empty
    -
    enable_connection_aborted
    +
    enable_connection_aborted
    basic_datagram_socket, basic_datagram_socket::enable_connection_aborted
    @@ -1237,7 +1252,7 @@
    socket_base, socket_base::enable_connection_aborted
    -
    end
    +
    end
    buffers_iterator, buffers_iterator::end
    @@ -1258,7 +1273,7 @@
    null_buffers, null_buffers::end
    -
    endpoint
    +
    endpoint
    generic::datagram_protocol, generic::datagram_protocol::endpoint
    @@ -1281,7 +1296,7 @@
    local::stream_protocol, local::stream_protocol::endpoint
    -
    endpoint_type
    +
    endpoint_type
    basic_datagram_socket, basic_datagram_socket::endpoint_type
    @@ -1306,73 +1321,73 @@
    ip::basic_resolver_results, ip::basic_resolver_results::endpoint_type
    -
    eof
    +
    eof
    error::misc_errors, error::misc_errors
    -
    equal
    +
    equal
    ip::basic_resolver_iterator, ip::basic_resolver_iterator::equal
    ip::basic_resolver_results, ip::basic_resolver_results::equal
    -
    error
    +
    error
    basic_socket_iostream, basic_socket_iostream::error
    basic_socket_streambuf, basic_socket_streambuf::error
    -
    error::addrinfo_category, error::addrinfo_category +
    error::addrinfo_category, error::addrinfo_category
    -
    error::addrinfo_errors, error::addrinfo_errors +
    error::addrinfo_errors, error::addrinfo_errors
    -
    error::basic_errors, error::basic_errors +
    error::basic_errors, error::basic_errors
    -
    error::get_addrinfo_category, error::get_addrinfo_category +
    error::get_addrinfo_category, error::get_addrinfo_category
    -
    error::get_misc_category, error::get_misc_category +
    error::get_misc_category, error::get_misc_category
    -
    error::get_netdb_category, error::get_netdb_category +
    error::get_netdb_category, error::get_netdb_category
    -
    error::get_ssl_category, error::get_ssl_category +
    error::get_ssl_category, error::get_ssl_category
    -
    error::get_system_category, error::get_system_category +
    error::get_system_category, error::get_system_category
    -
    error::make_error_code, error::make_error_code +
    error::make_error_code, error::make_error_code
    -
    error::misc_category, error::misc_category +
    error::misc_category, error::misc_category
    -
    error::misc_errors, error::misc_errors +
    error::misc_errors, error::misc_errors
    -
    error::netdb_category, error::netdb_category +
    error::netdb_category, error::netdb_category
    -
    error::netdb_errors, error::netdb_errors +
    error::netdb_errors, error::netdb_errors
    -
    error::ssl_category, error::ssl_category +
    error::ssl_category, error::ssl_category
    -
    error::ssl_errors, error::ssl_errors +
    error::ssl_errors, error::ssl_errors
    -
    error::system_category, error::system_category +
    error::system_category, error::system_category
    -
    even
    +
    even
    serial_port_base::parity, serial_port_base::parity::type
    -
    execution_context
    +
    execution_context
    execution_context, execution_context::execution_context
    -
    executor
    +
    executor
    executor, executor::executor
    -
    executor_arg, executor_arg +
    executor_arg, executor_arg
    -
    executor_arg_t
    +
    executor_arg_t
    executor_arg_t, executor_arg_t::executor_arg_t
    -
    executor_binder
    +
    executor_binder
    executor_binder, executor_binder::executor_binder
    -
    executor_type
    +
    executor_type
    basic_datagram_socket, basic_datagram_socket::executor_type
    @@ -1402,6 +1417,10 @@
    executor_work_guard, executor_work_guard::executor_type
    +
    experimental::awaitable, experimental::awaitable::executor_type +
    +
    experimental::await_token, experimental::await_token::executor_type +
    ip::basic_resolver, ip::basic_resolver::executor_type
    posix::descriptor, posix::descriptor::executor_type @@ -1425,10 +1444,20 @@
    windows::stream_handle, windows::stream_handle::executor_type
    -
    executor_work_guard
    +
    executor_work_guard
    executor_work_guard, executor_work_guard::executor_work_guard
    -
    expires_after
    +
    experimental::co_spawn, experimental::co_spawn +
    +
    experimental::detached, experimental::detached +
    +
    experimental::redirect_error, experimental::redirect_error +
    +
    experimental::this_coro::executor, experimental::this_coro::executor +
    +
    experimental::this_coro::token, experimental::this_coro::token +
    +
    expires_after
    basic_socket_iostream, basic_socket_iostream::expires_after
    @@ -1437,7 +1466,7 @@
    basic_waitable_timer, basic_waitable_timer::expires_after
    -
    expires_at
    +
    expires_at
    basic_deadline_timer, basic_deadline_timer::expires_at
    @@ -1448,7 +1477,7 @@
    basic_waitable_timer, basic_waitable_timer::expires_at
    -
    expires_from_now
    +
    expires_from_now
    basic_deadline_timer, basic_deadline_timer::expires_from_now
    @@ -1459,7 +1488,7 @@
    basic_waitable_timer, basic_waitable_timer::expires_from_now
    -
    expiry
    +
    expiry
    basic_socket_iostream, basic_socket_iostream::expiry
    @@ -1473,7 +1502,7 @@

    F

    -
    family
    +
    family
    generic::datagram_protocol, generic::datagram_protocol::family
    @@ -1494,27 +1523,27 @@
    local::stream_protocol, local::stream_protocol::family
    -
    fault
    +
    fault
    error::basic_errors, error::basic_errors
    -
    fd_set_failure
    +
    fd_set_failure
    error::misc_errors, error::misc_errors
    -
    file_format
    +
    file_format
    ssl::context, ssl::context::file_format
    ssl::context_base, ssl::context_base::file_format
    -
    fill
    +
    fill
    buffered_read_stream, buffered_read_stream::fill
    buffered_stream, buffered_stream::fill
    -
    find
    +
    find
    ip::basic_address_range< address_v4 >, ip::basic_address_range< @@ -1525,10 +1554,10 @@ address_v6 >::find
    -
    first_argument_type
    +
    first_argument_type
    executor_binder, executor_binder::first_argument_type
    -
    flags
    +
    flags
    ip::basic_resolver, ip::basic_resolver::flags
    @@ -1539,17 +1568,17 @@
    ip::resolver_query_base, ip::resolver_query_base::flags
    -
    flow_control
    +
    flow_control
    serial_port_base::flow_control, serial_port_base::flow_control::flow_control
    -
    flush
    +
    flush
    buffered_stream, buffered_stream::flush
    buffered_write_stream, buffered_write_stream::flush
    -
    fork_child
    +
    fork_child
    execution_context, execution_context::fork_event
    @@ -1560,7 +1589,7 @@
    thread_pool, thread_pool::fork_event
    -
    fork_event
    +
    fork_event
    execution_context, execution_context::fork_event
    @@ -1571,7 +1600,7 @@
    thread_pool, thread_pool::fork_event
    -
    fork_parent
    +
    fork_parent
    execution_context, execution_context::fork_event
    @@ -1582,7 +1611,7 @@
    thread_pool, thread_pool::fork_event
    -
    fork_prepare
    +
    fork_prepare
    execution_context, execution_context::fork_event
    @@ -1593,21 +1622,21 @@
    thread_pool, thread_pool::fork_event
    -
    for_reading
    +
    for_reading
    ssl::context, ssl::context::password_purpose
    ssl::context_base, ssl::context_base::password_purpose
    -
    for_writing
    +
    for_writing
    ssl::context, ssl::context::password_purpose
    ssl::context_base, ssl::context_base::password_purpose
    -
    from_string
    +
    from_string
    ip::address, ip::address::from_string
    @@ -1621,7 +1650,7 @@

    G

    -
    get
    +
    get
    associated_allocator, associated_allocator::get
    @@ -1642,14 +1671,14 @@
    windows::overlapped_ptr, windows::overlapped_ptr::get
    -
    get_allocator
    +
    get_allocator
    use_future_t, use_future_t::get_allocator
    -
    get_associated_allocator, get_associated_allocator +
    get_associated_allocator, get_associated_allocator
    -
    get_associated_executor, get_associated_executor +
    get_associated_executor, get_associated_executor
    -
    get_executor
    +
    get_executor
    basic_datagram_socket, basic_datagram_socket::get_executor
    @@ -1679,6 +1708,8 @@
    executor_work_guard, executor_work_guard::get_executor
    +
    experimental::await_token, experimental::await_token::get_executor +
    io_context, io_context::get_executor
    ip::basic_resolver, ip::basic_resolver::get_executor @@ -1706,13 +1737,13 @@
    windows::stream_handle, windows::stream_handle::get_executor
    -
    get_implementation
    +
    get_implementation
    basic_io_object, basic_io_object::get_implementation
    -
    get_inner_executor
    +
    get_inner_executor
    strand, strand::get_inner_executor
    -
    get_io_context
    +
    get_io_context
    basic_datagram_socket, basic_datagram_socket::get_io_context
    @@ -1765,7 +1796,7 @@
    windows::stream_handle, windows::stream_handle::get_io_context
    -
    get_io_service
    +
    get_io_service
    basic_datagram_socket, basic_datagram_socket::get_io_service
    @@ -1818,7 +1849,7 @@
    windows::stream_handle, windows::stream_handle::get_io_service
    -
    get_option
    +
    get_option
    basic_datagram_socket, basic_datagram_socket::get_option
    @@ -1835,7 +1866,7 @@
    serial_port, serial_port::get_option
    -
    get_service
    +
    get_service
    basic_io_object, basic_io_object::get_service
    @@ -1843,20 +1874,20 @@

    H

    -
    handshake
    +
    handshake
    ssl::stream, ssl::stream::handshake
    -
    handshake_type
    +
    handshake_type
    ssl::stream, ssl::stream::handshake_type
    ssl::stream_base, ssl::stream_base::handshake_type
    -
    hardware
    +
    hardware
    serial_port_base::flow_control, serial_port_base::flow_control::type
    -
    has_service, has_service +
    has_service, has_service
    execution_context, execution_context::has_service @@ -1868,32 +1899,32 @@
    thread_pool, thread_pool::has_service
    -
    high_resolution_timer, high_resolution_timer +
    high_resolution_timer, high_resolution_timer
    -
    hints
    +
    hints
    ip::basic_resolver_query, ip::basic_resolver_query::hints
    -
    hosts
    +
    hosts
    ip::network_v4, ip::network_v4::hosts
    ip::network_v6, ip::network_v6::hosts
    -
    host_name
    +
    host_name
    ip::basic_resolver_entry, ip::basic_resolver_entry::host_name
    ip::basic_resolver_query, ip::basic_resolver_query::host_name
    -
    host_not_found
    +
    host_not_found
    error::netdb_errors, error::netdb_errors
    -
    host_not_found_try_again
    +
    host_not_found_try_again
    error::netdb_errors, error::netdb_errors
    -
    host_unreachable
    +
    host_unreachable
    error::basic_errors, error::basic_errors
    @@ -1901,39 +1932,39 @@

    I

    -
    id
    +
    id
    execution_context::id, execution_context::id::id
    -
    implementation_type
    +
    implementation_type
    basic_io_object, basic_io_object::implementation_type
    -
    increment
    +
    increment
    ip::basic_resolver_iterator, ip::basic_resolver_iterator::increment
    ip::basic_resolver_results, ip::basic_resolver_results::increment
    -
    index_
    +
    index_
    ip::basic_resolver_iterator, ip::basic_resolver_iterator::index_
    ip::basic_resolver_results, ip::basic_resolver_results::index_
    -
    inner_executor_type
    +
    inner_executor_type
    strand, strand::inner_executor_type
    -
    interrupted
    +
    interrupted
    error::basic_errors, error::basic_errors
    -
    invalid_argument
    +
    invalid_argument
    error::basic_errors, error::basic_errors
    -
    invalid_service_owner
    +
    invalid_service_owner
    invalid_service_owner, invalid_service_owner::invalid_service_owner
    -
    in_avail
    +
    in_avail
    buffered_read_stream, buffered_read_stream::in_avail
    @@ -1942,10 +1973,10 @@
    buffered_write_stream, buffered_write_stream::in_avail
    -
    in_progress
    +
    in_progress
    error::basic_errors, error::basic_errors
    -
    iostream
    +
    iostream
    generic::stream_protocol, generic::stream_protocol::iostream
    @@ -1954,10 +1985,10 @@
    local::stream_protocol, local::stream_protocol::iostream
    -
    io_context
    +
    io_context
    io_context, io_context::io_context
    -
    io_control
    +
    io_control
    basic_datagram_socket, basic_datagram_socket::io_control
    @@ -1976,60 +2007,60 @@
    posix::stream_descriptor, posix::stream_descriptor::io_control
    -
    io_service, io_service +
    io_service, io_service
    -
    ip::address_v4_iterator, ip::address_v4_iterator +
    ip::address_v4_iterator, ip::address_v4_iterator
    -
    ip::address_v4_range, ip::address_v4_range +
    ip::address_v4_range, ip::address_v4_range
    -
    ip::address_v6_iterator, ip::address_v6_iterator +
    ip::address_v6_iterator, ip::address_v6_iterator
    -
    ip::address_v6_range, ip::address_v6_range +
    ip::address_v6_range, ip::address_v6_range
    -
    ip::host_name, ip::host_name +
    ip::host_name, ip::host_name
    -
    ip::multicast::enable_loopback, ip::multicast::enable_loopback +
    ip::multicast::enable_loopback, ip::multicast::enable_loopback
    -
    ip::multicast::hops, ip::multicast::hops +
    ip::multicast::hops, ip::multicast::hops
    -
    ip::multicast::join_group, ip::multicast::join_group +
    ip::multicast::join_group, ip::multicast::join_group
    -
    ip::multicast::leave_group, ip::multicast::leave_group +
    ip::multicast::leave_group, ip::multicast::leave_group
    -
    ip::multicast::outbound_interface, ip::multicast::outbound_interface +
    ip::multicast::outbound_interface, ip::multicast::outbound_interface
    -
    ip::unicast::hops, ip::unicast::hops +
    ip::unicast::hops, ip::unicast::hops
    -
    ip::v4_mapped_t, ip::v4_mapped_t +
    ip::v4_mapped_t, ip::v4_mapped_t
    -
    ip::v6_only, ip::v6_only +
    ip::v6_only, ip::v6_only
    -
    is_child
    +
    is_child
    coroutine, coroutine::is_child
    -
    is_class_a
    +
    is_class_a
    ip::address_v4, ip::address_v4::is_class_a
    -
    is_class_b
    +
    is_class_b
    ip::address_v4, ip::address_v4::is_class_b
    -
    is_class_c
    +
    is_class_c
    ip::address_v4, ip::address_v4::is_class_c
    -
    is_complete
    +
    is_complete
    coroutine, coroutine::is_complete
    -
    is_host
    +
    is_host
    ip::network_v4, ip::network_v4::is_host
    ip::network_v6, ip::network_v6::is_host
    -
    is_link_local
    +
    is_link_local
    ip::address_v6, ip::address_v6::is_link_local
    -
    is_loopback
    +
    is_loopback
    ip::address, ip::address::is_loopback
    @@ -2038,7 +2069,7 @@
    ip::address_v6, ip::address_v6::is_loopback
    -
    is_multicast
    +
    is_multicast
    ip::address, ip::address::is_multicast
    @@ -2047,22 +2078,22 @@
    ip::address_v6, ip::address_v6::is_multicast
    -
    is_multicast_global
    +
    is_multicast_global
    ip::address_v6, ip::address_v6::is_multicast_global
    -
    is_multicast_link_local
    +
    is_multicast_link_local
    ip::address_v6, ip::address_v6::is_multicast_link_local
    -
    is_multicast_node_local
    +
    is_multicast_node_local
    ip::address_v6, ip::address_v6::is_multicast_node_local
    -
    is_multicast_org_local
    +
    is_multicast_org_local
    ip::address_v6, ip::address_v6::is_multicast_org_local
    -
    is_multicast_site_local
    +
    is_multicast_site_local
    ip::address_v6, ip::address_v6::is_multicast_site_local
    -
    is_open
    +
    is_open
    basic_datagram_socket, basic_datagram_socket::is_open
    @@ -2091,20 +2122,20 @@
    windows::stream_handle, windows::stream_handle::is_open
    -
    is_parent
    +
    is_parent
    coroutine, coroutine::is_parent
    -
    is_site_local
    +
    is_site_local
    ip::address_v6, ip::address_v6::is_site_local
    -
    is_subnet_of
    +
    is_subnet_of
    ip::network_v4, ip::network_v4::is_subnet_of
    ip::network_v6, ip::network_v6::is_subnet_of
    -
    is_unspecified
    +
    is_unspecified
    ip::address, ip::address::is_unspecified
    @@ -2113,19 +2144,19 @@
    ip::address_v6, ip::address_v6::is_unspecified
    -
    is_v4
    +
    is_v4
    ip::address, ip::address::is_v4
    -
    is_v4_compatible
    +
    is_v4_compatible
    ip::address_v6, ip::address_v6::is_v4_compatible
    -
    is_v4_mapped
    +
    is_v4_mapped
    ip::address_v6, ip::address_v6::is_v4_mapped
    -
    is_v6
    +
    is_v6
    ip::address, ip::address::is_v6
    -
    iterator
    +
    iterator
    ip::basic_address_range< address_v4 >, ip::basic_address_range< @@ -2140,7 +2171,7 @@
    ip::basic_resolver_results, ip::basic_resolver_results::iterator
    -
    iterator_category
    +
    iterator_category
    buffers_iterator, buffers_iterator::iterator_category
    @@ -2162,7 +2193,7 @@

    J

    -
    join
    +
    join
    system_context, system_context::join
    @@ -2174,7 +2205,7 @@

    K

    -
    keep_alive
    +
    keep_alive
    basic_datagram_socket, basic_datagram_socket::keep_alive
    @@ -2196,12 +2227,12 @@

    L

    -
    less_than
    +
    less_than
    time_traits< boost::posix_time::ptime >, time_traits< boost::posix_time::ptime >::less_than
    -
    linger
    +
    linger
    basic_datagram_socket, basic_datagram_socket::linger
    @@ -2218,10 +2249,10 @@
    socket_base, socket_base::linger
    -
    listen
    +
    listen
    basic_socket_acceptor, basic_socket_acceptor::listen
    -
    load
    +
    load
    serial_port_base::baud_rate, serial_port_base::baud_rate::load
    @@ -2234,12 +2265,12 @@
    serial_port_base::stop_bits, serial_port_base::stop_bits::load
    -
    load_verify_file
    +
    load_verify_file
    ssl::context, ssl::context::load_verify_file
    -
    local::connect_pair, local::connect_pair +
    local::connect_pair, local::connect_pair
    -
    local_endpoint
    +
    local_endpoint
    basic_datagram_socket, basic_datagram_socket::local_endpoint
    @@ -2254,14 +2285,14 @@
    basic_stream_socket, basic_stream_socket::local_endpoint
    -
    loopback
    +
    loopback
    ip::address_v4, ip::address_v4::loopback
    ip::address_v6, ip::address_v6::loopback
    -
    lowest_layer
    +
    lowest_layer
    basic_datagram_socket, basic_datagram_socket::lowest_layer
    @@ -2296,7 +2327,7 @@
    windows::stream_handle, windows::stream_handle::lowest_layer
    -
    lowest_layer_type
    +
    lowest_layer_type
    basic_datagram_socket, basic_datagram_socket::lowest_layer_type
    @@ -2336,30 +2367,30 @@

    M

    -
    make_address
    +
    make_address
    ip::address, ip::address::make_address
    -
    make_address_v4
    +
    make_address_v4
    ip::address_v4, ip::address_v4::make_address_v4
    -
    make_address_v6
    +
    make_address_v6
    ip::address_v6, ip::address_v6::make_address_v6
    -
    make_network_v4
    +
    make_network_v4
    ip::address_v4, ip::address_v4::make_network_v4
    ip::network_v4, ip::network_v4::make_network_v4
    -
    make_network_v6
    +
    make_network_v6
    ip::address_v6, ip::address_v6::make_network_v6
    ip::network_v6, ip::network_v6::make_network_v6
    -
    make_service
    +
    make_service
    execution_context, execution_context::make_service
    @@ -2370,9 +2401,9 @@
    thread_pool, thread_pool::make_service
    -
    make_work_guard, make_work_guard +
    make_work_guard, make_work_guard
    -
    max_connections
    +
    max_connections
    basic_datagram_socket, basic_datagram_socket::max_connections
    @@ -2389,7 +2420,7 @@
    socket_base, socket_base::max_connections
    -
    max_listen_connections
    +
    max_listen_connections
    basic_datagram_socket, basic_datagram_socket::max_listen_connections
    @@ -2406,7 +2437,7 @@
    socket_base, socket_base::max_listen_connections
    -
    max_size
    +
    max_size
    basic_streambuf, basic_streambuf::max_size
    @@ -2419,7 +2450,7 @@
    ip::basic_resolver_results, ip::basic_resolver_results::max_size
    -
    message_do_not_route
    +
    message_do_not_route
    basic_datagram_socket, basic_datagram_socket::message_do_not_route
    @@ -2436,7 +2467,7 @@
    socket_base, socket_base::message_do_not_route
    -
    message_end_of_record
    +
    message_end_of_record
    basic_datagram_socket, basic_datagram_socket::message_end_of_record
    @@ -2453,7 +2484,7 @@
    socket_base, socket_base::message_end_of_record
    -
    message_flags
    +
    message_flags
    basic_datagram_socket, basic_datagram_socket::message_flags
    @@ -2470,7 +2501,7 @@
    socket_base, socket_base::message_flags
    -
    message_out_of_band
    +
    message_out_of_band
    basic_datagram_socket, basic_datagram_socket::message_out_of_band
    @@ -2487,7 +2518,7 @@
    socket_base, socket_base::message_out_of_band
    -
    message_peek
    +
    message_peek
    basic_datagram_socket, basic_datagram_socket::message_peek
    @@ -2504,23 +2535,23 @@
    socket_base, socket_base::message_peek
    -
    message_size
    +
    message_size
    error::basic_errors, error::basic_errors
    -
    method
    +
    method
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    mutable_buffer
    +
    mutable_buffer
    mutable_buffer, mutable_buffer::mutable_buffer
    -
    mutable_buffers_1
    +
    mutable_buffers_1
    mutable_buffers_1, mutable_buffers_1::mutable_buffers_1
    -
    mutable_buffers_type
    +
    mutable_buffers_type
    basic_streambuf, basic_streambuf::mutable_buffers_type
    @@ -2536,10 +2567,10 @@

    N

    -
    name_too_long
    +
    name_too_long
    error::basic_errors, error::basic_errors
    -
    native_handle
    +
    native_handle
    basic_datagram_socket, basic_datagram_socket::native_handle
    @@ -2574,7 +2605,7 @@
    windows::stream_handle, windows::stream_handle::native_handle
    -
    native_handle_type
    +
    native_handle_type
    basic_datagram_socket, basic_datagram_socket::native_handle_type
    @@ -2609,7 +2640,7 @@
    windows::stream_handle, windows::stream_handle::native_handle_type
    -
    native_non_blocking
    +
    native_non_blocking
    basic_datagram_socket, basic_datagram_socket::native_non_blocking
    @@ -2628,36 +2659,36 @@
    posix::stream_descriptor, posix::stream_descriptor::native_non_blocking
    -
    netmask
    +
    netmask
    ip::address_v4, ip::address_v4::netmask
    ip::network_v4, ip::network_v4::netmask
    -
    network
    +
    network
    ip::network_v4, ip::network_v4::network
    ip::network_v6, ip::network_v6::network
    -
    network_down
    +
    network_down
    error::basic_errors, error::basic_errors
    -
    network_reset
    +
    network_reset
    error::basic_errors, error::basic_errors
    -
    network_unreachable
    +
    network_unreachable
    error::basic_errors, error::basic_errors
    -
    network_v4
    +
    network_v4
    ip::network_v4, ip::network_v4::network_v4
    -
    network_v6
    +
    network_v6
    ip::network_v6, ip::network_v6::network_v6
    -
    next_layer
    +
    next_layer
    buffered_read_stream, buffered_read_stream::next_layer
    @@ -2668,7 +2699,7 @@
    ssl::stream, ssl::stream::next_layer
    -
    next_layer_type
    +
    next_layer_type
    buffered_read_stream, buffered_read_stream::next_layer_type
    @@ -2679,14 +2710,14 @@
    ssl::stream, ssl::stream::next_layer_type
    -
    none
    +
    none
    serial_port_base::flow_control, serial_port_base::flow_control::type
    serial_port_base::parity, serial_port_base::parity::type
    -
    non_blocking
    +
    non_blocking
    basic_datagram_socket, basic_datagram_socket::non_blocking
    @@ -2705,7 +2736,7 @@
    posix::stream_descriptor, posix::stream_descriptor::non_blocking
    -
    notify_fork
    +
    notify_fork
    execution_context, execution_context::notify_fork
    @@ -2718,90 +2749,90 @@
    thread_pool, thread_pool::notify_fork
    -
    not_connected
    +
    not_connected
    error::basic_errors, error::basic_errors
    -
    not_found
    +
    not_found
    error::misc_errors, error::misc_errors
    -
    not_socket
    +
    not_socket
    error::basic_errors, error::basic_errors
    -
    now
    +
    now
    time_traits< boost::posix_time::ptime >, time_traits< boost::posix_time::ptime >::now
    -
    no_buffer_space
    +
    no_buffer_space
    error::basic_errors, error::basic_errors
    -
    no_compression
    +
    no_compression
    ssl::context, ssl::context::no_compression
    ssl::context_base, ssl::context_base::no_compression
    -
    no_data
    +
    no_data
    error::netdb_errors, error::netdb_errors
    -
    no_delay
    +
    no_delay
    ip::tcp, ip::tcp::no_delay
    -
    no_descriptors
    +
    no_descriptors
    error::basic_errors, error::basic_errors
    -
    no_memory
    +
    no_memory
    error::basic_errors, error::basic_errors
    -
    no_permission
    +
    no_permission
    error::basic_errors, error::basic_errors
    -
    no_protocol_option
    +
    no_protocol_option
    error::basic_errors, error::basic_errors
    -
    no_recovery
    +
    no_recovery
    error::netdb_errors, error::netdb_errors
    -
    no_sslv2
    +
    no_sslv2
    ssl::context, ssl::context::no_sslv2
    ssl::context_base, ssl::context_base::no_sslv2
    -
    no_sslv3
    +
    no_sslv3
    ssl::context, ssl::context::no_sslv3
    ssl::context_base, ssl::context_base::no_sslv3
    -
    no_such_device
    +
    no_such_device
    error::basic_errors, error::basic_errors
    -
    no_tlsv1
    +
    no_tlsv1
    ssl::context, ssl::context::no_tlsv1
    ssl::context_base, ssl::context_base::no_tlsv1
    -
    no_tlsv1_1
    +
    no_tlsv1_1
    ssl::context, ssl::context::no_tlsv1_1
    ssl::context_base, ssl::context_base::no_tlsv1_1
    -
    no_tlsv1_2
    +
    no_tlsv1_2
    ssl::context, ssl::context::no_tlsv1_2
    ssl::context_base, ssl::context_base::no_tlsv1_2
    -
    numeric_host
    +
    numeric_host
    ip::basic_resolver, ip::basic_resolver::numeric_host
    @@ -2812,7 +2843,7 @@
    ip::resolver_query_base, ip::resolver_query_base::numeric_host
    -
    numeric_service
    +
    numeric_service
    ip::basic_resolver, ip::basic_resolver::numeric_service
    @@ -2828,19 +2859,19 @@

    O

    -
    object_handle
    +
    object_handle
    windows::object_handle, windows::object_handle::object_handle
    -
    odd
    +
    odd
    serial_port_base::parity, serial_port_base::parity::type
    -
    one
    +
    one
    serial_port_base::stop_bits, serial_port_base::stop_bits::type
    -
    onepointfive
    +
    onepointfive
    serial_port_base::stop_bits, serial_port_base::stop_bits::type
    -
    on_work_finished
    +
    on_work_finished
    executor, executor::on_work_finished
    @@ -2855,7 +2886,7 @@
    thread_pool::executor_type, thread_pool::executor_type::on_work_finished
    -
    on_work_started
    +
    on_work_started
    executor, executor::on_work_started
    @@ -2870,7 +2901,7 @@
    thread_pool::executor_type, thread_pool::executor_type::on_work_started
    -
    open
    +
    open
    basic_datagram_socket, basic_datagram_socket::open
    @@ -2887,13 +2918,13 @@
    serial_port, serial_port::open
    -
    operation_aborted
    +
    operation_aborted
    error::basic_errors, error::basic_errors
    -
    operation_not_supported
    +
    operation_not_supported
    error::basic_errors, error::basic_errors
    -
    operator *
    +
    operator *
    buffers_iterator, buffers_iterator::operator * @@ -2911,16 +2942,16 @@ *
    -
    operator +
    operator endpoint_type
    ip::basic_resolver_entry, ip::basic_resolver_entry::operator endpoint_type
    -
    operator unspecified_bool_type
    +
    operator unspecified_bool_type
    executor, executor::operator unspecified_bool_type
    -
    operator!=
    +
    operator!=
    buffers_iterator, buffers_iterator::operator!=
    @@ -2979,7 +3010,7 @@
    thread_pool::executor_type, thread_pool::executor_type::operator!=
    -
    operator()
    +
    operator()
    executor_binder, executor_binder::operator()
    @@ -2988,7 +3019,7 @@
    use_future_t, use_future_t::operator()
    -
    operator+
    +
    operator+
    buffers_iterator, buffers_iterator::operator+
    @@ -3001,7 +3032,7 @@
    mutable_buffers_1, mutable_buffers_1::operator+
    -
    operator++
    +
    operator++
    buffers_iterator, buffers_iterator::operator++
    @@ -3018,7 +3049,7 @@
    ip::basic_resolver_results, ip::basic_resolver_results::operator++
    -
    operator+=
    +
    operator+=
    buffers_iterator, buffers_iterator::operator+=
    @@ -3031,10 +3062,10 @@
    mutable_buffers_1, mutable_buffers_1::operator+=
    -
    operator-
    +
    operator-
    buffers_iterator, buffers_iterator::operator-
    -
    operator--
    +
    operator--
    buffers_iterator, buffers_iterator::operator--
    @@ -3047,10 +3078,10 @@ address_v6 >::operator--
    -
    operator-=
    +
    operator-=
    buffers_iterator, buffers_iterator::operator-=
    -
    operator->
    +
    operator->
    buffers_iterator, buffers_iterator::operator->
    @@ -3067,7 +3098,7 @@
    ip::basic_resolver_results, ip::basic_resolver_results::operator->
    -
    operator<
    +
    operator<
    buffers_iterator, buffers_iterator::operator<
    @@ -3084,7 +3115,7 @@
    local::basic_endpoint, local::basic_endpoint::operator<
    -
    operator<<
    +
    operator<<
    ip::address, ip::address::operator<<
    @@ -3097,7 +3128,7 @@
    local::basic_endpoint, local::basic_endpoint::operator<<
    -
    operator<=
    +
    operator<=
    buffers_iterator, buffers_iterator::operator<=
    @@ -3114,7 +3145,7 @@
    local::basic_endpoint, local::basic_endpoint::operator<=
    -
    operator=
    +
    operator=
    basic_datagram_socket, basic_datagram_socket::operator=
    @@ -3197,7 +3228,7 @@
    windows::stream_handle, windows::stream_handle::operator=
    -
    operator==
    +
    operator==
    buffers_iterator, buffers_iterator::operator==
    @@ -3256,7 +3287,7 @@
    thread_pool::executor_type, thread_pool::executor_type::operator==
    -
    operator>
    +
    operator>
    buffers_iterator, buffers_iterator::operator>
    @@ -3273,7 +3304,7 @@
    local::basic_endpoint, local::basic_endpoint::operator>
    -
    operator>=
    +
    operator>=
    buffers_iterator, buffers_iterator::operator>=
    @@ -3290,7 +3321,7 @@
    local::basic_endpoint, local::basic_endpoint::operator>=
    -
    operator[]
    +
    operator[]
    basic_yield_context, basic_yield_context::operator[]
    @@ -3299,14 +3330,14 @@
    use_future_t, use_future_t::operator[]
    -
    options
    +
    options
    ssl::context, ssl::context::options
    ssl::context_base, ssl::context_base::options
    -
    out_of_band_inline
    +
    out_of_band_inline
    basic_datagram_socket, basic_datagram_socket::out_of_band_inline
    @@ -3323,20 +3354,20 @@
    socket_base, socket_base::out_of_band_inline
    -
    overflow
    +
    overflow
    basic_socket_streambuf, basic_socket_streambuf::overflow
    basic_streambuf, basic_streambuf::overflow
    -
    overlapped_handle
    +
    overlapped_handle
    windows::overlapped_handle, windows::overlapped_handle::overlapped_handle
    -
    overlapped_ptr
    +
    overlapped_ptr
    windows::overlapped_ptr, windows::overlapped_ptr::overlapped_ptr
    -
    owns_work
    +
    owns_work
    executor_work_guard, executor_work_guard::owns_work
    @@ -3344,10 +3375,10 @@

    P

    -
    parity
    +
    parity
    serial_port_base::parity, serial_port_base::parity::parity
    -
    passive
    +
    passive
    ip::basic_resolver, ip::basic_resolver::passive
    @@ -3358,17 +3389,17 @@
    ip::resolver_query_base, ip::resolver_query_base::passive
    -
    password_purpose
    +
    password_purpose
    ssl::context, ssl::context::password_purpose
    ssl::context_base, ssl::context_base::password_purpose
    -
    path
    +
    path
    local::basic_endpoint, local::basic_endpoint::path
    -
    peek
    +
    peek
    buffered_read_stream, buffered_read_stream::peek
    @@ -3377,26 +3408,26 @@
    buffered_write_stream, buffered_write_stream::peek
    -
    pem
    +
    pem
    ssl::context, ssl::context::file_format
    ssl::context_base, ssl::context_base::file_format
    -
    placeholders::bytes_transferred, placeholders::bytes_transferred +
    placeholders::bytes_transferred, placeholders::bytes_transferred
    -
    placeholders::endpoint, placeholders::endpoint +
    placeholders::endpoint, placeholders::endpoint
    -
    placeholders::error, placeholders::error +
    placeholders::error, placeholders::error
    -
    placeholders::iterator, placeholders::iterator +
    placeholders::iterator, placeholders::iterator
    -
    placeholders::results, placeholders::results +
    placeholders::results, placeholders::results
    -
    placeholders::signal_number, placeholders::signal_number +
    placeholders::signal_number, placeholders::signal_number
    -
    pointer
    +
    pointer
    buffers_iterator, buffers_iterator::pointer
    @@ -3413,16 +3444,16 @@
    ip::basic_resolver_results, ip::basic_resolver_results::pointer
    -
    poll
    +
    poll
    io_context, io_context::poll
    -
    poll_one
    +
    poll_one
    io_context, io_context::poll_one
    -
    port
    +
    port
    ip::basic_endpoint, ip::basic_endpoint::port
    -
    post, post +
    post, post
    executor, executor::post @@ -3440,14 +3471,14 @@
    thread_pool::executor_type, thread_pool::executor_type::post
    -
    prefix_length
    +
    prefix_length
    ip::network_v4, ip::network_v4::prefix_length
    ip::network_v6, ip::network_v6::prefix_length
    -
    prepare
    +
    prepare
    basic_streambuf, basic_streambuf::prepare
    @@ -3458,7 +3489,7 @@
    dynamic_vector_buffer, dynamic_vector_buffer::prepare
    -
    protocol
    +
    protocol
    generic::basic_endpoint, generic::basic_endpoint::protocol
    @@ -3485,7 +3516,7 @@
    local::stream_protocol, local::stream_protocol::protocol
    -
    protocol_type
    +
    protocol_type
    basic_datagram_socket, basic_datagram_socket::protocol_type
    @@ -3518,7 +3549,7 @@
    local::basic_endpoint, local::basic_endpoint::protocol_type
    -
    puberror
    +
    puberror
    basic_socket_streambuf, basic_socket_streambuf::puberror
    @@ -3526,7 +3557,7 @@

    Q

    -
    query
    +
    query
    ip::basic_resolver, ip::basic_resolver::query
    @@ -3534,20 +3565,20 @@

    R

    -
    random_access_handle
    +
    random_access_handle
    windows::random_access_handle, windows::random_access_handle::random_access_handle
    -
    raw_protocol
    +
    raw_protocol
    generic::raw_protocol, generic::raw_protocol::raw_protocol
    -
    rdbuf
    +
    rdbuf
    basic_socket_iostream, basic_socket_iostream::rdbuf
    -
    read, read +
    read, read
    -
    read_at, read_at +
    read_at, read_at
    -
    read_some
    +
    read_some
    basic_stream_socket, basic_stream_socket::read_some
    @@ -3566,15 +3597,15 @@
    windows::stream_handle, windows::stream_handle::read_some
    -
    read_some_at
    +
    read_some_at
    windows::random_access_handle, windows::random_access_handle::read_some_at
    -
    read_until, read_until +
    read_until, read_until
    -
    rebind
    +
    rebind
    use_future_t, use_future_t::rebind
    -
    receive
    +
    receive
    basic_datagram_socket, basic_datagram_socket::receive
    @@ -3585,7 +3616,7 @@
    basic_stream_socket, basic_stream_socket::receive
    -
    receive_buffer_size
    +
    receive_buffer_size
    basic_datagram_socket, basic_datagram_socket::receive_buffer_size
    @@ -3602,14 +3633,14 @@
    socket_base, socket_base::receive_buffer_size
    -
    receive_from
    +
    receive_from
    basic_datagram_socket, basic_datagram_socket::receive_from
    basic_raw_socket, basic_raw_socket::receive_from
    -
    receive_low_watermark
    +
    receive_low_watermark
    basic_datagram_socket, basic_datagram_socket::receive_low_watermark
    @@ -3626,7 +3657,10 @@
    socket_base, socket_base::receive_low_watermark
    -
    reference
    +
    redirect_error_t
    +
    experimental::redirect_error_t, experimental::redirect_error_t::redirect_error_t +
    +
    reference
    buffers_iterator, buffers_iterator::reference
    @@ -3643,7 +3677,7 @@
    ip::basic_resolver_results, ip::basic_resolver_results::reference
    -
    release
    +
    release
    basic_datagram_socket, basic_datagram_socket::release
    @@ -3664,7 +3698,7 @@
    windows::overlapped_ptr, windows::overlapped_ptr::release
    -
    remote_endpoint
    +
    remote_endpoint
    basic_datagram_socket, basic_datagram_socket::remote_endpoint
    @@ -3677,13 +3711,13 @@
    basic_stream_socket, basic_stream_socket::remote_endpoint
    -
    remove
    +
    remove
    signal_set, signal_set::remove
    -
    reserve
    +
    reserve
    basic_streambuf, basic_streambuf::reserve
    -
    reset
    +
    reset
    executor_work_guard, executor_work_guard::reset
    @@ -3692,7 +3726,7 @@
    windows::overlapped_ptr, windows::overlapped_ptr::reset
    -
    resize
    +
    resize
    generic::basic_endpoint, generic::basic_endpoint::resize
    @@ -3701,10 +3735,10 @@
    local::basic_endpoint, local::basic_endpoint::resize
    -
    resolve
    +
    resolve
    ip::basic_resolver, ip::basic_resolver::resolve
    -
    resolver
    +
    resolver
    ip::icmp, ip::icmp::resolver
    @@ -3713,25 +3747,25 @@
    ip::udp, ip::udp::resolver
    -
    resolver_errc::try_again, resolver_errc::try_again +
    resolver_errc::try_again, resolver_errc::try_again
    -
    restart
    +
    restart
    io_context, io_context::restart
    -
    result
    +
    result
    async_completion, async_completion::result
    -
    results_type
    +
    results_type
    ip::basic_resolver, ip::basic_resolver::results_type
    -
    result_type
    +
    result_type
    executor_binder, executor_binder::result_type
    ssl::rfc2818_verification, ssl::rfc2818_verification::result_type
    -
    return_type
    +
    return_type
    async_result, async_result::return_type
    @@ -3740,7 +3774,7 @@ std::packaged_task< Result(Args...)>, Signature >::return_type
    -
    reuse_address
    +
    reuse_address
    basic_datagram_socket, basic_datagram_socket::reuse_address
    @@ -3757,13 +3791,13 @@
    socket_base, socket_base::reuse_address
    -
    rfc2818_verification
    +
    rfc2818_verification
    ssl::rfc2818_verification, ssl::rfc2818_verification::rfc2818_verification
    -
    run
    +
    run
    io_context, io_context::run
    -
    running_in_this_thread
    +
    running_in_this_thread
    io_context::executor_type, io_context::executor_type::running_in_this_thread
    @@ -3774,19 +3808,19 @@
    thread_pool::executor_type, thread_pool::executor_type::running_in_this_thread
    -
    run_for
    +
    run_for
    io_context, io_context::run_for
    -
    run_one
    +
    run_one
    io_context, io_context::run_one
    -
    run_one_for
    +
    run_one_for
    io_context, io_context::run_one_for
    -
    run_one_until
    +
    run_one_until
    io_context, io_context::run_one_until
    -
    run_until
    +
    run_until
    io_context, io_context::run_until
    @@ -3794,13 +3828,13 @@

    S

    -
    scope_id
    +
    scope_id
    ip::address_v6, ip::address_v6::scope_id
    -
    second_argument_type
    +
    second_argument_type
    executor_binder, executor_binder::second_argument_type
    -
    send
    +
    send
    basic_datagram_socket, basic_datagram_socket::send
    @@ -3811,10 +3845,10 @@
    basic_stream_socket, basic_stream_socket::send
    -
    send_break
    +
    send_break
    serial_port, serial_port::send_break
    -
    send_buffer_size
    +
    send_buffer_size
    basic_datagram_socket, basic_datagram_socket::send_buffer_size
    @@ -3831,7 +3865,7 @@
    socket_base, socket_base::send_buffer_size
    -
    send_low_watermark
    +
    send_low_watermark
    basic_datagram_socket, basic_datagram_socket::send_low_watermark
    @@ -3848,56 +3882,56 @@
    socket_base, socket_base::send_low_watermark
    -
    send_to
    +
    send_to
    basic_datagram_socket, basic_datagram_socket::send_to
    basic_raw_socket, basic_raw_socket::send_to
    -
    seq_packet_protocol
    +
    seq_packet_protocol
    generic::seq_packet_protocol, generic::seq_packet_protocol::seq_packet_protocol
    -
    serial_port
    +
    serial_port
    serial_port, serial_port::serial_port
    -
    server
    +
    server
    ssl::stream, ssl::stream::handshake_type
    ssl::stream_base, ssl::stream_base::handshake_type
    -
    service
    +
    service
    execution_context::service, execution_context::service::service
    io_context::service, io_context::service::service
    -
    service_already_exists
    +
    service_already_exists
    service_already_exists, service_already_exists::service_already_exists
    -
    service_name
    +
    service_name
    ip::basic_resolver_entry, ip::basic_resolver_entry::service_name
    ip::basic_resolver_query, ip::basic_resolver_query::service_name
    -
    service_not_found
    +
    service_not_found
    error::addrinfo_errors, error::addrinfo_errors
    -
    service_type
    +
    service_type
    basic_io_object, basic_io_object::service_type
    -
    setbuf
    +
    setbuf
    basic_socket_streambuf, basic_socket_streambuf::setbuf
    -
    set_default_verify_paths
    +
    set_default_verify_paths
    ssl::context, ssl::context::set_default_verify_paths
    -
    set_option
    +
    set_option
    basic_datagram_socket, basic_datagram_socket::set_option
    @@ -3914,34 +3948,34 @@
    serial_port, serial_port::set_option
    -
    set_options
    +
    set_options
    ssl::context, ssl::context::set_options
    -
    set_password_callback
    +
    set_password_callback
    ssl::context, ssl::context::set_password_callback
    -
    set_verify_callback
    +
    set_verify_callback
    ssl::context, ssl::context::set_verify_callback
    ssl::stream, ssl::stream::set_verify_callback
    -
    set_verify_depth
    +
    set_verify_depth
    ssl::context, ssl::context::set_verify_depth
    ssl::stream, ssl::stream::set_verify_depth
    -
    set_verify_mode
    +
    set_verify_mode
    ssl::context, ssl::context::set_verify_mode
    ssl::stream, ssl::stream::set_verify_mode
    -
    shutdown
    +
    shutdown
    basic_datagram_socket, basic_datagram_socket::shutdown
    @@ -3966,7 +4000,7 @@
    thread_pool, thread_pool::shutdown
    -
    shutdown_both
    +
    shutdown_both
    basic_datagram_socket, basic_datagram_socket::shutdown_type
    @@ -3983,7 +4017,7 @@
    socket_base, socket_base::shutdown_type
    -
    shutdown_receive
    +
    shutdown_receive
    basic_datagram_socket, basic_datagram_socket::shutdown_type
    @@ -4000,7 +4034,7 @@
    socket_base, socket_base::shutdown_type
    -
    shutdown_send
    +
    shutdown_send
    basic_datagram_socket, basic_datagram_socket::shutdown_type
    @@ -4017,7 +4051,7 @@
    socket_base, socket_base::shutdown_type
    -
    shutdown_type
    +
    shutdown_type
    basic_datagram_socket, basic_datagram_socket::shutdown_type
    @@ -4034,20 +4068,20 @@
    socket_base, socket_base::shutdown_type
    -
    shut_down
    +
    shut_down
    error::basic_errors, error::basic_errors
    -
    signal_set
    +
    signal_set
    signal_set, signal_set::signal_set
    -
    single_dh_use
    +
    single_dh_use
    ssl::context, ssl::context::single_dh_use
    ssl::context_base, ssl::context_base::single_dh_use
    -
    size
    +
    size
    basic_streambuf, basic_streambuf::size
    @@ -4078,10 +4112,10 @@
    mutable_buffers_1, mutable_buffers_1::size
    -
    size_type
    +
    size_type
    ip::basic_resolver_results, ip::basic_resolver_results::size_type
    -
    socket
    +
    socket
    basic_socket_iostream, basic_socket_iostream::socket
    @@ -4106,101 +4140,101 @@
    local::stream_protocol, local::stream_protocol::socket
    -
    socket_type_not_supported
    +
    socket_type_not_supported
    error::addrinfo_errors, error::addrinfo_errors
    -
    software
    +
    software
    serial_port_base::flow_control, serial_port_base::flow_control::type
    -
    spawn, spawn +
    spawn, spawn
    -
    ssl
    +
    ssl
    ssl::stream::impl_struct, ssl::stream::impl_struct::ssl
    -
    ssl::error::get_stream_category, ssl::error::get_stream_category +
    ssl::error::get_stream_category, ssl::error::get_stream_category
    -
    ssl::error::make_error_code, ssl::error::make_error_code +
    ssl::error::make_error_code, ssl::error::make_error_code
    -
    ssl::error::stream_category, ssl::error::stream_category +
    ssl::error::stream_category, ssl::error::stream_category
    -
    ssl::error::stream_errors, ssl::error::stream_errors +
    ssl::error::stream_errors, ssl::error::stream_errors
    -
    ssl::verify_client_once, ssl::verify_client_once +
    ssl::verify_client_once, ssl::verify_client_once
    -
    ssl::verify_fail_if_no_peer_cert, ssl::verify_fail_if_no_peer_cert +
    ssl::verify_fail_if_no_peer_cert, ssl::verify_fail_if_no_peer_cert
    -
    ssl::verify_mode, ssl::verify_mode +
    ssl::verify_mode, ssl::verify_mode
    -
    ssl::verify_none, ssl::verify_none +
    ssl::verify_none, ssl::verify_none
    -
    ssl::verify_peer, ssl::verify_peer +
    ssl::verify_peer, ssl::verify_peer
    -
    sslv2
    +
    sslv2
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    sslv23
    +
    sslv23
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    sslv23_client
    +
    sslv23_client
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    sslv23_server
    +
    sslv23_server
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    sslv2_client
    +
    sslv2_client
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    sslv2_server
    +
    sslv2_server
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    sslv3
    +
    sslv3
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    sslv3_client
    +
    sslv3_client
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    sslv3_server
    +
    sslv3_server
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    steady_timer, steady_timer +
    steady_timer, steady_timer
    -
    stop
    +
    stop
    io_context, io_context::stop
    @@ -4209,17 +4243,17 @@
    thread_pool, thread_pool::stop
    -
    stopped
    +
    stopped
    io_context, io_context::stopped
    system_context, system_context::stopped
    -
    stop_bits
    +
    stop_bits
    serial_port_base::stop_bits, serial_port_base::stop_bits::stop_bits
    -
    store
    +
    store
    serial_port_base::baud_rate, serial_port_base::baud_rate::store
    @@ -4232,65 +4266,65 @@
    serial_port_base::stop_bits, serial_port_base::stop_bits::store
    -
    strand
    +
    strand
    io_context::strand, io_context::strand::strand
    strand, strand::strand
    -
    stream
    +
    stream
    ssl::stream, ssl::stream::stream
    -
    streambuf, streambuf +
    streambuf, streambuf
    -
    stream_descriptor
    +
    stream_descriptor
    posix::stream_descriptor, posix::stream_descriptor::stream_descriptor
    -
    stream_handle
    +
    stream_handle
    windows::stream_handle, windows::stream_handle::stream_handle
    -
    stream_protocol
    +
    stream_protocol
    generic::stream_protocol, generic::stream_protocol::stream_protocol
    -
    stream_truncated
    +
    stream_truncated
    ssl::error::stream_errors, ssl::error::stream_errors
    -
    subtract
    +
    subtract
    time_traits< boost::posix_time::ptime >, time_traits< boost::posix_time::ptime >::subtract
    -
    swap
    +
    swap
    ip::basic_resolver_results, ip::basic_resolver_results::swap
    -
    sync
    +
    sync
    basic_socket_streambuf, basic_socket_streambuf::sync
    -
    system_timer, system_timer +
    system_timer, system_timer

    T

    -
    target
    +
    target
    executor, executor::target
    -
    target_type
    +
    target_type
    executor, executor::target_type
    executor_binder, executor_binder::target_type
    -
    thread_pool
    +
    thread_pool
    thread_pool, thread_pool::thread_pool
    -
    timed_out
    +
    timed_out
    error::basic_errors, error::basic_errors
    -
    time_point
    +
    time_point
    basic_socket_iostream, basic_socket_iostream::time_point
    @@ -4299,7 +4333,7 @@
    basic_waitable_timer, basic_waitable_timer::time_point
    -
    time_type
    +
    time_type
    basic_deadline_timer, basic_deadline_timer::time_type
    @@ -4312,103 +4346,106 @@ boost::posix_time::ptime >::time_type
    -
    tls
    +
    tls
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv1
    +
    tlsv1
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv11
    +
    tlsv11
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv11_client
    +
    tlsv11_client
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv11_server
    +
    tlsv11_server
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv12
    +
    tlsv12
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv12_client
    +
    tlsv12_client
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv12_server
    +
    tlsv12_server
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv1_client
    +
    tlsv1_client
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tlsv1_server
    +
    tlsv1_server
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tls_client
    +
    tls_client
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    tls_server
    +
    tls_server
    ssl::context, ssl::context::method
    ssl::context_base, ssl::context_base::method
    -
    to_bytes
    +
    token_
    +
    experimental::redirect_error_t, experimental::redirect_error_t::token_ +
    +
    to_bytes
    ip::address_v4, ip::address_v4::to_bytes
    ip::address_v6, ip::address_v6::to_bytes
    -
    to_posix_duration
    +
    to_posix_duration
    time_traits< boost::posix_time::ptime >, time_traits< boost::posix_time::ptime >::to_posix_duration
    -
    to_string
    +
    to_string
    ip::address, ip::address::to_string
    @@ -4421,45 +4458,45 @@
    ip::network_v6, ip::network_v6::to_string
    -
    to_uint
    +
    to_uint
    ip::address_v4, ip::address_v4::to_uint
    -
    to_ulong
    +
    to_ulong
    ip::address_v4, ip::address_v4::to_ulong
    -
    to_v4
    +
    to_v4
    ip::address, ip::address::to_v4
    ip::address_v6, ip::address_v6::to_v4
    -
    to_v6
    +
    to_v6
    ip::address, ip::address::to_v6
    -
    to_wait_duration
    +
    to_wait_duration
    wait_traits, wait_traits::to_wait_duration
    -
    traits_type
    +
    traits_type
    basic_deadline_timer, basic_deadline_timer::traits_type
    basic_waitable_timer, basic_waitable_timer::traits_type
    -
    transfer_all, transfer_all +
    transfer_all, transfer_all
    -
    transfer_at_least, transfer_at_least +
    transfer_at_least, transfer_at_least
    -
    transfer_exactly, transfer_exactly +
    transfer_exactly, transfer_exactly
    -
    try_again
    +
    try_again
    error::basic_errors, error::basic_errors
    -
    two
    +
    two
    serial_port_base::stop_bits, serial_port_base::stop_bits::type
    -
    type
    +
    type
    associated_allocator, associated_allocator::type
    @@ -4501,52 +4538,52 @@

    U

    -
    uint_type
    +
    uint_type
    ip::address_v4, ip::address_v4::uint_type
    -
    underflow
    +
    underflow
    basic_socket_streambuf, basic_socket_streambuf::underflow
    basic_streambuf, basic_streambuf::underflow
    -
    unspecified_bool_true
    +
    unspecified_bool_true
    executor, executor::unspecified_bool_true
    -
    unspecified_bool_type
    +
    unspecified_bool_type
    executor, executor::unspecified_bool_type
    -
    use_certificate
    +
    use_certificate
    ssl::context, ssl::context::use_certificate
    -
    use_certificate_chain
    +
    use_certificate_chain
    ssl::context, ssl::context::use_certificate_chain
    -
    use_certificate_chain_file
    +
    use_certificate_chain_file
    ssl::context, ssl::context::use_certificate_chain_file
    -
    use_certificate_file
    +
    use_certificate_file
    ssl::context, ssl::context::use_certificate_file
    -
    use_future, use_future +
    use_future, use_future
    -
    use_future_t
    +
    use_future_t
    use_future_t, use_future_t::use_future_t
    -
    use_private_key
    +
    use_private_key
    ssl::context, ssl::context::use_private_key
    -
    use_private_key_file
    +
    use_private_key_file
    ssl::context, ssl::context::use_private_key_file
    -
    use_rsa_private_key
    +
    use_rsa_private_key
    ssl::context, ssl::context::use_rsa_private_key
    -
    use_rsa_private_key_file
    +
    use_rsa_private_key_file
    ssl::context, ssl::context::use_rsa_private_key_file
    -
    use_service, use_service +
    use_service, use_service
    execution_context, execution_context::use_service @@ -4558,10 +4595,10 @@
    thread_pool, thread_pool::use_service
    -
    use_tmp_dh
    +
    use_tmp_dh
    ssl::context, ssl::context::use_tmp_dh
    -
    use_tmp_dh_file
    +
    use_tmp_dh_file
    ssl::context, ssl::context::use_tmp_dh_file
    @@ -4569,7 +4606,7 @@

    V

    -
    v4
    +
    v4
    ip::icmp, ip::icmp::v4
    @@ -4578,10 +4615,10 @@
    ip::udp, ip::udp::v4
    -
    v4_compatible
    +
    v4_compatible
    ip::address_v6, ip::address_v6::v4_compatible
    -
    v4_mapped
    +
    v4_mapped
    ip::address_v6, ip::address_v6::v4_mapped
    @@ -4596,7 +4633,7 @@
    ip::v4_mapped_t, ip::v4_mapped_t
    -
    v6
    +
    v6
    ip::icmp, ip::icmp::v6
    @@ -4605,7 +4642,7 @@
    ip::udp, ip::udp::v6
    -
    value
    +
    value
    boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >, boost::system::is_error_code_enum< @@ -4650,19 +4687,21 @@
    serial_port_base::stop_bits, serial_port_base::stop_bits::value
    -
    values_
    +
    values_
    ip::basic_resolver_iterator, ip::basic_resolver_iterator::values_
    ip::basic_resolver_results, ip::basic_resolver_results::values_
    -
    value_type
    +
    value_type
    buffers_iterator, buffers_iterator::value_type
    const_buffers_1, const_buffers_1::value_type
    +
    experimental::awaitable, experimental::awaitable::value_type +
    ip::basic_address_iterator< address_v4 >, ip::basic_address_iterator< address_v4 >::value_type @@ -4680,7 +4719,7 @@
    null_buffers, null_buffers::value_type
    -
    verify_context
    +
    verify_context
    ssl::verify_context, ssl::verify_context::verify_context
    @@ -4688,7 +4727,7 @@

    W

    -
    wait
    +
    wait
    basic_datagram_socket, basic_datagram_socket::wait
    @@ -4713,7 +4752,7 @@
    windows::object_handle, windows::object_handle::wait
    -
    wait_error
    +
    wait_error
    basic_datagram_socket, basic_datagram_socket::wait_type
    @@ -4736,7 +4775,7 @@
    socket_base, socket_base::wait_type
    -
    wait_read
    +
    wait_read
    basic_datagram_socket, basic_datagram_socket::wait_type
    @@ -4759,7 +4798,7 @@
    socket_base, socket_base::wait_type
    -
    wait_type
    +
    wait_type
    basic_datagram_socket, basic_datagram_socket::wait_type
    @@ -4782,7 +4821,7 @@
    socket_base, socket_base::wait_type
    -
    wait_write
    +
    wait_write
    basic_datagram_socket, basic_datagram_socket::wait_type
    @@ -4805,31 +4844,31 @@
    socket_base, socket_base::wait_type
    -
    what
    +
    what
    bad_executor, bad_executor::what
    ip::bad_address_cast, ip::bad_address_cast::what
    -
    work
    +
    work
    io_context::work, io_context::work::work
    -
    would_block
    +
    would_block
    error::basic_errors, error::basic_errors
    -
    wrap
    +
    wrap
    io_context, io_context::wrap
    io_context::strand, io_context::strand::wrap
    -
    write, write +
    write, write
    -
    write_at, write_at +
    write_at, write_at
    -
    write_some
    +
    write_some
    basic_stream_socket, basic_stream_socket::write_some
    @@ -4848,14 +4887,14 @@
    windows::stream_handle, windows::stream_handle::write_some
    -
    write_some_at
    +
    write_some_at
    windows::random_access_handle, windows::random_access_handle::write_some_at

    Y

    -
    yield_context, yield_context +
    yield_context, yield_context
    @@ -4863,7 +4902,7 @@
    -
    -
  • @@ -184,7 +188,7 @@ -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -