From 56e41f3bf22c74442ede1a10d4f6b0b8de99767f Mon Sep 17 00:00:00 2001 From: Travis CI Date: Fri, 5 Aug 2016 22:20:33 +0000 Subject: [PATCH] Deploy to GitHub Pages: b877b98fee9d591113c53fc4dec49a0c3ad5ab59 --- .../{python_HTML.manifest => HTML.manifest} | 0 doc/html/article.html | 2 +- doc/html/boost.css | 66 - doc/html/boost_python.html | 823 ---------- doc/html/boostbook.css | 16 + doc/html/building.html | 4 +- doc/html/building/background.html | 4 +- .../choosing_a_boost_python_library_.html | 4 +- .../the_static_binary.html | 74 - .../building/configuring_boost_build.html | 72 +- .../configuring_boost_build/examples.html | 151 -- doc/html/building/examples.html | 150 -- doc/html/building/include_issues.html | 4 +- .../installing_boost_python_on_your_.html | 4 +- doc/html/building/no_install_quickstart.html | 4 +- .../choosing_a_boost_python_library_.html | 100 -- .../the_static_binary.html | 73 - .../configuring_boost_build.html | 91 -- .../configuring_boost_build/examples.html | 153 -- .../no_install_quickstart/examples.html | 151 -- .../in_case_everything_seemed_to_wor.html | 53 - .../in_case_of_trouble.html | 67 - .../no_install_quickstart/include_issues.html | 59 - .../installing_boost_python_on_your_.html | 60 - .../modifying_the_example_project.html | 177 --- .../add_new_or_change_names_of_exist.html | 58 - .../change_the_name_of_your_extensio.html | 81 - .../notes_for_mingw_and_cygwin_with_.html | 56 - .../python_configuration_parameters.html | 121 -- .../python_debugging_builds.html | 75 - .../testing_boost_python.html | 50 - .../notes_for_mingw_and_cygwin_with_.html | 4 +- .../python_configuration_parameters.html | 121 -- .../building/python_debugging_builds.html | 4 +- doc/html/building/testing_boost_python.html | 4 +- doc/html/building_and_testing.html | 824 ---------- doc/html/configuration.html | 4 +- doc/html/docutils.css | 275 ---- doc/html/faq.html | 4 +- .../faq/compilation_takes_too_much_time_.html | 4 +- .../faq/debugging_extensions_through_boo.html | 61 - .../faq/does_boost_python_work_with_mac_.html | 4 +- .../faq/error_c2064_term_does_not_evalua.html | 4 +- .../faq/fatal_error_c1204_compiler_limit.html | 40 +- .../faq/how_can_i_automatically_convert_.html | 4 +- .../faq/how_can_i_find_the_existing_pyob.html | 4 +- .../faq/how_can_i_wrap_a_function_which0.html | 4 +- .../faq/how_can_i_wrap_functions_which_t.html | 26 +- .../faq/how_do_i_create_sub_packages_usi.html | 4 +- .../faq/how_do_i_debug_my_python_extensi.html | 4 +- .../faq/i_m_getting_the_attempt_to_retur.html | 4 +- .../faq/is_boost_python_thread_aware_com.html | 4 +- .../faq/is_return_internal_reference_eff.html | 4 +- .../faq/why_doesn_t_my_operator_work.html | 4 +- .../faq/why_is_my_automatic_to_python_co.html | 4 +- doc/html/glossary.html | 4 +- doc/html/images/bpl.png | Bin 0 -> 21289 bytes doc/html/images/bpl.svg | 224 +++ doc/html/images/jam.png | Bin 3884 -> 0 bytes doc/html/images/python.png | Bin 14699 -> 0 bytes doc/html/images/python_cpp_mix.png | Bin 6293 -> 0 bytes doc/html/index.html | 6 +- doc/html/introduction.html | 70 - doc/html/introduction/articles.html | 48 - doc/html/python/background.html | 76 - doc/html/python/building_and_testing.html | 63 - .../building_and_testing/background.html | 77 - .../building_and_testing/basic_procedure.html | 917 ----------- .../choosing_a_boost_python_library_.html | 80 - .../the_static_binary.html | 68 - .../configuring_boost_build.html | 186 --- .../configuring_boost_build/examples.html | 153 -- .../building_and_testing/include_issues.html | 72 - .../installing_boost_python_on_your_.html | 76 - .../no_install_quickstart.html | 139 -- .../choosing_a_boost_python_library_.html | 128 -- .../configuring_boost_build.html | 288 ---- .../in_case_everything_seemed_to_wor.html | 53 - .../in_case_of_trouble.html | 67 - .../no_install_quickstart/include_issues.html | 59 - .../installing_boost_python_on_your_.html | 60 - .../modifying_the_example_project.html | 167 -- .../notes_for_mingw_and_cygwin_with_.html | 55 - .../python_debugging_builds.html | 75 - .../relocate_the_project.html | 161 -- .../testing_boost_python.html | 50 - .../notes_for_mingw_and_cygwin_with_.html | 138 -- .../python_debugging_builds.html | 97 -- .../testing_boost_python.html | 56 - .../the_static_binary.html | 68 - doc/html/python/configuration.html | 61 - .../application_defined_macros.html | 76 - .../library_defined_defined_macros.html | 70 - doc/html/python/include_issues.html | 73 - doc/html/python/no_install_quickstart.html | 139 -- .../choosing_a_boost_python_library_.html | 94 -- .../the_static_binary.html | 73 - .../no_install_quickstart/configuration.html | 54 - .../application_defined_macros.html | 76 - .../library_defined_defined_macros.html | 69 - .../configuring_boost_build.html | 174 -- .../configuring_boost_build/examples.html | 151 -- .../in_case_everything_seemed_to_wor.html | 53 - .../in_case_of_trouble.html | 68 - .../no_install_quickstart/include_issues.html | 59 - .../installing_boost_python_on_your_.html | 59 - .../modifying_the_example_project.html | 106 -- .../add_new_or_change_names_of_exist.html | 58 - .../change_the_name_of_your_extensio.html | 78 - .../notes_for_mingw_and_cygwin_with_.html | 54 - .../python_debugging_builds.html | 74 - .../testing_boost_python.html | 50 - .../notes_for_mingw_and_cygwin_with_.html | 137 -- doc/html/python/python_debugging_builds.html | 97 -- doc/html/python/requirements.html | 58 - doc/html/python/testing_boost_python.html | 55 - ...{reference_HTML.manifest => HTML.manifest} | 0 doc/html/reference/concepts.html | 4 +- .../reference/concepts/dereferenceable.html | 4 +- .../dereferenceable/concept_requirements.html | 92 -- doc/html/reference/concepts/extractor.html | 4 +- .../extractor/concept_requirements.html | 111 -- .../reference/concepts/extractor/notes.html | 49 - .../reference/concepts/holdergenerator.html | 4 +- .../holdergenerator/concept_requirements.html | 80 - .../reference/concepts/objectwrapper.html | 4 +- .../concepts/objectwrapper/caveat.html | 72 - .../objectwrapper/concept_requirements.html | 42 - .../objectwrapper_concept_requiremen.html | 59 - .../typewrapper_concept_requirements.html | 61 - .../reference/concepts/resultconverter.html | 4 +- .../resultconverter/concept_requirements.html | 42 - .../resultconverter_concept_require0.html | 78 - .../resultconverter_concept_requirem.html | 149 -- .../resultconvertergenerator_concept.html | 79 - .../concepts/resultconvertergenerator.html | 51 - .../concept_requirements.html | 42 - doc/html/reference/concepts/typewrapper.html | 51 - .../typewrapper/concept_requirements.html | 41 - doc/html/reference/embedding.html | 4 +- .../embedding/boost_python_import_hpp.html | 4 +- .../boost_python_import_hpp/examples.html | 62 - .../function_import.html | 58 - doc/html/reference/embedding/import_hpp.html | 56 - .../embedding/import_hpp/examples.html | 60 - .../embedding/import_hpp/function_import.html | 57 - .../function_invocation_and_creation.html | 4 +- .../boost_python_call_hpp.html | 4 +- .../boost_python_call_hpp/example.html | 53 - .../boost_python_call_hpp/function_call.html | 70 - .../boost_python_call_method_hpp.html | 4 +- .../boost_python_call_method_hpp/example.html | 107 -- .../function_call_method.html | 73 - .../boost_python_data_members_hpp.html | 4 +- .../example.html | 78 - .../functions.html | 161 -- .../boost_python_make_function_hpp.html | 32 +- .../example.html | 78 - .../functions.html | 141 -- .../boost_python_overloads_hpp.html | 4 +- .../boost_python_overloads_hpp/example.html | 92 -- .../boost_python_overloads_hpp/macros.html | 66 - .../overloaddispatcher_concept.html | 69 - .../boost_python_ptr_hpp.html | 4 +- .../class_template_pointer_wrapper.html | 61 - .../class_template_pointer_wrapper_c.html | 66 - .../class_template_pointer_wrapper_o.html | 63 - .../class_template_pointer_wrapper_t.html | 50 - .../boost_python_ptr_hpp/example.html | 67 - .../boost_python_ptr_hpp/functions.html | 63 - .../boost_python_ptr_hpp/metafunctions.html | 106 -- .../class_template_unwrap_pointer.html | 67 - .../boost_python_raw_function_hpp.html | 4 +- .../example.html | 72 - .../function_raw_function.html | 63 - .../call_hpp.html | 56 - .../call_hpp/example.html | 53 - .../call_hpp/function_call.html | 70 - .../call_method_hpp.html | 59 - .../call_method_hpp/example.html | 106 -- .../call_method_hpp/function_call_method.html | 72 - .../data_members_hpp.html | 58 - .../data_members_hpp/example.html | 78 - .../data_members_hpp/functions.html | 161 -- .../function_documentation.html | 4 +- .../boost_python_pytype_function_hpp.html | 299 ---- .../class_expected_from_python_type.html | 61 - .../class_registered_pytype.html | 61 - .../class_to_python_target_type.html | 60 - .../class_wrap_pytype.html | 59 - .../example.html | 179 --- .../pytype_function_hpp.html | 69 - .../class_expected_from_python_type.html | 60 - .../class_registered_pytype.html | 57 - .../class_to_python_target_type.html | 57 - .../class_wrap_pytype.html | 57 - .../pytype_function_hpp/example.html | 173 -- .../make_function_hpp.html | 58 - .../make_function_hpp/example.html | 78 - .../make_function_hpp/functions.html | 141 -- .../models_of_callpolicies.html | 4 +- .../boost_python_return_arg_hpp.html | 251 --- .../class_return_arg.html | 136 -- .../class_return_arg_static_function.html | 60 - .../class_template_return_self.html | 52 - .../boost_python_return_arg_hpp/example.html | 91 -- .../boost_python_return_internal_ref.html | 250 --- .../class_return_internal_reference_.html | 60 - .../class_template_return_internal_r.html | 136 -- .../example.html | 101 -- .../boost_python_return_value_policy.html | 173 -- .../class_template_return_value_poli.html | 110 -- .../example.html | 80 - .../boost_python_with_custodian_and_.html | 396 ----- .../class_with_custodian_and_ward.html | 152 -- .../class_with_custodian_and_ward_p0.html | 70 - .../class_with_custodian_and_ward_po.html | 154 -- .../class_with_custodian_and_ward_st.html | 65 - .../example.html | 54 - .../return_arg_hpp.html | 63 - .../return_arg_hpp/class_return_arg.html | 134 -- .../class_return_arg_static_function.html | 60 - .../class_template_return_self.html | 52 - .../return_arg_hpp/example.html | 91 -- .../return_internal_reference_hpp.html | 59 - .../class_return_internal_reference_.html | 60 - .../class_template_return_internal_r.html | 134 -- .../example.html | 101 -- .../return_value_policy_hpp.html | 56 - .../class_template_return_value_poli.html | 110 -- .../return_value_policy_hpp/example.html | 80 - .../with_custodian_and_ward_hpp.html | 88 -- .../class_with_custodian_and_ward.html | 151 -- .../class_with_custodian_and_ward_p0.html | 67 - .../class_with_custodian_and_ward_po.html | 154 -- .../class_with_custodian_and_ward_st.html | 65 - .../with_custodian_and_ward_hpp/example.html | 54 - .../models_of_resultconverter.html | 4 +- .../boost_python_to_python_value_hpp.html | 119 -- .../class_template_to_python_value.html | 58 - .../class_to_python_value_observers.html | 77 - .../to_python_value_hpp.html | 59 - .../class_template_to_python_value.html | 58 - .../class_to_python_value_observers.html | 75 - .../models_of_resultconvertergenerat.html | 4 +- .../boost_python_copy_non_const_refe.html | 135 -- .../class_copy_non_const_reference_m.html | 60 - .../example.html | 80 - .../boost_python_manage_new_object_h.html | 132 -- .../class_manage_new_object_metafunc.html | 59 - .../example.html | 78 - .../boost_python_reference_existing_.html | 164 -- .../class_reference_existing_object_.html | 64 - .../example.html | 97 -- .../boost_python_return_by_value_hpp.html | 133 -- .../class_return_by_value_metafuncti.html | 54 - .../example.html | 85 - .../boost_python_return_opaque_point.html | 170 -- .../class_return_opaque_pointer_meta.html | 55 - .../example.html | 116 -- .../copy_non_const_reference_hpp.html | 70 - .../class_copy_non_const_reference_m.html | 60 - .../copy_non_const_reference_hpp/example.html | 80 - .../manage_new_object_hpp.html | 70 - .../class_manage_new_object_metafunc.html | 59 - .../manage_new_object_hpp/example.html | 78 - .../reference_existing_object_hpp.html | 77 - .../class_reference_existing_object_.html | 63 - .../example.html | 97 -- .../return_by_value_hpp.html | 69 - .../class_return_by_value_metafuncti.html | 54 - .../return_by_value_hpp/example.html | 85 - .../return_opaque_pointer_hpp.html | 74 - .../class_return_opaque_pointer_meta.html | 55 - .../return_opaque_pointer_hpp/example.html | 116 -- .../overloads_hpp.html | 100 -- .../overloads_hpp/example.html | 92 -- .../overloads_hpp/macros.html | 66 - .../overloaddispatcher_concept.html | 68 - .../ptr_hpp.html | 89 -- .../class_template_pointer_wrapper.html | 61 - .../class_template_pointer_wrapper_c.html | 64 - .../class_template_pointer_wrapper_o.html | 63 - .../class_template_pointer_wrapper_t.html | 50 - .../ptr_hpp/example.html | 67 - .../ptr_hpp/functions.html | 63 - .../ptr_hpp/metafunctions.html | 76 - .../class_template_unwrap_pointer.html | 66 - .../raw_function_hpp.html | 59 - .../raw_function_hpp/example.html | 72 - .../function_raw_function.html | 63 - doc/html/reference/glossary.html | 4 +- doc/html/reference/high_level_components.html | 182 +-- .../boost_python_def_hpp.html | 178 +-- .../boost_python_def_hpp/example.html | 56 - .../boost_python_def_hpp/functions.html | 188 --- .../boost_python_def_visitor_hpp.html | 4 +- .../class_def_visitor.html | 160 -- .../boost_python_def_visitor_hpp/example.html | 66 - .../boost_python_docstring_options_h.html | 4 +- .../class_docstring_options.html | 71 - .../class_docstring_options_destruct.html | 59 - .../class_docstring_options_modifier.html | 63 - .../class_dostring_options_construct.html | 98 -- .../example.html | 202 --- .../example/selective_suppressions.html | 95 -- .../wrapping_from_multiple_c_scopes.html | 97 -- .../boost_python_enum_hpp.html | 4 +- .../class_template_enum.html | 59 - .../class_template_enum_constructors.html | 63 - .../class_template_enum_modifier_fun.html | 81 - .../boost_python_enum_hpp/example.html | 110 -- .../boost_python_errors_hpp.html | 4 +- .../class_error_already_set.html | 58 - .../boost_python_errors_hpp/example.html | 139 -- .../boost_python_errors_hpp/functions.html | 141 -- .../boost_python_exception_translato.html | 4 +- .../example.html | 74 - .../function_register_exception_tran.html | 74 - .../boost_python_init_hpp.html | 4 +- .../class_template_init.html | 131 -- .../class_template_init_observer_fun.html | 63 - .../class_template_optional.html | 54 - .../boost_python_init_hpp/example.html | 68 - .../boost_python_iterator_hpp.html | 27 +- .../class_template_iterator.html | 142 -- .../class_template_iterator_construc.html | 68 - .../class_template_iterators.html | 112 -- .../class_template_iterators_nested_.html | 52 - .../class_template_iterators_static_.html | 64 - .../boost_python_iterator_hpp/example.html | 56 - .../boost_python_iterator_hpp/functions.html | 102 -- .../boost_python_module_hpp.html | 4 +- .../boost_python_module_hpp/examples.html | 61 - .../boost_python_module_hpp/macros.html | 76 - .../boost_python_operators_hpp.html | 4 +- .../class_self_ns_self_t.html | 1402 ----------------- .../self_t_comparison_functions.html | 405 ----- .../self_t_non_member_operations.html | 492 ------ .../self_t_unary_operations.html | 138 -- .../self_t_value_operations.html | 171 -- .../class_template_detail_operator.html | 59 - .../class_template_other.html | 59 - .../boost_python_operators_hpp/example.html | 115 -- .../object_self.html | 49 - .../boost_python_scope_hpp.html | 4 +- .../boost_python_scope_hpp/class_scope.html | 68 - .../class_scope_constructors_and_des.html | 63 - .../boost_python_scope_hpp/example.html | 90 -- .../boost_python_stl_iterator_hpp.html | 4 +- .../class_template_stl_input_iterat0.html | 82 - .../class_template_stl_input_iterat1.html | 81 - .../class_template_stl_input_iterat2.html | 93 -- .../class_template_stl_input_iterato.html | 129 -- .../example.html | 55 - .../boost_python_wrapper_hpp.html | 4 +- .../class_override.html | 64 - .../class_override_observer_function.html | 69 - .../class_template_wrapper.html | 58 - .../class_template_wrapper_observer_.html | 63 - .../class_wrapper_observer_functions.html | 61 - .../boost_python_wrapper_hpp/example.html | 96 -- .../high_level_components/def_hpp.html | 58 - .../def_hpp/example.html | 56 - .../def_hpp/functions.html | 180 --- .../def_visitor_hpp.html | 61 - .../def_visitor_hpp/class_def_visitor.html | 151 -- .../def_visitor_hpp/example.html | 69 - .../docstring_options_hpp.html | 74 - .../class_docstring_options.html | 72 - .../class_docstring_options_destruct.html | 58 - .../class_docstring_options_modifier.html | 61 - .../class_dostring_options_construct.html | 92 -- .../docstring_options_hpp.html | 54 - .../class_docstring_options.html | 42 - .../class_dostring_options_construct.html | 51 - .../docstring_options_hpp/example.html | 41 - .../docstring_options_hpp/example.html | 86 - .../example/selective_suppressions.html | 95 -- .../wrapping_from_multiple_c_scopes.html | 97 -- .../docstring_options_hpp/template.html | 54 - .../template/class_template.html | 42 - .../template/class_template_constructors.html | 51 - .../template/example.html | 40 - .../docstring_options_hpp0.html | 54 - .../class_docstring_options.html | 42 - .../class_dostring_options_construct.html | 51 - .../docstring_options_hpp0/example.html | 41 - .../high_level_components/enum_hpp.html | 63 - .../enum_hpp/class_template_enum.html | 59 - .../class_template_enum_constructors.html | 60 - .../class_template_enum_modifier_fun.html | 78 - .../enum_hpp/example.html | 110 -- .../high_level_components/errors_hpp.html | 61 - .../errors_hpp/class_error_already_set.html | 56 - .../errors_hpp/example.html | 139 -- .../errors_hpp/functions.html | 137 -- .../exception_translator.html | 64 - .../exception_translator/example.html | 74 - .../function_register_exception_tran.html | 74 - .../exception_translator_hpp.html | 64 - .../exception_translator_hpp/example.html | 74 - .../function_register_exception_tran.html | 74 - .../high_level_components/init_hpp.html | 104 -- .../init_hpp/class_template_init.html | 103 -- .../class_template_init_observer_fun.html | 63 - .../init_hpp/class_template_optional.html | 54 - .../init_hpp/example.html | 68 - .../high_level_components/iterator_hpp.html | 73 - .../iterator_hpp/class_template_iterator.html | 138 -- .../class_template_iterator_construc.html | 67 - .../class_template_iterators.html | 110 -- .../class_template_iterators_nested_.html | 52 - .../class_template_iterators_static_.html | 64 - .../iterator_hpp/example.html | 56 - .../iterator_hpp/functions.html | 102 -- .../high_level_components/module_hpp.html | 57 - .../module_hpp/examples.html | 61 - .../module_hpp/macros.html | 73 - .../high_level_components/operators_hpp.html | 76 - .../operators_hpp/class_self_ns_self_t.html | 344 ---- .../self_t_comparison_functions.html | 400 ----- .../self_t_non_member_operations.html | 492 ------ .../self_t_unary_operations.html | 138 -- .../self_t_value_operations.html | 171 -- .../class_template_detail_operator.html | 58 - .../operators_hpp/class_template_other.html | 59 - .../operators_hpp/example.html | 115 -- .../operators_hpp/object_self.html | 49 - .../high_level_components/scope_hpp.html | 60 - .../scope_hpp/class_scope.html | 68 - .../class_scope_constructors_and_des.html | 63 - .../scope_hpp/example.html | 90 -- .../stl_iterator_hpp.html | 67 - .../class_template_stl_input_iterat0.html | 82 - .../class_template_stl_input_iterat1.html | 81 - .../class_template_stl_input_iterat2.html | 93 -- .../class_template_stl_input_iterato.html | 129 -- .../stl_iterator_hpp/example.html | 55 - .../high_level_components/template.html | 54 - .../template/class_template.html | 42 - .../template/class_template_constructors.html | 51 - .../template/class_template_optional.html | 54 - .../template/example.html | 40 - .../function_register_exception_tran.html | 74 - .../high_level_components/template0.html | 54 - .../template0/class_template.html | 42 - .../class_template_constructors.html | 51 - .../template0/example.html | 40 - .../high_level_components/wrapper_hpp.html | 71 - .../wrapper_hpp/class_override.html | 64 - .../class_override_observer_function.html | 70 - .../wrapper_hpp/class_template_wrapper.html | 58 - .../class_wrapper_observer_functions.html | 61 - .../wrapper_hpp/example.html | 96 -- doc/html/reference/index.html | 508 +----- doc/html/reference/object_wrappers.html | 4 +- .../boost_python_list_hpp.html | 4 +- .../boost_python_list_hpp/class_list.html | 93 -- .../boost_python_list_hpp/example.html | 51 - .../boost_python_long_hpp.html | 4 +- .../boost_python_long_hpp/class_long.html | 67 - .../boost_python_long_hpp/example.html | 54 - .../boost_python_numeric_hpp.html | 4 +- .../boost_python_numeric_hpp/class_array.html | 160 -- .../class_array_observer_functions.html | 67 - .../class_array_static_functions.html | 76 - .../boost_python_numeric_hpp/example.html | 52 - .../boost_python_object_hpp.html | 4 +- .../class_attribute_policies.html | 57 - .../class_attribute_policies_static_.html | 85 - .../class_const_attribute_policies.html | 57 - .../class_const_attribute_policies_s.html | 69 - .../class_const_item_policies.html | 57 - .../class_const_item_policies_static.html | 65 - .../class_const_objattribute_polici0.html | 69 - .../class_const_objattribute_policie.html | 57 - .../class_const_slice_policies.html | 57 - .../class_const_slice_policies_stati.html | 65 - .../class_item_policies.html | 57 - .../class_item_policies_static_funct.html | 76 - .../class_objattribute_policies.html | 57 - .../class_objattribute_policies_stat.html | 85 - .../boost_python_object_hpp/class_object.html | 69 - .../class_object_constructors_and_de.html | 86 - .../class_object_modifiers.html | 64 - .../class_slice_nil.html | 60 - .../class_slice_policies.html | 57 - .../class_slice_policies_static_func.html | 76 - .../class_template_object_operators.html | 105 -- .../class_template_object_operators_.html | 196 --- .../class_template_proxy.html | 84 - .../class_template_proxy_modifier_fu.html | 103 -- .../class_template_proxy_observer_fu.html | 55 - .../boost_python_object_hpp/example.html | 63 - .../boost_python_object_hpp/functions.html | 133 -- .../boost_python_slice_hpp.html | 4 +- .../boost_python_slice_hpp/class_slice.html | 86 - .../class_slice_constructors.html | 112 -- .../class_slice_observer_functions.html | 124 -- .../boost_python_slice_hpp/example.html | 80 - .../object_wrappers/boost_python_str_hpp.html | 4 +- .../boost_python_str_hpp/class_str.html | 187 --- .../boost_python_str_hpp/example.html | 49 - .../boost_python_tuple_hpp.html | 6 +- .../boost_python_tuple_hpp/class_tuple.html | 63 - .../boost_python_tuple_hpp/example.html | 49 - .../function_make_tuple.html | 67 - .../reference/object_wrappers/list_hpp.html | 56 - .../object_wrappers/list_hpp/class_list.html | 90 -- .../object_wrappers/list_hpp/example.html | 51 - .../reference/object_wrappers/long_hpp.html | 56 - .../object_wrappers/long_hpp/class_long.html | 65 - .../object_wrappers/long_hpp/example.html | 54 - .../object_wrappers/numeric_hpp.html | 60 - .../numeric_hpp/class_array.html | 157 -- .../class_array_observer_functions.html | 67 - .../class_array_static_functions.html | 69 - .../object_wrappers/numeric_hpp/example.html | 52 - .../reference/object_wrappers/object_hpp.html | 116 -- .../object_hpp/class_attribute_policies.html | 57 - .../class_attribute_policies_static_.html | 83 - .../class_const_attribute_policies.html | 57 - .../class_const_attribute_policies_s.html | 68 - .../object_hpp/class_const_item_policies.html | 57 - .../class_const_item_policies_static.html | 64 - .../class_const_objattribute_polici0.html | 68 - .../class_const_objattribute_policie.html | 57 - .../class_const_slice_policies.html | 57 - .../class_const_slice_policies_stati.html | 64 - .../object_hpp/class_item_policies.html | 57 - .../class_item_policies_static_funct.html | 74 - .../class_objattribute_policies.html | 57 - .../class_objattribute_policies_stat.html | 83 - .../object_hpp/class_object.html | 68 - .../class_object_constructors_and_de.html | 86 - .../object_hpp/class_object_modifiers.html | 64 - .../object_hpp/class_slice_nil.html | 60 - .../object_hpp/class_slice_policies.html | 57 - .../class_slice_policies_static_func.html | 74 - .../class_template_object_operators.html | 105 -- .../class_template_object_operators_.html | 197 --- .../object_hpp/class_template_proxy.html | 84 - .../class_template_proxy_modifier_fu.html | 100 -- .../class_template_proxy_observer_fu.html | 55 - .../object_wrappers/object_hpp/example.html | 63 - .../object_wrappers/object_hpp/functions.html | 133 -- .../reference/object_wrappers/slice_hpp.html | 60 - .../slice_hpp/class_slice.html | 85 - .../slice_hpp/class_slice_constructors.html | 112 -- .../class_slice_observer_functions.html | 124 -- .../object_wrappers/slice_hpp/example.html | 80 - .../reference/object_wrappers/str_hpp.html | 56 - .../object_wrappers/str_hpp/class_str.html | 186 --- .../object_wrappers/str_hpp/example.html | 49 - .../reference/object_wrappers/template.html | 53 - .../template/class_template.html | 41 - .../template/class_template_constructors.html | 51 - .../object_wrappers/template/example.html | 40 - .../reference/object_wrappers/template0.html | 53 - .../template0/class_template.html | 41 - .../class_template_constructors.html | 51 - .../object_wrappers/template0/example.html | 40 - .../reference/object_wrappers/tuple_hpp.html | 58 - .../tuple_hpp/class_tuple.html | 63 - .../object_wrappers/tuple_hpp/example.html | 49 - .../tuple_hpp/function_make_tuple.html | 67 - .../to_from_python_type_conversion.html | 4 +- .../boost_python_implicit_hpp.html | 4 +- .../boost_python_implicit_hpp/example.html | 91 -- .../function_template_implicit_conve.html | 114 -- .../boost_python_lvalue_from_pytype_.html | 4 +- .../class_template_extract_identity.html | 78 - .../class_template_extract_member.html | 79 - .../class_template_lvalue_from_pytyp.html | 144 -- .../example.html | 100 -- .../boost_python_opaque_pointer_conv.html | 23 +- .../class_template_opaque_constructo.html | 74 - .../macro_boost_python_opaque_specia.html | 58 - .../boost_python_register_ptr_to_pyt.html | 4 +- .../example.html | 117 -- .../function_register_ptr_to_python.html | 60 - .../boost_python_to_python_converter.html | 4 +- .../boost_python_register_ptr_to_pyt.html | 58 - .../example.html | 116 -- .../function_register_ptr_to_python.html | 60 - .../class_template_to_python_convert.html | 173 -- .../example.html | 105 -- .../example.html | 104 -- .../example0.html | 115 -- .../register_ptr_to_python_hpp.html | 57 - .../function_register_ptr_to_python.html | 60 - .../implicit_hpp.html | 56 - .../implicit_hpp/example.html | 91 -- .../function_template_implicit_conve.html | 111 -- .../lvalue_from_pytype_hpp.html | 69 - .../class_template_extract_identity.html | 78 - .../class_template_extract_member.html | 78 - .../class_template_lvalue_from_pytyp.html | 144 -- .../lvalue_from_pytype_hpp/example.html | 94 -- .../opaque_pointer_converter_hpp.html | 68 - .../class_template_opaque_constructo.html | 74 - .../macro_boost_python_opaque_specia.html | 58 - .../to_python_converter_hpp.html | 175 -- .../to_python_converter_hpp/example.html | 116 -- .../register_ptr_to_python_hpp.html | 79 - .../to_python_converter_hpp.html | 187 --- .../to_python_converter_hpp/example.html | 115 -- .../register_ptr_to_python_hpp.html | 57 - .../function_register_ptr_to_python.html | 60 - doc/html/reference/topics.html | 4 +- .../reference/topics/indexing_support.html | 14 +- .../class_map_indexing_suite.html | 178 --- .../class_vector_indexing_suite.html | 193 --- .../index_suite_sub_classes.html | 111 -- .../map_index_suite.html | 67 - .../indexing_suite_class.html | 308 ---- .../indexing_support/map_index_suite.html | 67 - .../the_indexing_interface.html | 118 -- .../indexing_support/vector_index_suite.html | 63 - doc/html/reference/topics/pickle_support.html | 4 +- .../topics/pickle_support/example.html | 145 -- .../pickle_support/example/pickle2_cpp.html | 92 -- .../pickle_support/example/pickle3_cpp.html | 48 - .../light_weight_alternative_pickle_.html | 72 - .../pitfall_and_safety_guard.html | 97 -- .../pickle_support/practical_advice.html | 62 - .../pickle_support/the_pickle_interface.html | 97 -- .../reference/utility_and_infrastructure.html | 4 +- .../boost_python_handle_hpp.html | 4 +- .../class_template_handle.html | 323 ---- .../class_template_handle_modifiers.html | 89 -- .../class_template_handle_observers.html | 80 - .../function_allow_null.html | 50 - .../function_borrowed.html | 50 - .../boost_python_instance_holder_hpp.html | 4 +- .../class_template_instance_holder.html | 148 -- .../class_intance_holder_modifiers.html | 65 - .../class_intance_holder_observers.html | 56 - .../examples.html | 89 -- .../boost_python_pointee_hpp.html | 4 +- .../class_template_pointee.html | 64 - .../boost_python_pointee_hpp/examples.html | 67 - .../boost_python_ssize_t_hpp.html | 4 +- .../boost_python_ssize_t_hpp/constants.html | 57 - .../boost_python_ssize_t_hpp/typedefs.html | 54 - .../boost_python_type_id_hpp.html | 4 +- .../class_template_type_info.html | 153 -- .../class_template_type_info_compari.html | 72 - .../class_template_type_info_observe.html | 56 - .../boost_python_type_id_hpp/example.html | 57 - .../boost_python_type_id_hpp/functions.html | 84 - .../handle_hpp.html | 70 - .../handle_hpp/class_template_handle.html | 226 --- .../class_template_handle_modifiers.html | 89 -- .../class_template_handle_observers.html | 80 - .../function_allow_null.html | 50 - .../function_borrowed.html | 50 - .../handle_hpp/function_allow_null.html | 50 - .../handle_hpp/function_borrowed.html | 50 - .../handle_hpp/type_id_hpp.html | 60 - .../type_id_hpp/class_template_type_info.html | 202 --- .../handle_hpp/type_id_hpp/ssize_t_hpp.html | 91 -- .../instance_holder_hpp.html | 66 - .../class_template_instance_holder.html | 100 -- .../class_intance_holder_modifiers.html | 64 - .../class_intance_holder_observers.html | 56 - .../instance_holder_hpp/examples.html | 87 - .../pointee_hpp.html | 59 - .../pointee_hpp/class_template_pointee.html | 63 - .../pointee_hpp/examples.html | 65 - .../ssize_t_hpp.html | 60 - .../ssize_t_hpp/constants.html | 56 - .../ssize_t_hpp/typedefs.html | 53 - .../type_id_hpp.html | 69 - .../type_id_hpp/class_template_type_info.html | 105 -- .../class_template_type_info_compari.html | 69 - .../class_template_type_info_observe.html | 56 - .../class_template_type_info/example.html | 55 - .../class_template_type_info/functions.html | 66 - .../type_id_hpp/example.html | 55 - .../type_id_hpp/functions.html | 66 - .../type_id_hpp/ssize_t_hpp.html | 59 - .../type_id_hpp/ssize_t_hpp/typedefs.html | 71 - doc/html/rst.css | 4 +- doc/html/support.html | 26 +- doc/html/support/support.html | 79 - .../{tutorial_HTML.manifest => HTML.manifest} | 0 doc/html/tutorial/index.html | 6 +- .../tutorial/tutorial/auto_overloading.html | 118 -- .../tutorial/tutorial/class_data_members.html | 82 - .../class_operators_special_functions.html | 126 -- .../tutorial/tutorial/class_properties.html | 83 - .../tutorial/class_virtual_functions.html | 123 -- .../tutorial/creating_python_object.html | 65 - .../tutorial/tutorial/default_arguments.html | 183 --- .../tutorial/derived_object_types.html | 155 -- doc/html/tutorial/tutorial/embedding.html | 18 +- doc/html/tutorial/tutorial/enums.html | 104 -- doc/html/tutorial/tutorial/exception.html | 4 +- doc/html/tutorial/tutorial/exposing.html | 16 +- .../extending_wrapped_objects_in_python.html | 153 -- .../tutorial/extracting_c___objects.html | 83 - doc/html/tutorial/tutorial/functions.html | 18 +- doc/html/tutorial/tutorial/hello.html | 6 +- doc/html/tutorial/tutorial/inheritance.html | 115 -- doc/html/tutorial/tutorial/iterators.html | 4 +- doc/html/tutorial/tutorial/object.html | 8 +- doc/html/tutorial/tutorial/overloading.html | 91 -- .../tutorial/reducing_compiling_time.html | 123 -- doc/html/tutorial/tutorial/techniques.html | 27 +- ...unctions_with_default_implementations.html | 137 -- 712 files changed, 729 insertions(+), 57692 deletions(-) rename doc/html/{python_HTML.manifest => HTML.manifest} (100%) delete mode 100644 doc/html/boost.css delete mode 100644 doc/html/boost_python.html delete mode 100644 doc/html/building/choosing_a_boost_python_library_/the_static_binary.html delete mode 100644 doc/html/building/configuring_boost_build/examples.html delete mode 100644 doc/html/building/examples.html delete mode 100644 doc/html/building/no_install_quickstart/choosing_a_boost_python_library_.html delete mode 100644 doc/html/building/no_install_quickstart/choosing_a_boost_python_library_/the_static_binary.html delete mode 100644 doc/html/building/no_install_quickstart/configuring_boost_build.html delete mode 100644 doc/html/building/no_install_quickstart/configuring_boost_build/examples.html delete mode 100644 doc/html/building/no_install_quickstart/examples.html delete mode 100644 doc/html/building/no_install_quickstart/in_case_everything_seemed_to_wor.html delete mode 100644 doc/html/building/no_install_quickstart/in_case_of_trouble.html delete mode 100644 doc/html/building/no_install_quickstart/include_issues.html delete mode 100644 doc/html/building/no_install_quickstart/installing_boost_python_on_your_.html delete mode 100644 doc/html/building/no_install_quickstart/modifying_the_example_project.html delete mode 100644 doc/html/building/no_install_quickstart/modifying_the_example_project/add_new_or_change_names_of_exist.html delete mode 100644 doc/html/building/no_install_quickstart/modifying_the_example_project/change_the_name_of_your_extensio.html delete mode 100644 doc/html/building/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html delete mode 100644 doc/html/building/no_install_quickstart/python_configuration_parameters.html delete mode 100644 doc/html/building/no_install_quickstart/python_debugging_builds.html delete mode 100644 doc/html/building/no_install_quickstart/testing_boost_python.html delete mode 100644 doc/html/building/python_configuration_parameters.html delete mode 100644 doc/html/building_and_testing.html delete mode 100644 doc/html/docutils.css delete mode 100644 doc/html/faq/debugging_extensions_through_boo.html create mode 100644 doc/html/images/bpl.png create mode 100644 doc/html/images/bpl.svg delete mode 100644 doc/html/images/jam.png delete mode 100644 doc/html/images/python.png delete mode 100755 doc/html/images/python_cpp_mix.png delete mode 100644 doc/html/introduction.html delete mode 100644 doc/html/introduction/articles.html delete mode 100644 doc/html/python/background.html delete mode 100644 doc/html/python/building_and_testing.html delete mode 100644 doc/html/python/building_and_testing/background.html delete mode 100644 doc/html/python/building_and_testing/basic_procedure.html delete mode 100644 doc/html/python/building_and_testing/choosing_a_boost_python_library_.html delete mode 100644 doc/html/python/building_and_testing/choosing_a_boost_python_library_/the_static_binary.html delete mode 100644 doc/html/python/building_and_testing/configuring_boost_build.html delete mode 100644 doc/html/python/building_and_testing/configuring_boost_build/examples.html delete mode 100644 doc/html/python/building_and_testing/include_issues.html delete mode 100644 doc/html/python/building_and_testing/installing_boost_python_on_your_.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/choosing_a_boost_python_library_.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/configuring_boost_build.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/in_case_everything_seemed_to_wor.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/in_case_of_trouble.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/include_issues.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/installing_boost_python_on_your_.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/modifying_the_example_project.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/python_debugging_builds.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/relocate_the_project.html delete mode 100644 doc/html/python/building_and_testing/no_install_quickstart/testing_boost_python.html delete mode 100644 doc/html/python/building_and_testing/notes_for_mingw_and_cygwin_with_.html delete mode 100644 doc/html/python/building_and_testing/python_debugging_builds.html delete mode 100644 doc/html/python/building_and_testing/testing_boost_python.html delete mode 100644 doc/html/python/building_and_testing/the_static_binary.html delete mode 100644 doc/html/python/configuration.html delete mode 100644 doc/html/python/configuration/application_defined_macros.html delete mode 100644 doc/html/python/configuration/library_defined_defined_macros.html delete mode 100644 doc/html/python/include_issues.html delete mode 100644 doc/html/python/no_install_quickstart.html delete mode 100644 doc/html/python/no_install_quickstart/choosing_a_boost_python_library_.html delete mode 100644 doc/html/python/no_install_quickstart/choosing_a_boost_python_library_/the_static_binary.html delete mode 100644 doc/html/python/no_install_quickstart/configuration.html delete mode 100644 doc/html/python/no_install_quickstart/configuration/application_defined_macros.html delete mode 100644 doc/html/python/no_install_quickstart/configuration/library_defined_defined_macros.html delete mode 100644 doc/html/python/no_install_quickstart/configuring_boost_build.html delete mode 100644 doc/html/python/no_install_quickstart/configuring_boost_build/examples.html delete mode 100644 doc/html/python/no_install_quickstart/in_case_everything_seemed_to_wor.html delete mode 100644 doc/html/python/no_install_quickstart/in_case_of_trouble.html delete mode 100644 doc/html/python/no_install_quickstart/include_issues.html delete mode 100644 doc/html/python/no_install_quickstart/installing_boost_python_on_your_.html delete mode 100644 doc/html/python/no_install_quickstart/modifying_the_example_project.html delete mode 100644 doc/html/python/no_install_quickstart/modifying_the_example_project/add_new_or_change_names_of_exist.html delete mode 100644 doc/html/python/no_install_quickstart/modifying_the_example_project/change_the_name_of_your_extensio.html delete mode 100644 doc/html/python/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html delete mode 100644 doc/html/python/no_install_quickstart/python_debugging_builds.html delete mode 100644 doc/html/python/no_install_quickstart/testing_boost_python.html delete mode 100644 doc/html/python/notes_for_mingw_and_cygwin_with_.html delete mode 100644 doc/html/python/python_debugging_builds.html delete mode 100644 doc/html/python/requirements.html delete mode 100644 doc/html/python/testing_boost_python.html rename doc/html/reference/{reference_HTML.manifest => HTML.manifest} (100%) delete mode 100644 doc/html/reference/concepts/dereferenceable/concept_requirements.html delete mode 100644 doc/html/reference/concepts/extractor/concept_requirements.html delete mode 100644 doc/html/reference/concepts/extractor/notes.html delete mode 100644 doc/html/reference/concepts/holdergenerator/concept_requirements.html delete mode 100644 doc/html/reference/concepts/objectwrapper/caveat.html delete mode 100644 doc/html/reference/concepts/objectwrapper/concept_requirements.html delete mode 100644 doc/html/reference/concepts/objectwrapper/objectwrapper_concept_requiremen.html delete mode 100644 doc/html/reference/concepts/objectwrapper/typewrapper_concept_requirements.html delete mode 100644 doc/html/reference/concepts/resultconverter/concept_requirements.html delete mode 100644 doc/html/reference/concepts/resultconverter/resultconverter_concept_require0.html delete mode 100644 doc/html/reference/concepts/resultconverter/resultconverter_concept_requirem.html delete mode 100644 doc/html/reference/concepts/resultconverter/resultconvertergenerator_concept.html delete mode 100644 doc/html/reference/concepts/resultconvertergenerator.html delete mode 100644 doc/html/reference/concepts/resultconvertergenerator/concept_requirements.html delete mode 100644 doc/html/reference/concepts/typewrapper.html delete mode 100644 doc/html/reference/concepts/typewrapper/concept_requirements.html delete mode 100644 doc/html/reference/embedding/boost_python_import_hpp/examples.html delete mode 100644 doc/html/reference/embedding/boost_python_import_hpp/function_import.html delete mode 100644 doc/html/reference/embedding/import_hpp.html delete mode 100644 doc/html/reference/embedding/import_hpp/examples.html delete mode 100644 doc/html/reference/embedding/import_hpp/function_import.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_call_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_call_hpp/function_call.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp/function_call_method.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp/functions.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp/functions.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/macros.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/overloaddispatcher_concept.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_c.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_o.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_t.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/functions.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/metafunctions.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/metafunctions/class_template_unwrap_pointer.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp/function_raw_function.html delete mode 100644 doc/html/reference/function_invocation_and_creation/call_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/call_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/call_hpp/function_call.html delete mode 100644 doc/html/reference/function_invocation_and_creation/call_method_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/call_method_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/call_method_hpp/function_call_method.html delete mode 100644 doc/html/reference/function_invocation_and_creation/data_members_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/data_members_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/data_members_hpp/functions.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_expected_from_python_type.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_registered_pytype.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_to_python_target_type.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_wrap_pytype.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_expected_from_python_type.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_registered_pytype.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_to_python_target_type.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_wrap_pytype.html delete mode 100644 doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/make_function_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/make_function_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/make_function_hpp/functions.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_return_arg.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_return_arg_static_function.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_template_return_self.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/class_return_internal_reference_.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/class_template_return_internal_r.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy/class_template_return_value_poli.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_p0.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_po.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_st.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_return_arg.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_return_arg_static_function.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_template_return_self.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/class_return_internal_reference_.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/class_template_return_internal_r.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp/class_template_return_value_poli.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_p0.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_po.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_st.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp/class_template_to_python_value.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp/class_to_python_value_observers.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp/class_template_to_python_value.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp/class_to_python_value_observers.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe/class_copy_non_const_reference_m.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h/class_manage_new_object_metafunc.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_/class_reference_existing_object_.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp/class_return_by_value_metafuncti.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point/class_return_opaque_pointer_meta.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp/class_copy_non_const_reference_m.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp/class_manage_new_object_metafunc.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp/class_reference_existing_object_.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp/class_return_by_value_metafuncti.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp/class_return_opaque_pointer_meta.html delete mode 100644 doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/overloads_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/overloads_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/overloads_hpp/macros.html delete mode 100644 doc/html/reference/function_invocation_and_creation/overloads_hpp/overloaddispatcher_concept.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_c.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_o.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_t.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp/functions.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp/metafunctions.html delete mode 100644 doc/html/reference/function_invocation_and_creation/ptr_hpp/metafunctions/class_template_unwrap_pointer.html delete mode 100644 doc/html/reference/function_invocation_and_creation/raw_function_hpp.html delete mode 100644 doc/html/reference/function_invocation_and_creation/raw_function_hpp/example.html delete mode 100644 doc/html/reference/function_invocation_and_creation/raw_function_hpp/function_raw_function.html delete mode 100644 doc/html/reference/high_level_components/boost_python_def_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_def_hpp/functions.html delete mode 100644 doc/html/reference/high_level_components/boost_python_def_visitor_hpp/class_def_visitor.html delete mode 100644 doc/html/reference/high_level_components/boost_python_def_visitor_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options.html delete mode 100644 doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options_destruct.html delete mode 100644 doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options_modifier.html delete mode 100644 doc/html/reference/high_level_components/boost_python_docstring_options_h/class_dostring_options_construct.html delete mode 100644 doc/html/reference/high_level_components/boost_python_docstring_options_h/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_docstring_options_h/example/selective_suppressions.html delete mode 100644 doc/html/reference/high_level_components/boost_python_docstring_options_h/example/wrapping_from_multiple_c_scopes.html delete mode 100644 doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum.html delete mode 100644 doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum_constructors.html delete mode 100644 doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum_modifier_fun.html delete mode 100644 doc/html/reference/high_level_components/boost_python_enum_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_errors_hpp/class_error_already_set.html delete mode 100644 doc/html/reference/high_level_components/boost_python_errors_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_errors_hpp/functions.html delete mode 100644 doc/html/reference/high_level_components/boost_python_exception_translato/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_exception_translato/function_register_exception_tran.html delete mode 100644 doc/html/reference/high_level_components/boost_python_init_hpp/class_template_init.html delete mode 100644 doc/html/reference/high_level_components/boost_python_init_hpp/class_template_init/class_template_init_observer_fun.html delete mode 100644 doc/html/reference/high_level_components/boost_python_init_hpp/class_template_optional.html delete mode 100644 doc/html/reference/high_level_components/boost_python_init_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterator.html delete mode 100644 doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterator_construc.html delete mode 100644 doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators.html delete mode 100644 doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators_nested_.html delete mode 100644 doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators_static_.html delete mode 100644 doc/html/reference/high_level_components/boost_python_iterator_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_iterator_hpp/functions.html delete mode 100644 doc/html/reference/high_level_components/boost_python_module_hpp/examples.html delete mode 100644 doc/html/reference/high_level_components/boost_python_module_hpp/macros.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_comparison_functions.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_non_member_operations.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_unary_operations.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_value_operations.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/class_template_detail_operator.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/class_template_other.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_operators_hpp/object_self.html delete mode 100644 doc/html/reference/high_level_components/boost_python_scope_hpp/class_scope.html delete mode 100644 doc/html/reference/high_level_components/boost_python_scope_hpp/class_scope_constructors_and_des.html delete mode 100644 doc/html/reference/high_level_components/boost_python_scope_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat0.html delete mode 100644 doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat1.html delete mode 100644 doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat2.html delete mode 100644 doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterato.html delete mode 100644 doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_override.html delete mode 100644 doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_override_observer_function.html delete mode 100644 doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_template_wrapper.html delete mode 100644 doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_template_wrapper_observer_.html delete mode 100644 doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_wrapper_observer_functions.html delete mode 100644 doc/html/reference/high_level_components/boost_python_wrapper_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/def_hpp.html delete mode 100644 doc/html/reference/high_level_components/def_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/def_hpp/functions.html delete mode 100644 doc/html/reference/high_level_components/def_visitor_hpp.html delete mode 100644 doc/html/reference/high_level_components/def_visitor_hpp/class_def_visitor.html delete mode 100644 doc/html/reference/high_level_components/def_visitor_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options_destruct.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options_modifier.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/class_dostring_options_construct.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/class_docstring_options.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/class_dostring_options_construct.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/example/selective_suppressions.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/example/wrapping_from_multiple_c_scopes.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/template.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/template/class_template.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/template/class_template_constructors.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp/template/example.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp0.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp0/class_docstring_options.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp0/class_dostring_options_construct.html delete mode 100644 doc/html/reference/high_level_components/docstring_options_hpp0/example.html delete mode 100644 doc/html/reference/high_level_components/enum_hpp.html delete mode 100644 doc/html/reference/high_level_components/enum_hpp/class_template_enum.html delete mode 100644 doc/html/reference/high_level_components/enum_hpp/class_template_enum_constructors.html delete mode 100644 doc/html/reference/high_level_components/enum_hpp/class_template_enum_modifier_fun.html delete mode 100644 doc/html/reference/high_level_components/enum_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/errors_hpp.html delete mode 100644 doc/html/reference/high_level_components/errors_hpp/class_error_already_set.html delete mode 100644 doc/html/reference/high_level_components/errors_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/errors_hpp/functions.html delete mode 100644 doc/html/reference/high_level_components/exception_translator.html delete mode 100644 doc/html/reference/high_level_components/exception_translator/example.html delete mode 100644 doc/html/reference/high_level_components/exception_translator/function_register_exception_tran.html delete mode 100644 doc/html/reference/high_level_components/exception_translator_hpp.html delete mode 100644 doc/html/reference/high_level_components/exception_translator_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/exception_translator_hpp/function_register_exception_tran.html delete mode 100644 doc/html/reference/high_level_components/init_hpp.html delete mode 100644 doc/html/reference/high_level_components/init_hpp/class_template_init.html delete mode 100644 doc/html/reference/high_level_components/init_hpp/class_template_init/class_template_init_observer_fun.html delete mode 100644 doc/html/reference/high_level_components/init_hpp/class_template_optional.html delete mode 100644 doc/html/reference/high_level_components/init_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/iterator_hpp.html delete mode 100644 doc/html/reference/high_level_components/iterator_hpp/class_template_iterator.html delete mode 100644 doc/html/reference/high_level_components/iterator_hpp/class_template_iterator_construc.html delete mode 100644 doc/html/reference/high_level_components/iterator_hpp/class_template_iterators.html delete mode 100644 doc/html/reference/high_level_components/iterator_hpp/class_template_iterators_nested_.html delete mode 100644 doc/html/reference/high_level_components/iterator_hpp/class_template_iterators_static_.html delete mode 100644 doc/html/reference/high_level_components/iterator_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/iterator_hpp/functions.html delete mode 100644 doc/html/reference/high_level_components/module_hpp.html delete mode 100644 doc/html/reference/high_level_components/module_hpp/examples.html delete mode 100644 doc/html/reference/high_level_components/module_hpp/macros.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_comparison_functions.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_non_member_operations.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_unary_operations.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_value_operations.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/class_template_detail_operator.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/class_template_other.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/operators_hpp/object_self.html delete mode 100644 doc/html/reference/high_level_components/scope_hpp.html delete mode 100644 doc/html/reference/high_level_components/scope_hpp/class_scope.html delete mode 100644 doc/html/reference/high_level_components/scope_hpp/class_scope_constructors_and_des.html delete mode 100644 doc/html/reference/high_level_components/scope_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/stl_iterator_hpp.html delete mode 100644 doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat0.html delete mode 100644 doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat1.html delete mode 100644 doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat2.html delete mode 100644 doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterato.html delete mode 100644 doc/html/reference/high_level_components/stl_iterator_hpp/example.html delete mode 100644 doc/html/reference/high_level_components/template.html delete mode 100644 doc/html/reference/high_level_components/template/class_template.html delete mode 100644 doc/html/reference/high_level_components/template/class_template_constructors.html delete mode 100644 doc/html/reference/high_level_components/template/class_template_optional.html delete mode 100644 doc/html/reference/high_level_components/template/example.html delete mode 100644 doc/html/reference/high_level_components/template/function_register_exception_tran.html delete mode 100644 doc/html/reference/high_level_components/template0.html delete mode 100644 doc/html/reference/high_level_components/template0/class_template.html delete mode 100644 doc/html/reference/high_level_components/template0/class_template_constructors.html delete mode 100644 doc/html/reference/high_level_components/template0/example.html delete mode 100644 doc/html/reference/high_level_components/wrapper_hpp.html delete mode 100644 doc/html/reference/high_level_components/wrapper_hpp/class_override.html delete mode 100644 doc/html/reference/high_level_components/wrapper_hpp/class_override_observer_function.html delete mode 100644 doc/html/reference/high_level_components/wrapper_hpp/class_template_wrapper.html delete mode 100644 doc/html/reference/high_level_components/wrapper_hpp/class_wrapper_observer_functions.html delete mode 100644 doc/html/reference/high_level_components/wrapper_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_list_hpp/class_list.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_list_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_long_hpp/class_long.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_long_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array_observer_functions.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array_static_functions.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_numeric_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_attribute_policies.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_attribute_policies_static_.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_attribute_policies.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_attribute_policies_s.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_item_policies.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_item_policies_static.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_objattribute_polici0.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_objattribute_policie.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_slice_policies.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_slice_policies_stati.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_item_policies.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_item_policies_static_funct.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_objattribute_policies.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_objattribute_policies_stat.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_object.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_object_constructors_and_de.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_object_modifiers.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_nil.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_policies.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_policies_static_func.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_object_operators.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_object_operators_.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy_modifier_fu.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy_observer_fu.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_object_hpp/functions.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice_constructors.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice_observer_functions.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_slice_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_str_hpp/class_str.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_str_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_tuple_hpp/class_tuple.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_tuple_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/boost_python_tuple_hpp/function_make_tuple.html delete mode 100644 doc/html/reference/object_wrappers/list_hpp.html delete mode 100644 doc/html/reference/object_wrappers/list_hpp/class_list.html delete mode 100644 doc/html/reference/object_wrappers/list_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/long_hpp.html delete mode 100644 doc/html/reference/object_wrappers/long_hpp/class_long.html delete mode 100644 doc/html/reference/object_wrappers/long_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/numeric_hpp.html delete mode 100644 doc/html/reference/object_wrappers/numeric_hpp/class_array.html delete mode 100644 doc/html/reference/object_wrappers/numeric_hpp/class_array_observer_functions.html delete mode 100644 doc/html/reference/object_wrappers/numeric_hpp/class_array_static_functions.html delete mode 100644 doc/html/reference/object_wrappers/numeric_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_attribute_policies.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_attribute_policies_static_.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_const_attribute_policies.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_const_attribute_policies_s.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_const_item_policies.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_const_item_policies_static.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_const_objattribute_polici0.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_const_objattribute_policie.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_const_slice_policies.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_const_slice_policies_stati.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_item_policies.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_item_policies_static_funct.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_objattribute_policies.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_objattribute_policies_stat.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_object.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_object_constructors_and_de.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_object_modifiers.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_slice_nil.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_slice_policies.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_slice_policies_static_func.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_template_object_operators.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_template_object_operators_.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_template_proxy.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_template_proxy_modifier_fu.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/class_template_proxy_observer_fu.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/object_hpp/functions.html delete mode 100644 doc/html/reference/object_wrappers/slice_hpp.html delete mode 100644 doc/html/reference/object_wrappers/slice_hpp/class_slice.html delete mode 100644 doc/html/reference/object_wrappers/slice_hpp/class_slice_constructors.html delete mode 100644 doc/html/reference/object_wrappers/slice_hpp/class_slice_observer_functions.html delete mode 100644 doc/html/reference/object_wrappers/slice_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/str_hpp.html delete mode 100644 doc/html/reference/object_wrappers/str_hpp/class_str.html delete mode 100644 doc/html/reference/object_wrappers/str_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/template.html delete mode 100644 doc/html/reference/object_wrappers/template/class_template.html delete mode 100644 doc/html/reference/object_wrappers/template/class_template_constructors.html delete mode 100644 doc/html/reference/object_wrappers/template/example.html delete mode 100644 doc/html/reference/object_wrappers/template0.html delete mode 100644 doc/html/reference/object_wrappers/template0/class_template.html delete mode 100644 doc/html/reference/object_wrappers/template0/class_template_constructors.html delete mode 100644 doc/html/reference/object_wrappers/template0/example.html delete mode 100644 doc/html/reference/object_wrappers/tuple_hpp.html delete mode 100644 doc/html/reference/object_wrappers/tuple_hpp/class_tuple.html delete mode 100644 doc/html/reference/object_wrappers/tuple_hpp/example.html delete mode 100644 doc/html/reference/object_wrappers/tuple_hpp/function_make_tuple.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp/function_template_implicit_conve.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_extract_identity.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_extract_member.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_lvalue_from_pytyp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv/class_template_opaque_constructo.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv/macro_boost_python_opaque_specia.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt/function_register_ptr_to_python.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt/function_register_ptr_to_python.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/class_template_to_python_convert.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/class_template_to_python_convert/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/example0.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/register_ptr_to_python_hpp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/register_ptr_to_python_hpp/function_register_ptr_to_python.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/implicit_hpp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/implicit_hpp/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/implicit_hpp/function_template_implicit_conve.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_extract_identity.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_extract_member.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_lvalue_from_pytyp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/class_template_opaque_constructo.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/macro_boost_python_opaque_specia.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp/register_ptr_to_python_hpp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/example.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/register_ptr_to_python_hpp.html delete mode 100644 doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/register_ptr_to_python_hpp/function_register_ptr_to_python.html delete mode 100644 doc/html/reference/topics/indexing_support/class_map_indexing_suite.html delete mode 100644 doc/html/reference/topics/indexing_support/class_vector_indexing_suite.html delete mode 100644 doc/html/reference/topics/indexing_support/index_suite_sub_classes.html delete mode 100644 doc/html/reference/topics/indexing_support/index_suite_sub_classes/map_index_suite.html delete mode 100644 doc/html/reference/topics/indexing_support/indexing_suite_class.html delete mode 100644 doc/html/reference/topics/indexing_support/map_index_suite.html delete mode 100644 doc/html/reference/topics/indexing_support/the_indexing_interface.html delete mode 100644 doc/html/reference/topics/indexing_support/vector_index_suite.html delete mode 100644 doc/html/reference/topics/pickle_support/example.html delete mode 100644 doc/html/reference/topics/pickle_support/example/pickle2_cpp.html delete mode 100644 doc/html/reference/topics/pickle_support/example/pickle3_cpp.html delete mode 100644 doc/html/reference/topics/pickle_support/light_weight_alternative_pickle_.html delete mode 100644 doc/html/reference/topics/pickle_support/pitfall_and_safety_guard.html delete mode 100644 doc/html/reference/topics/pickle_support/practical_advice.html delete mode 100644 doc/html/reference/topics/pickle_support/the_pickle_interface.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle/class_template_handle_modifiers.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle/class_template_handle_observers.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/function_allow_null.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/function_borrowed.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder/class_intance_holder_modifiers.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder/class_intance_holder_observers.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/examples.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp/class_template_pointee.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp/examples.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp/constants.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp/typedefs.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info/class_template_type_info_compari.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info/class_template_type_info_observe.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/example.html delete mode 100644 doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/functions.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/class_template_handle_modifiers.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/class_template_handle_observers.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/function_allow_null.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/function_borrowed.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/function_allow_null.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/function_borrowed.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp/class_template_type_info.html delete mode 100644 doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp/ssize_t_hpp.html delete mode 100644 doc/html/reference/utility_and_infrastructure/instance_holder_hpp.html delete mode 100644 doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder.html delete mode 100644 doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder/class_intance_holder_modifiers.html delete mode 100644 doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder/class_intance_holder_observers.html delete mode 100644 doc/html/reference/utility_and_infrastructure/instance_holder_hpp/examples.html delete mode 100644 doc/html/reference/utility_and_infrastructure/pointee_hpp.html delete mode 100644 doc/html/reference/utility_and_infrastructure/pointee_hpp/class_template_pointee.html delete mode 100644 doc/html/reference/utility_and_infrastructure/pointee_hpp/examples.html delete mode 100644 doc/html/reference/utility_and_infrastructure/ssize_t_hpp.html delete mode 100644 doc/html/reference/utility_and_infrastructure/ssize_t_hpp/constants.html delete mode 100644 doc/html/reference/utility_and_infrastructure/ssize_t_hpp/typedefs.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/class_template_type_info_compari.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/class_template_type_info_observe.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/example.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/functions.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/example.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/functions.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/ssize_t_hpp.html delete mode 100644 doc/html/reference/utility_and_infrastructure/type_id_hpp/ssize_t_hpp/typedefs.html delete mode 100644 doc/html/support/support.html rename doc/html/tutorial/{tutorial_HTML.manifest => HTML.manifest} (100%) delete mode 100644 doc/html/tutorial/tutorial/auto_overloading.html delete mode 100644 doc/html/tutorial/tutorial/class_data_members.html delete mode 100644 doc/html/tutorial/tutorial/class_operators_special_functions.html delete mode 100644 doc/html/tutorial/tutorial/class_properties.html delete mode 100644 doc/html/tutorial/tutorial/class_virtual_functions.html delete mode 100644 doc/html/tutorial/tutorial/creating_python_object.html delete mode 100644 doc/html/tutorial/tutorial/default_arguments.html delete mode 100644 doc/html/tutorial/tutorial/derived_object_types.html delete mode 100644 doc/html/tutorial/tutorial/enums.html delete mode 100644 doc/html/tutorial/tutorial/extending_wrapped_objects_in_python.html delete mode 100644 doc/html/tutorial/tutorial/extracting_c___objects.html delete mode 100644 doc/html/tutorial/tutorial/inheritance.html delete mode 100644 doc/html/tutorial/tutorial/overloading.html delete mode 100644 doc/html/tutorial/tutorial/reducing_compiling_time.html delete mode 100644 doc/html/tutorial/tutorial/virtual_functions_with_default_implementations.html diff --git a/doc/html/python_HTML.manifest b/doc/html/HTML.manifest similarity index 100% rename from doc/html/python_HTML.manifest rename to doc/html/HTML.manifest diff --git a/doc/html/article.html b/doc/html/article.html index 2a70bac8..6a9126dc 100644 --- a/doc/html/article.html +++ b/doc/html/article.html @@ -3,7 +3,7 @@ - + Building Hybrid Systems with Boost.Python diff --git a/doc/html/boost.css b/doc/html/boost.css deleted file mode 100644 index 986c4050..00000000 --- a/doc/html/boost.css +++ /dev/null @@ -1,66 +0,0 @@ -/*============================================================================= - Copyright 2002 William E. Kempf - Distributed under the Boost Software License, Version 1.0. (See accompany- - ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -=============================================================================*/ - -H1 -{ - FONT-SIZE: 200%; - COLOR: #00008B; -} -H2 -{ - FONT-SIZE: 150%; -} -H3 -{ - FONT-SIZE: 125%; -} -H4 -{ - FONT-SIZE: 108%; -} -BODY -{ - FONT-SIZE: 100%; - BACKGROUND-COLOR: #ffffff; - COLOR: #000000; -} -PRE -{ - MARGIN-LEFT: 2em; - FONT-FAMILY: Courier, - monospace; -} -CODE -{ - FONT-FAMILY: Courier, - monospace; -} -CODE.as_pre -{ - white-space: pre; -} -.index -{ - TEXT-ALIGN: left; -} -.page-index -{ - TEXT-ALIGN: left; -} -.definition -{ - TEXT-ALIGN: left; -} -.footnote -{ - FONT-SIZE: 66%; - VERTICAL-ALIGN: super; - TEXT-DECORATION: none; -} -.function-semantics -{ - CLEAR: left; -} \ No newline at end of file diff --git a/doc/html/boost_python.html b/doc/html/boost_python.html deleted file mode 100644 index 019957e5..00000000 --- a/doc/html/boost_python.html +++ /dev/null @@ -1,823 +0,0 @@ - - - -Chapter 1. Boost.Python - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHome -
-
-
-

-Chapter 1. Boost.Python

-

-David Abrahams -

-
-
-
- -
- -

- Boost.Python requires Python 2.2 - [1] or newer. -

-
-
- -

- There are two basic models for combining C++ and Python: -

-
    -
  • - extending, - in which the end-user launches the Python interpreter executable and - imports Python “extension modules” written in C++. Think of taking - a library written in C++ and giving it a Python interface so Python - programmers can use it. From Python, these modules look just like regular - Python modules. -
  • -
  • - embedding, - in which the end-user launches a program written in C++ that in turn - invokes the Python interpreter as a library subroutine. Think of adding - scriptability to an existing application. -
  • -
-

- The key distinction between extending and embedding is the location of - the C++ main() - function: in the Python interpreter executable, or in some other program, - respectively. Note that even when embedding Python in another program, - extension - modules are often the best way to make C/C++ functionality accessible to - Python code, so the use of extension modules is really at the heart - of both models. -

-

- Except in rare cases, extension modules are built as dynamically-loaded - libraries with a single entry point, which means you can change them without - rebuilding either the other extension modules or the executable containing - main(). -

-
-
- -

- There is no need to “install Boost” in order to get started using Boost.Python. - These instructions use http://boost.org/build - projects, which will build those binaries as soon as they're needed. Your - first tests may take a little longer while you wait for Boost.Python to - build, but doing things this way will save you from worrying about build - intricacies like which library binaries to use for a specific compiler - configuration and figuring out the right compiler options to use yourself. -

-
- - - - - -
[Note]Note
-

- Of course it's possible to use other build systems to build Boost.Python - and its extensions, but they are not officially supported by Boost. Moreover - 99% of all “I can't build Boost.Python” problems - come from trying to use another build system without first - following these instructions. -

-

- If you want to use another system anyway, we suggest that you follow - these instructions, and then invoke -

-
bjam
-

- with the -

-

- -a - -ofilename -

-

- options to dump the build commands it executes to a file, so you can - see what your alternate build system needs to do. -

-
-
- -

- 1. Get Boost; see sections 1 and 2 of the Boost Getting - Started Guide. -

-

- 2. Get the bjam build - driver. See section 5 of the Boost Getting - Started Guide. -

-

- 3. cd into the example/quickstart/ directory of your Boost.Python installation, - which contains a small example project. -

-

- 4. Invoke bjam. Replace - the “stage“ argument - from the example invocation from section 5 of the Boost Getting - Started Guide with “test,“ - to build all the test targets. Also add the argument “--verbose-test” - to see the output generated by the tests when they are run. On Windows, - your bjam invocation - might look something like: -

-
C:\\boost_1_34_0\\...\\quickstart> bjam toolset=msvc --verbose-test test
-
-

- and on Unix variants, perhaps, -

-
~/boost_1_34_0/.../quickstart$ bjam toolset=gcc --verbose-test test
-
-
- - - - - -
[Note]Note

- For the sake of concision, the rest of this guide will use unix-style - forward slashes in pathnames instead of the backslashes with which - Windows users may be more familiar. The forward slashes should work - everywhere except in Command - Prompt windows, where you should use backslashes. -

-

- If you followed this procedure successfully, you will have built an extension - module called extending - and tested it by running a Python script called test_extending.py. - You will also have built and run a simple application called embedding that embeds python. -

-
-
- -

- If you're seeing lots of compiler and/or linker error messages, it's - probably because Boost.Build is having trouble finding your Python installation. - You might want to pass the --debug-configuration option to bjam the first few times you invoke - it, to make sure that Boost.Build is correctly locating all the parts - of your Python installation. If it isn't, consider Configuring - Boost.Build as detailed below. -

-

- If you're still having trouble, Someone on one of the following mailing - lists may be able to help: -

-
-
-
- -

- Rejoice! If you're new to Boost.Python, at this point it might be a good - idea to ignore build issues for a while and concentrate on learning the - library by going through the Tutorial - and perhaps some of the Reference Manual, - trying out what you've learned about the API by modifying the quickstart - project. -

-
-
- -

- If you're content to keep your extension module forever in one source - file called extending.cpp, - inside your Boost.Python distribution, and import it forever as extending, then you can stop here. - However, it's likely that you will want to make a few changes. There - are a few things you can do without having to learn Boost.Build - in depth. -

-

- The project you just built is specified in two files in the current directory: - boost-build.jam, which tells bjam - where it can find the interpreted code of the Boost build system, and - Jamroot, which describes - the targets you just built. These files are heavily commented, so they - should be easy to modify. Take care, however, to preserve whitespace. - Punctuation such as ; will - not be recognized as intended by bjam - if it is not surrounded by whitespace. -

-
- -

- You'll probably want to copy this project elsewhere so you can change - it without modifying your Boost distribution. To do that, simply -

-

- a. copy the entire example/quickstart/ directory into a new directory. -

-

- b. In the new copies of boost-build.jam - and Jamroot, locate - the relative path near the top of the file that is clearly marked by - a comment, and edit that path so that it refers to the same directory - your Boost distribution as it referred to when the file was in its - original location in the example/quickstart/ directory. -

-

- For example, if you moved the project from /home/dave/boost_1_34_0/libs/python/example/quickstart to /home/dave/my-project, you could change the first - path in boost-build.jam from -

-
../../../../tools/build/v2
-
-

- to -

-
/home/dave/boost_1_34_0/tools/build/v2
-
-

- and change the first path in Jamroot - from -

-
../../../..
-
-

- to -

-
/home/dave/boost_1_34_0
-
-
-
- -

- The names of additional source files involved in building your extension - module or embedding application can be listed in Jamroot - right alongside extending.cpp - or embedding.cpp respectively. Just be sure to - leave whitespace around each filename: -

-
 file1.cpp file2.cpp file3.cpp 
-
-

- Naturally, if you want to change the name of a source file you can - tell Boost.Build about it by editing the name in Jamroot. -

-
-
- -

- The name of the extension module is determined by two things: -

-

- 1. the name in Jamroot - immediately following python-extension, - and 2. the name passed to -

-
BOOST_PYTHON_MODULE
-

- in extending.cpp. -

-

- To change the name of the extension module from extending - to hello, you'd edit - Jamroot, changing -

-
python-extension extending : extending.cpp ;
-
-

- to -

-
python-extension hello : extending.cpp ;
-
-

- and you'd edit extending.cpp, changing -

-
BOOST_PYTHON_MODULE(extending)
-
-

- to -

-
BOOST_PYTHON_MODULE(hello)
-
-
-
-
- -

- Since Boost.Python is a separately-compiled (as opposed to header-only) library, its user relies on the - services of a Boost.Python library binary. -

-

- If you need a regular installation of the Boost.Python library binaries - on your system, the Boost Getting - Started Guide will walk you through the steps of creating one. - If building binaries from source, you might want to supply the --with-python - argument to bjam (or - the --with-libraries=python - argument to configure), - so only the Boost.Python binary will be built, rather than all the Boost - binaries. -

-
-
- -

- As described in the Reference Manual, - a file called user-config.jam in your home directory is used - to specify the tools and libraries available to the build system. You - may need to create or edit user-config.jam - to tell Boost.Build how to invoke Python, #include - its headers, and link with its libraries. -

-
- - - - - -
[Note]Note

- If you are using a unix-variant OS and you ran Boost's configure script, it may have generated - a user-config.jam for you. [2] If your configure/make sequence was successful and - Boost.Python binaries were built, your user-config.jam - file is probably already correct. -

-

- If you have one fairly “standard” python installation for your platform, - you might not need to do anything special to describe it. If you haven't - configured python in user-config.jam - (and you don't specify --without-python on the Boost.Build command line), - Boost.Build will automatically execute the equivalent of -

-
import toolset : using ;
-using python ;
-
-

- which automatically looks for Python in the most likely places. However, - that only happens when using the Boost.Python project file (e.g. when - referred to by another project as in the quickstart method). If instead - you are linking against separately-compiled Boost.Python binaries, you - should set up a user-config.jam - file with at least the minimal incantation above. -

-
- -

- If you have several versions of Python installed, or Python is installed - in an unusual way, you may want to supply any or all of the following - optional parameters to 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 (i.e. not - 2.5.1). If you have multiple Python versions - installed, the version will usually be the only configuration argument - required. -

    -
  • -
  • -

    - cmd-or-prefix -

    -

    - preferably, a command that invokes a Python interpreter. Alternatively, - the installation prefix for Python libraries and header files. - Only use the alternative formulation if there is no appropriate - Python executable available. -

    -
  • -
  • -

    - includes -

    -

    - the #include - paths for Python headers. Normally the correct path(s) will be - automatically deduced from version - and/or cmd-or-prefix. -

    -
  • -
  • -

    - libraries -

    -

    - the path to Python library binaries. On MacOS/Darwin, you can also - pass the path of the Python framework. Normally the correct path(s) - will be automatically deduced from version - and/or cmd-or-prefix. -

    -
  • -
  • -

    - condition -

    -

    - if specified, should be a set of Boost.Build properties that are - matched against the build configuration when Boost.Build selects - a Python configuration to use. See examples below for details. -

    -
  • -
  • -

    - extension-suffix -

    -

    - A string to append to the name of extension modules before the - true filename extension. You almost certainly don't need to use - this. Usually this suffix is only used when targeting a Windows - debug build of Python, and will be set automatically for you based - on the value of the |python-debugging|_ feature. However, at least - one Linux distribution (Ubuntu Feisty Fawn) has a specially configured - <python-debugging> - package that claims to use such a suffix. -

    -
  • -
-
-
- -

- Note that in the examples below, case and especially - whitespace are significant. -

-
    -
  • -

    - If you have both python 2.5 and python 2.4 installed, user-config.jam might contain -

    -
    using python : 2.5 ;  # Make both versions of Python available
    -using python : 2.4 ;  # To build with python 2.4, add python=2.4
    -                      # to your command line.
    -
    -

    - The first version configured (2.5) becomes the default. To build - against python 2.4, add python=2.4 - to the bjam command - line. -

    -
  • -
  • -

    - If you have python installed in an unusual location, you might - supply the path to the interpreter in the cmd-or-prefix - parameter: -

    -
    using python : : /usr/local/python-2.6-beta/bin/python ;
    -
    -
  • -
  • -

    - If you have a separate build of Python for use with a particular - toolset, you might supply that toolset in the condition - parameter: -

    -
    using python ;  # use for most toolsets
    -
    -# Use with Intel C++ toolset
    -using python
    -     : # version
    -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
    -     : # includes
    -     : # libraries
    -     : <toolset>intel # condition
    -     ;
    -
    -
  • -
  • -

    - If you have downloaded the Python sources and built both the normal - and the “python debugging_” builds from source - on Windows, you might see: -

    -
    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
    -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
    -  : # includes
    -  : # libs
    -  : <python-debugging>on ;
    -
    -
  • -
  • -

    - You can set up your user-config.jam so a bjam built under Windows - can build/test both Windows and Cygwin_ python extensions. Just - pass <target-os>cygwin - in the condition - parameter for the cygwin python installation: -

    -
    # windows installation
    -using python ;
    -
    -# cygwin installation
    -using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
    -
    -

    - when you put target-os=cygwin in your build request, it should - build with the cygwin version of python: _ -

    -
    bjam target-os=cygwin toolset=gcc
    -
    -

    - This is supposed to work the other way, too (targeting windows - python with a Cygwin bjam) - but it seems as though the support in Boost.Build's toolsets for - building that way is broken at the time of this writing. -

    -
  • -
  • -

    - Note that because of the - way Boost.Build currently selects target alternatives, - you might have be very explicit in your build requests. For example, - given: -

    -
    using python : 2.5 ; # a regular windows build
    -using python : 2.4 : : : : <target-os>cygwin ;
    -
    -

    - building with -

    -
    bjam target-os=cygwin
    -
    -

    - will yield an error. Instead, you'll need to write -

    -
    bjam target-os=cygwin/python=2.4
    -
    -
  • -
-
-
-
- -

- If—instead of letting Boost.Build construct and link with the right - libraries automatically—you choose to use a pre-built Boost.Python - library, you'll need to think about which one to link with. The Boost.Python - binary comes in both static and dynamic flavors. Take care to choose - the right flavor for your application. [3] -

-
- -

- The dynamic library is the safest and most-versatile choice: -

-
    -
  • - A single copy of the library code is used by all extension modules - built with a given toolset. [4] -
  • -
  • - The library contains a type conversion registry. Because one registry - is shared among all extension modules, instances of a class exposed - to Python in one dynamically-loaded extension module can be passed - to functions exposed in another such module. -
  • -
-
-
- -

- It might be appropriate to use the static Boost.Python library in any - of the following cases: -

-
    -
  • - You are extending python and the types exposed in your dynamically-loaded - extension module don't need to be used by any other Boost.Python - extension modules, and you don't care if the core library code - is duplicated among them. -
  • -
  • - You are embedding python in your application and either: -
      -
    • - You are targeting a Unix variant OS other than MacOS or AIX, - where the dynamically-loaded extension modules can “see” - the Boost.Python library symbols that are part of the executable. -
    • -
    • - Or, you have statically linked some Boost.Python extension - modules into your application and you don't care if any dynamically-loaded - Boost.Python extension modules are able to use the types - exposed by your statically-linked extension modules (and - vice-versa). -
    • -
    -
  • -
-
-
-
- -

- 1. If you should ever have occasion to #include - "python.h" directly in - a translation unit of a program using Boost.Python, use #include "boost/python/detail/wrap_python.hpp" - instead. It handles several issues necessary for use with Boost.Python, - one of which is mentioned in the next section. -

-

- 2. Be sure not to #include - any system headers before wrap_python.hpp. - This restriction is actually imposed by Python, or more properly, by - Python's interaction with your operating system. See http://docs.python.org/ext/simpleExample.html - for details. -

-
-
- -

- Python can be built in a special “python debugging” configuration - that adds extra checks and instrumentation that can be very useful for - developers of extension modules. The data structures used by the debugging - configuration contain additional members, so a - Python executable built with python debugging enabled cannot be used - with an extension module or library compiled without it, and vice-versa. -

-

- Since pre-built “python debugging” versions of the Python executable - and libraries are not supplied with most distributions of Python, _ and we didn't want to force our users to build - them, Boost.Build does not automatically enable python debugging in its - debug build variant (which - is the default). Instead there is a special build property called python-debugging that, when used as a build - property, will define the right preprocessor symbols and select the right - libraries to link with. -

-

- On unix-variant platforms, the debugging versions of Python's data structures - will only be used if the symbol Py_DEBUG - is defined. On many windows compilers, when extension modules are built - with the preprocessor symbol _DEBUG, - Python defaults to force linking with a special debugging version of - the Python DLL. Since that symbol is very commonly used even when Python - is not present, Boost.Python temporarily undefines _DEBUG when Python.h - is #included from boost/python/detail/wrap_python.hpp - - unless BOOST_DEBUG_PYTHON - is defined. The upshot is that if you want “python debugging”and - you aren't using Boost.Build, you should make sure BOOST_DEBUG_PYTHON - is defined, or python debugging will be suppressed. -

-
-
- -

- To run the full test suite for Boost.Python, invoke bjam - in the test subdirectory - of your Boost.Python distribution. -

-
-
- -

- If you are using a version of Python prior to 2.4.1 with a MinGW prior - to 3.0.0 (with binutils-2.13.90-20030111-1), you will need to create - a MinGW-compatible version of the Python library; the one shipped with - Python will only work with a Microsoft-compatible linker. Follow the - instructions in the “Non-Microsoft” section of the “Building Extensions: - Tips And Tricks” chapter in Installing - Python Modules to create libpythonXX.a, - where XX corresponds - to the major and minor version numbers of your Python installation. -

-
-
-
-
-

-

[1] - Note that although we tested earlier versions of Boost.Python with Python - 2.2, and we don't think we've done anything - to break compatibility, this release of Boost.Python may not have been - tested with versions of Python earlier than 2.4, so we're not 100% sure - that python 2.2 and 2.3 are supported. -

-

[2] - configure overwrites - the existing user-config.jam - in your home directory (if any) after making a backup of the old - version. -

-

[3] - Information about how to identify the static and dynamic builds of - Boost.Python on Windows - / Unix - variants -

-

[4] - Because of the way most *nix platforms share symbols among dynamically-loaded - objects, I'm not certain that extension modules built with different - compiler toolsets will always use different copies of the Boost.Python - library when loaded into the same Python instance. Not using - different libraries could be a good thing if the compilers have - compatible ABIs, because extension modules built with the two - libraries would be interoperable. Otherwise, it could spell disaster, - since an extension module and the Boost.Python library would - have different ideas of such things as class layout. I would - appreciate someone doing the experiment to find out what happens. -

-
-
- - - -
-
-
-PrevUpHome -
- - diff --git a/doc/html/boostbook.css b/doc/html/boostbook.css index d42b3c02..28f89359 100644 --- a/doc/html/boostbook.css +++ b/doc/html/boostbook.css @@ -289,6 +289,22 @@ Tables border: none !important; } +/*============================================================================= +Suppress margins in tables +=============================================================================*/ + + table th > *:first-child, + table td > *:first-child + { + margin-top: 0; + } + + table th > *:last-child, + table td > *:last-child + { + margin-bottom: 0; + } + /*============================================================================= Blurbs =============================================================================*/ diff --git a/doc/html/building.html b/doc/html/building.html index 5f4a4a6b..35b7e90f 100644 --- a/doc/html/building.html +++ b/doc/html/building.html @@ -3,14 +3,14 @@ Chapter 1. Building and Testing - + -
+

PrevUpHomeNext diff --git a/doc/html/building/background.html b/doc/html/building/background.html index a7aca7f0..275a5a1a 100644 --- a/doc/html/building/background.html +++ b/doc/html/building/background.html @@ -3,14 +3,14 @@ Background - + -
+

PrevUpHomeNext diff --git a/doc/html/building/choosing_a_boost_python_library_.html b/doc/html/building/choosing_a_boost_python_library_.html index 0e0c4d11..238a6c8b 100644 --- a/doc/html/building/choosing_a_boost_python_library_.html +++ b/doc/html/building/choosing_a_boost_python_library_.html @@ -3,14 +3,14 @@ Choosing a Boost.Python Library Binary - + -
+

PrevUpHomeNext diff --git a/doc/html/building/choosing_a_boost_python_library_/the_static_binary.html b/doc/html/building/choosing_a_boost_python_library_/the_static_binary.html deleted file mode 100644 index 2b08ad53..00000000 --- a/doc/html/building/choosing_a_boost_python_library_/the_static_binary.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -The Static Binary - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- It might be appropriate to use the static Boost.Python library in any of - the following cases: -

-
    -
  • - You are extending - python and the types exposed in your dynamically-loaded extension module - don't need to be used by any other Boost.Python extension modules, - and you don't care if the core library code is duplicated among them. -
  • -
  • - You are embedding - python in your application and either: -
      -
    • - You are targeting a Unix variant OS other than MacOS or AIX, - where the dynamically-loaded extension modules can “see” - the Boost.Python library symbols that are part of the executable. -
    • -
    • - Or, you have statically linked some Boost.Python extension modules - into your application and you don't care if any dynamically-loaded - Boost.Python extension modules are able to use the types exposed - by your statically-linked extension modules (and vice-versa). -
    • -
    -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/configuring_boost_build.html b/doc/html/building/configuring_boost_build.html index 5fe5b5e8..cb4d3522 100644 --- a/doc/html/building/configuring_boost_build.html +++ b/doc/html/building/configuring_boost_build.html @@ -3,14 +3,14 @@ Configuring Boost.Build - + -
+

PrevUpHomeNext @@ -136,35 +136,29 @@

  • -

    If you have both python 2.5 and python 2.4 installed, user-config.jam might contain -

    using python : 2.5 ;  # Make both versions of Python available
     using python : 2.4 ;  # To build with python 2.4, add python=2.4
                           # to your command line.
     
    -

    - The first version configured (2.5) becomes the default. To build against - python 2.4, add python=2.4 - to the bjam command - line. -

    -
  • +

    + The first version configured (2.5) becomes the default. To build + against python 2.4, add python=2.4 + to the bjam command + line. +

    +
  • -

    If you have python installed in an unusual location, you might supply the path to the interpreter in the cmd-or-prefix parameter: -

    using python : : /usr/local/python-2.6-beta/bin/python ;
     
    -
  • +
  • -

    If you have a separate build of Python for use with a particular toolset, you might supply that toolset in the condition parameter: -

    using python ;  # use for most toolsets
     
     # Use with Intel C++ toolset
    @@ -176,66 +170,60 @@
          : <toolset>intel # condition
          ;
     
    -
  • +
  • -

    If you have downloaded the Python sources and built both the normal and the "python debugging" builds from source on Windows, you might see: -

    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
     using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
       : # includes
       : # libs
       : <python-debugging>on ;
     
    -
  • +
  • -

    You can set up your user-config.jam so a bjam built under Windows can build/test both Windows and Cygwin_ python extensions. Just pass <target-os>cygwin in the condition parameter for the cygwin python installation: -

    # windows installation
     using python ;
     
     # cygwin installation
     using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
     
    -

    - when you put target-os=cygwin in your build request, it should build - with the cygwin version of python: _ -

    +

    + when you put target-os=cygwin in your build request, it should build + with the cygwin version of python: _ +

    bjam target-os=cygwin toolset=gcc
     
    -

    - This is supposed to work the other way, too (targeting windows python - with a Cygwin bjam) but it seems - as though the support in Boost.Build's toolsets for building that way - is broken at the time of this writing. -

    -
  • +

    + This is supposed to work the other way, too (targeting windows python + with a Cygwin bjam) but it + seems as though the support in Boost.Build's toolsets for building + that way is broken at the time of this writing. +

    +
  • -

    Note that because of the way Boost.Build currently selects target alternatives, you might have be very explicit in your build requests. For example, given: -

    using python : 2.5 ; # a regular windows build
     using python : 2.4 : : : : <target-os>cygwin ;
     
    -

    - building with -

    +

    + building with +

    bjam target-os=cygwin
     
    -

    - will yield an error. Instead, you'll need to write -

    +

    + will yield an error. Instead, you'll need to write +

    bjam target-os=cygwin/python=2.4
     
    -
  • +
diff --git a/doc/html/building/configuring_boost_build/examples.html b/doc/html/building/configuring_boost_build/examples.html deleted file mode 100644 index ccfa8e8a..00000000 --- a/doc/html/building/configuring_boost_build/examples.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Note that in the examples below, case and especially - whitespace are significant. -

-
    -
  • -

    - If you have both python 2.5 and python 2.4 installed, user-config.jam might contain -

    -
    using python : 2.5 ;  # Make both versions of Python available
    -using python : 2.4 ;  # To build with python 2.4, add python=2.4
    -                      # to your command line.
    -
    -

    - The first version configured (2.5) becomes the default. To build against - python 2.4, add python=2.4 - to the bjam command - line. -

    -
  • -
  • -

    - If you have python installed in an unusual location, you might supply - the path to the interpreter in the cmd-or-prefix - parameter: -

    -
    using python : : /usr/local/python-2.6-beta/bin/python ;
    -
    -
  • -
  • -

    - If you have a separate build of Python for use with a particular toolset, - you might supply that toolset in the condition - parameter: -

    -
    using python ;  # use for most toolsets
    -
    -# Use with Intel C++ toolset
    -using python
    -     : # version
    -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
    -     : # includes
    -     : # libraries
    -     : <toolset>intel # condition
    -     ;
    -
    -
  • -
  • -

    - If you have downloaded the Python sources and built both the normal - and the "python - debugging" builds from source on Windows, you might see: -

    -
    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
    -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
    -  : # includes
    -  : # libs
    -  : <python-debugging>on ;
    -
    -
  • -
  • -

    - You can set up your user-config.jam so a bjam built under Windows can - build/test both Windows and Cygwin_ python extensions. Just pass <target-os>cygwin - in the condition parameter - for the cygwin python installation: -

    -
    # windows installation
    -using python ;
    -
    -# cygwin installation
    -using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
    -
    -

    - when you put target-os=cygwin in your build request, it should build - with the cygwin version of python: _ -

    -
    bjam target-os=cygwin toolset=gcc
    -
    -

    - This is supposed to work the other way, too (targeting windows python - with a Cygwin bjam) but it seems - as though the support in Boost.Build's toolsets for building that way - is broken at the time of this writing. -

    -
  • -
  • -

    - Note that because of the - way Boost.Build currently selects target alternatives, you - might have be very explicit in your build requests. For example, given: -

    -
    using python : 2.5 ; # a regular windows build
    -using python : 2.4 : : : : <target-os>cygwin ;
    -
    -

    - building with -

    -
    bjam target-os=cygwin
    -
    -

    - will yield an error. Instead, you'll need to write -

    -
    bjam target-os=cygwin/python=2.4
    -
    -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/examples.html b/doc/html/building/examples.html deleted file mode 100644 index a9129f93..00000000 --- a/doc/html/building/examples.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Note that in the examples below, case and especially - whitespace are significant. -

-
    -
  • -

    - If you have both python 2.5 and python 2.4 installed, user-config.jam - might contain -

    -
    using python : 2.5 ;  # Make both versions of Python available
    -using python : 2.4 ;  # To build with python 2.4, add python=2.4
    -                      # to your command line.
    -
    -

    - The first version configured (2.5) becomes the default. To build against - python 2.4, add python=2.4 to - the bjam command line. -

    -
  • -
  • -

    - If you have python installed in an unusual location, you might supply - the path to the interpreter in the cmd-or-prefix parameter: -

    -
    using python : : /usr/local/python-2.6-beta/bin/python ;
    -
    -
  • -
  • -

    - If you have a separate build of Python for use with a particular toolset, - you might supply that toolset in the condition - parameter: -

    -
    using python ;  # use for most toolsets
    -
    -# Use with Intel C++ toolset
    -using python
    -     : # version
    -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
    -     : # includes
    -     : # libraries
    -     : <toolset>intel # condition
    -     ;
    -
    -
  • -
  • -

    - If you have downloaded the Python sources and built both the normal and - the “python debugging_” - builds from source on Windows, you might see: -

    -
    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
    -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
    -  : # includes
    -  : # libs
    -  : <python-debugging>on ;
    -
    -
  • -
  • -

    - You can set up your user-config.jam so a bjam built under Windows can - build/test both Windows and Cygwin_ python extensions. Just pass <target-os>cygwin - in the condition parameter - for the cygwin python installation: -

    -
    # windows installation
    -using python ;
    -
    -# cygwin installation
    -using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
    -
    -

    - when you put target-os=cygwin in your build request, it should build - with the cygwin version of python: _ -

    -
    bjam target-os=cygwin toolset=gcc
    -
    -

    - This is supposed to work the other way, too (targeting windows python - with a Cygwin bjam) but it seems - as though the support in Boost.Build's toolsets for building that way - is broken at the time of this writing. -

    -
  • -
  • -

    - Note that because of the - way Boost.Build currently selects target alternatives, you might - have be very explicit in your build requests. For example, given: -

    -
    using python : 2.5 ; # a regular windows build
    -using python : 2.4 : : : : <target-os>cygwin ;
    -
    -

    - building with -

    -
    bjam target-os=cygwin
    -
    -

    - will yield an error. Instead, you'll need to write -

    -
    bjam target-os=cygwin/python=2.4
    -
    -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/include_issues.html b/doc/html/building/include_issues.html index edaf1ae4..66746ac3 100644 --- a/doc/html/building/include_issues.html +++ b/doc/html/building/include_issues.html @@ -3,14 +3,14 @@ #include Issues - + -
+

PrevUpHomeNext diff --git a/doc/html/building/installing_boost_python_on_your_.html b/doc/html/building/installing_boost_python_on_your_.html index 2d96c306..59a90a61 100644 --- a/doc/html/building/installing_boost_python_on_your_.html +++ b/doc/html/building/installing_boost_python_on_your_.html @@ -3,14 +3,14 @@ Installing Boost.Python on your System - + -
+

PrevUpHomeNext diff --git a/doc/html/building/no_install_quickstart.html b/doc/html/building/no_install_quickstart.html index 714d3850..b57db740 100644 --- a/doc/html/building/no_install_quickstart.html +++ b/doc/html/building/no_install_quickstart.html @@ -3,14 +3,14 @@ No-Install Quickstart - + -
+

PrevUpHomeNext diff --git a/doc/html/building/no_install_quickstart/choosing_a_boost_python_library_.html b/doc/html/building/no_install_quickstart/choosing_a_boost_python_library_.html deleted file mode 100644 index 9b843891..00000000 --- a/doc/html/building/no_install_quickstart/choosing_a_boost_python_library_.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -Choosing a Boost.Python Library Binary - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- If—instead of letting Boost.Build construct and link with the right libraries - automatically—you choose to use a pre-built Boost.Python library, you'll - need to think about which one to link with. The Boost.Python binary comes - in both static and dynamic flavors. Take care to choose the right flavor - for your application. [3] -

-
- -

- The dynamic library is the safest and most-versatile choice: -

-
    -
  • - A single copy of the library code is used by all extension modules - built with a given toolset. [4] -
  • -
  • - The library contains a type conversion registry. Because one registry - is shared among all extension modules, instances of a class exposed - to Python in one dynamically-loaded extension module can be passed - to functions exposed in another such module. -
  • -
-
-
-

-

[3] - Information about how to identify the static and dynamic builds of Boost.Python - on Windows - / Unix - variants -

-

[4] - Because of the way most *nix platforms share symbols among dynamically-loaded - objects, I'm not certain that extension modules built with different - compiler toolsets will always use different copies of the Boost.Python - library when loaded into the same Python instance. Not using different - libraries could be a good thing if the compilers have compatible - ABIs, because extension modules built with the two libraries would - be interoperable. Otherwise, it could spell disaster, since an - extension module and the Boost.Python library would have different - ideas of such things as class layout. I would appreciate someone - doing the experiment to find out what happens. -

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/choosing_a_boost_python_library_/the_static_binary.html b/doc/html/building/no_install_quickstart/choosing_a_boost_python_library_/the_static_binary.html deleted file mode 100644 index fb0906cc..00000000 --- a/doc/html/building/no_install_quickstart/choosing_a_boost_python_library_/the_static_binary.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -The Static Binary - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- It might be appropriate to use the static Boost.Python library in any - of the following cases: -

-
    -
  • - You are extending python and the types exposed in your dynamically-loaded - extension module don't need to be used by any other Boost.Python - extension modules, and you don't care if the core library code is - duplicated among them. -
  • -
  • - You are embedding python in your application and either: -
      -
    • - You are targeting a Unix variant OS other than MacOS or AIX, - where the dynamically-loaded extension modules can “see” - the Boost.Python library symbols that are part of the executable. -
    • -
    • - Or, you have statically linked some Boost.Python extension - modules into your application and you don't care if any dynamically-loaded - Boost.Python extension modules are able to use the types exposed - by your statically-linked extension modules (and vice-versa). -
    • -
    -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/configuring_boost_build.html b/doc/html/building/no_install_quickstart/configuring_boost_build.html deleted file mode 100644 index 39aa3735..00000000 --- a/doc/html/building/no_install_quickstart/configuring_boost_build.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -Configuring Boost.Build - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- As described in the Reference Manual, - a file called user-config.jam in your home directory is used to - specify the tools and libraries available to the build system. You may - need to create or edit user-config.jam - to tell Boost.Build how to invoke Python, #include - its headers, and link with its libraries. -

-
- - - - - -
[Note]Note

- If you are using a unix-variant OS and you ran Boost's configure script, it may have generated - a user-config.jam for you. [2] If your configure/make sequence was successful and Boost.Python - binaries were built, your user-config.jam - file is probably already correct. -

-

- If you have one fairly “standard” python installation for your platform, - you might not need to do anything special to describe it. If you haven't - configured python in user-config.jam - (and you don't specify --without-python on the Boost.Build command line), - Boost.Build will automatically execute the equivalent of -

-
import toolset : using ;
-using python ;
-
-

- which automatically looks for Python in the most likely places. However, - that only happens when using the Boost.Python project file (e.g. when referred - to by another project as in the quickstart method). If instead you are - linking against separately-compiled Boost.Python binaries, you should set - up a user-config.jam file with at least the minimal incantation - above. -

-
-

-

[2] - configure overwrites - the existing user-config.jam in your home directory (if any) - after making a backup of the old version. -

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/configuring_boost_build/examples.html b/doc/html/building/no_install_quickstart/configuring_boost_build/examples.html deleted file mode 100644 index 08f278b7..00000000 --- a/doc/html/building/no_install_quickstart/configuring_boost_build/examples.html +++ /dev/null @@ -1,153 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Note that in the examples below, case and especially - whitespace are significant. -

-
    -
  • -

    - If you have both python 2.5 and python 2.4 installed, user-config.jam might contain -

    -
    using python : 2.5 ;  # Make both versions of Python available
    -using python : 2.4 ;  # To build with python 2.4, add python=2.4
    -                      # to your command line.
    -
    -

    - The first version configured (2.5) becomes the default. To build - against python 2.4, add python=2.4 - to the bjam command - line. -

    -
  • -
  • -

    - If you have python installed in an unusual location, you might supply - the path to the interpreter in the cmd-or-prefix - parameter: -

    -
    using python : : /usr/local/python-2.6-beta/bin/python ;
    -
    -
  • -
  • -

    - If you have a separate build of Python for use with a particular - toolset, you might supply that toolset in the condition - parameter: -

    -
    using python ;  # use for most toolsets
    -
    -# Use with Intel C++ toolset
    -using python
    -     : # version
    -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
    -     : # includes
    -     : # libraries
    -     : <toolset>intel # condition
    -     ;
    -
    -
  • -
  • -

    - If you have downloaded the Python sources and built both the normal - and the “python debugging_” builds from source - on Windows, you might see: -

    -
    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
    -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
    -  : # includes
    -  : # libs
    -  : <python-debugging>on ;
    -
    -
  • -
  • -

    - You can set up your user-config.jam so a bjam built under Windows - can build/test both Windows and Cygwin_ python extensions. Just pass - <target-os>cygwin - in the condition - parameter for the cygwin python installation: -

    -
    # windows installation
    -using python ;
    -
    -# cygwin installation
    -using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
    -
    -

    - when you put target-os=cygwin in your build request, it should build - with the cygwin version of python: _ -

    -
    bjam target-os=cygwin toolset=gcc
    -
    -

    - This is supposed to work the other way, too (targeting windows python - with a Cygwin bjam) but it - seems as though the support in Boost.Build's toolsets for building - that way is broken at the time of this writing. -

    -
  • -
  • -

    - Note that because of the - way Boost.Build currently selects target alternatives, you - might have be very explicit in your build requests. For example, - given: -

    -
    using python : 2.5 ; # a regular windows build
    -using python : 2.4 : : : : <target-os>cygwin ;
    -
    -

    - building with -

    -
    bjam target-os=cygwin
    -
    -

    - will yield an error. Instead, you'll need to write -

    -
    bjam target-os=cygwin/python=2.4
    -
    -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/examples.html b/doc/html/building/no_install_quickstart/examples.html deleted file mode 100644 index a5d2fe1e..00000000 --- a/doc/html/building/no_install_quickstart/examples.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Note that in the examples below, case and especially - whitespace are significant. -

-
    -
  • -

    - If you have both python 2.5 and python 2.4 installed, user-config.jam might contain -

    -
    using python : 2.5 ;  # Make both versions of Python available
    -using python : 2.4 ;  # To build with python 2.4, add python=2.4
    -                      # to your command line.
    -
    -

    - The first version configured (2.5) becomes the default. To build against - python 2.4, add python=2.4 - to the bjam command - line. -

    -
  • -
  • -

    - If you have python installed in an unusual location, you might supply - the path to the interpreter in the cmd-or-prefix - parameter: -

    -
    using python : : /usr/local/python-2.6-beta/bin/python ;
    -
    -
  • -
  • -

    - If you have a separate build of Python for use with a particular toolset, - you might supply that toolset in the condition - parameter: -

    -
    using python ;  # use for most toolsets
    -
    -# Use with Intel C++ toolset
    -using python
    -     : # version
    -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
    -     : # includes
    -     : # libraries
    -     : <toolset>intel # condition
    -     ;
    -
    -
  • -
  • -

    - If you have downloaded the Python sources and built both the normal - and the “python debugging_” builds from source - on Windows, you might see: -

    -
    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
    -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
    -  : # includes
    -  : # libs
    -  : <python-debugging>on ;
    -
    -
  • -
  • -

    - You can set up your user-config.jam so a bjam built under Windows can - build/test both Windows and Cygwin_ python extensions. Just pass <target-os>cygwin - in the condition parameter - for the cygwin python installation: -

    -
    # windows installation
    -using python ;
    -
    -# cygwin installation
    -using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
    -
    -

    - when you put target-os=cygwin in your build request, it should build - with the cygwin version of python: _ -

    -
    bjam target-os=cygwin toolset=gcc
    -
    -

    - This is supposed to work the other way, too (targeting windows python - with a Cygwin bjam) but it seems - as though the support in Boost.Build's toolsets for building that way - is broken at the time of this writing. -

    -
  • -
  • -

    - Note that because of the - way Boost.Build currently selects target alternatives, you - might have be very explicit in your build requests. For example, given: -

    -
    using python : 2.5 ; # a regular windows build
    -using python : 2.4 : : : : <target-os>cygwin ;
    -
    -

    - building with -

    -
    bjam target-os=cygwin
    -
    -

    - will yield an error. Instead, you'll need to write -

    -
    bjam target-os=cygwin/python=2.4
    -
    -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/in_case_everything_seemed_to_wor.html b/doc/html/building/no_install_quickstart/in_case_everything_seemed_to_wor.html deleted file mode 100644 index 237b39b4..00000000 --- a/doc/html/building/no_install_quickstart/in_case_everything_seemed_to_wor.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -In Case Everything Seemed to Work - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Rejoice! If you're new to Boost.Python, at this point it might be a good - idea to ignore build issues for a while and concentrate on learning the - library by going through the Tutorial - and perhaps some of the Reference Manual, - trying out what you've learned about the API by modifying the quickstart - project. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/in_case_of_trouble.html b/doc/html/building/no_install_quickstart/in_case_of_trouble.html deleted file mode 100644 index 17f7ee36..00000000 --- a/doc/html/building/no_install_quickstart/in_case_of_trouble.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -In Case of Trouble - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- If you're seeing lots of compiler and/or linker error messages, it's probably - because Boost.Build is having trouble finding your Python installation. - You might want to pass the --debug-configuration option to bjam the first few times you invoke it, - to make sure that Boost.Build is correctly locating all the parts of your - Python installation. If it isn't, consider Configuring - Boost.Build as detailed below. -

-

- If you're still having trouble, Someone on one of the following mailing - lists may be able to help: -

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/include_issues.html b/doc/html/building/no_install_quickstart/include_issues.html deleted file mode 100644 index 3e2a499e..00000000 --- a/doc/html/building/no_install_quickstart/include_issues.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -#include Issues - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- 1. If you should ever have occasion to #include - "python.h" directly in - a translation unit of a program using Boost.Python, use #include - "boost/python/detail/wrap_python.hpp" - instead. It handles several issues necessary for use with Boost.Python, - one of which is mentioned in the next section. -

-

- 2. Be sure not to #include - any system headers before wrap_python.hpp. - This restriction is actually imposed by Python, or more properly, by Python's - interaction with your operating system. See http://docs.python.org/ext/simpleExample.html - for details. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/installing_boost_python_on_your_.html b/doc/html/building/no_install_quickstart/installing_boost_python_on_your_.html deleted file mode 100644 index e1c247df..00000000 --- a/doc/html/building/no_install_quickstart/installing_boost_python_on_your_.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Installing Boost.Python on your System - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Since Boost.Python is a separately-compiled (as opposed to header-only) library, its user relies on the - services of a Boost.Python library binary. -

-

- If you need a regular installation of the Boost.Python library binaries - on your system, the Boost Getting - Started Guide will walk you through the steps of creating one. - If building binaries from source, you might want to supply the --with-python - argument to bjam (or the - --with-libraries=python - argument to configure), - so only the Boost.Python binary will be built, rather than all the Boost - binaries. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/modifying_the_example_project.html b/doc/html/building/no_install_quickstart/modifying_the_example_project.html deleted file mode 100644 index d32ed9e0..00000000 --- a/doc/html/building/no_install_quickstart/modifying_the_example_project.html +++ /dev/null @@ -1,177 +0,0 @@ - - - -Modifying the Example Project - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- - -

- If you're content to keep your extension module forever in one source file - called extending.cpp, inside your Boost.Python distribution, - and import it forever as extending, - then you can stop here. However, it's likely that you will want to make - a few changes. There are a few things you can do without having to learn - Boost.Build in depth. -

-

- The project you just built is specified in two files in the current directory: - boost-build.jam, which tells bjam - where it can find the interpreted code of the Boost build system, and - Jamroot, which describes - the targets you just built. These files are heavily commented, so they - should be easy to modify. Take care, however, to preserve whitespace. Punctuation - such as ; will not be recognized - as intended by bjam if - it is not surrounded by whitespace. -

-
- -

- You'll probably want to copy this project elsewhere so you can change - it without modifying your Boost distribution. To do that, simply -

-

- a. copy the entire example/quickstart/ directory into a new directory. -

-

- b. In the new copies of boost-build.jam - and Jamroot, locate the - relative path near the top of the file that is clearly marked by a comment, - and edit that path so that it refers to the same directory your Boost - distribution as it referred to when the file was in its original location - in the example/quickstart/ - directory. -

-

- For example, if you moved the project from /home/dave/boost_1_34_0/libs/python/example/quickstart to /home/dave/my-project, you could change the first - path in boost-build.jam from -

-
../../../../tools/build/src
-
-

- to -

-
/home/dave/boost_1_34_0/tools/build/src
-
-

- and change the first path in Jamroot - from -

-
../../../..
-
-

- to -

-
/home/dave/boost_1_34_0
-
-
-
- -

- The names of additional source files involved in building your extension - module or embedding application can be listed in Jamroot - right alongside extending.cpp - or embedding.cpp respectively. Just be sure to leave - whitespace around each filename: -

-
 file1.cpp file2.cpp file3.cpp 
-
-

- Naturally, if you want to change the name of a source file you can tell - Boost.Build about it by editing the name in Jamroot. -

-
-
- -

- The name of the extension module is determined by two things: -

-
    -
  1. - the name in Jamroot - immediately following python-extension, - and -
  2. -
  3. - the name passed to BOOST_PYTHON_MODULE - in extending.cpp. -
  4. -
-

- To change the name of the extension module from extending - to hello, you'd edit - Jamroot, changing -

-
python-extension extending : extending.cpp ;
-
-

- to -

-
python-extension hello : extending.cpp ;
-
-

- and you'd edit extending.cpp, changing -

-
BOOST_PYTHON_MODULE(extending)
-
-

- to -

-
BOOST_PYTHON_MODULE(hello)
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/modifying_the_example_project/add_new_or_change_names_of_exist.html b/doc/html/building/no_install_quickstart/modifying_the_example_project/add_new_or_change_names_of_exist.html deleted file mode 100644 index addd4236..00000000 --- a/doc/html/building/no_install_quickstart/modifying_the_example_project/add_new_or_change_names_of_exist.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Add New or Change Names of Existing Source Files - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- The names of additional source files involved in building your extension - module or embedding application can be listed in Jamroot - right alongside extending.cpp - or embedding.cpp respectively. Just be sure to leave - whitespace around each filename: -

-
 file1.cpp file2.cpp file3.cpp 
-
-

- Naturally, if you want to change the name of a source file you can tell - Boost.Build about it by editing the name in Jamroot. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/modifying_the_example_project/change_the_name_of_your_extensio.html b/doc/html/building/no_install_quickstart/modifying_the_example_project/change_the_name_of_your_extensio.html deleted file mode 100644 index 76853b16..00000000 --- a/doc/html/building/no_install_quickstart/modifying_the_example_project/change_the_name_of_your_extensio.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -Change the Name of your Extension Module - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- The name of the extension module is determined by two things: -

-
    -
  1. - the name in Jamroot - immediately following python-extension, - and -
  2. -
  3. - the name passed to BOOST_PYTHON_MODULE - in extending.cpp. -
  4. -
-

- To change the name of the extension module from extending - to hello, you'd edit - Jamroot, changing -

-
python-extension extending : extending.cpp ;
-
-

- to -

-
python-extension hello : extending.cpp ;
-
-

- and you'd edit extending.cpp, changing -

-
BOOST_PYTHON_MODULE(extending)
-
-

- to -

-
BOOST_PYTHON_MODULE(hello)
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html b/doc/html/building/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html deleted file mode 100644 index 96e24312..00000000 --- a/doc/html/building/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Notes for MinGW (and Cygwin with -mno-cygwin) GCC Users - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- If you are using a version of Python prior to 2.4.1 with a MinGW prior - to 3.0.0 (with binutils-2.13.90-20030111-1), you will need to create a - MinGW-compatible version of the Python library; the one shipped with Python - will only work with a Microsoft-compatible linker. Follow the instructions - in the “Non-Microsoft” section of the “Building Extensions: Tips - And Tricks” chapter in Installing - Python Modules to create libpythonXX.a, where - XX corresponds to the major - and minor version numbers of your Python installation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/python_configuration_parameters.html b/doc/html/building/no_install_quickstart/python_configuration_parameters.html deleted file mode 100644 index 31ba7c4a..00000000 --- a/doc/html/building/no_install_quickstart/python_configuration_parameters.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -Python Configuration Parameters - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- If you have several versions of Python installed, or Python is installed - in an unusual way, you may want to supply any or all of the following optional - parameters to 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 (i.e. not 2.5.1). If you have multiple Python versions - installed, the version will usually be the only configuration argument - required. -

    -
  • -
  • -

    - cmd-or-prefix -

    -

    - preferably, a command that invokes a Python interpreter. Alternatively, - the installation prefix for Python libraries and header files. Only - use the alternative formulation if there is no appropriate Python executable - available. -

    -
  • -
  • -

    - includes -

    -

    - the #include paths - for Python headers. Normally the correct path(s) will be automatically - deduced from version - and/or cmd-or-prefix. -

    -
  • -
  • -

    - libraries -

    -

    - the path to Python library binaries. On MacOS/Darwin, you can also - pass the path of the Python framework. Normally the correct path(s) - will be automatically deduced from version - and/or cmd-or-prefix. -

    -
  • -
  • -

    - condition -

    -

    - if specified, should be a set of Boost.Build properties that are matched - against the build configuration when Boost.Build selects a Python configuration - to use. See examples below for details. -

    -
  • -
  • -

    - extension-suffix -

    -

    - A string to append to the name of extension modules before the true - filename extension. You almost certainly don't need to use this. Usually - this suffix is only used when targeting a Windows debug build of Python, - and will be set automatically for you based on the value of the |python-debugging|_ - feature. However, at least one Linux distribution (Ubuntu Feisty Fawn) - has a specially configured <python-debugging> - package that claims to use such a suffix. -

    -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/python_debugging_builds.html b/doc/html/building/no_install_quickstart/python_debugging_builds.html deleted file mode 100644 index bc87c2db..00000000 --- a/doc/html/building/no_install_quickstart/python_debugging_builds.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -Python Debugging Builds - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- Python can be built in a special “python debugging” configuration that - adds extra checks and instrumentation that can be very useful for developers - of extension modules. The data structures used by the debugging configuration - contain additional members, so a Python executable - built with python debugging enabled cannot be used with an extension module - or library compiled without it, and vice-versa. -

-

- Since pre-built “python debugging” versions of the Python executable - and libraries are not supplied with most distributions of Python, _ and we didn't want to force our users to build - them, Boost.Build does not automatically enable python debugging in its - debug build variant (which - is the default). Instead there is a special build property called python-debugging that, when used as a build - property, will define the right preprocessor symbols and select the right - libraries to link with. -

-

- On unix-variant platforms, the debugging versions of Python's data structures - will only be used if the symbol Py_DEBUG - is defined. On many windows compilers, when extension modules are built - with the preprocessor symbol _DEBUG, - Python defaults to force linking with a special debugging version of the - Python DLL. Since that symbol is very commonly used even when Python is - not present, Boost.Python temporarily undefines _DEBUG when Python.h is - #included from boost/python/detail/wrap_python.hpp - unless BOOST_DEBUG_PYTHON - is defined. The upshot is that if you want “python debugging”and you - aren't using Boost.Build, you should make sure BOOST_DEBUG_PYTHON - is defined, or python debugging will be suppressed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/no_install_quickstart/testing_boost_python.html b/doc/html/building/no_install_quickstart/testing_boost_python.html deleted file mode 100644 index 1ebcb894..00000000 --- a/doc/html/building/no_install_quickstart/testing_boost_python.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Testing Boost.Python - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- To run the full test suite for Boost.Python, invoke bjam - in the test subdirectory - of your Boost.Python distribution. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/notes_for_mingw_and_cygwin_with_.html b/doc/html/building/notes_for_mingw_and_cygwin_with_.html index c3303f33..0154ae41 100644 --- a/doc/html/building/notes_for_mingw_and_cygwin_with_.html +++ b/doc/html/building/notes_for_mingw_and_cygwin_with_.html @@ -3,14 +3,14 @@ Notes for MinGW (and Cygwin with -mno-cygwin) GCC Users - + -
+

PrevUpHomeNext diff --git a/doc/html/building/python_configuration_parameters.html b/doc/html/building/python_configuration_parameters.html deleted file mode 100644 index dc6156e2..00000000 --- a/doc/html/building/python_configuration_parameters.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -Python Configuration Parameters - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- If you have several versions of Python installed, or Python is installed - in an unusual way, you may want to supply any or all of the following optional - parameters to 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 (i.e. not 2.5.1). If - you have multiple Python versions installed, the version will usually - be the only configuration argument required. -

    -
  • -
  • -

    - cmd-or-prefix -

    -

    - preferably, a command that invokes a Python interpreter. Alternatively, - the installation prefix for Python libraries and header files. Only use - the alternative formulation if there is no appropriate Python executable - available. -

    -
  • -
  • -

    - includes -

    -

    - the #include paths - for Python headers. Normally the correct path(s) will be automatically - deduced from version - and/or cmd-or-prefix. -

    -
  • -
  • -

    - libraries -

    -

    - the path to Python library binaries. On MacOS/Darwin, you can also pass - the path of the Python framework. Normally the correct path(s) will be - automatically deduced from version - and/or cmd-or-prefix. -

    -
  • -
  • -

    - condition -

    -

    - if specified, should be a set of Boost.Build properties that are matched - against the build configuration when Boost.Build selects a Python configuration - to use. See examples below for details. -

    -
  • -
  • -

    - extension-suffix -

    -

    - A string to append to the name of extension modules before the true filename - extension. You almost certainly don't need to use this. Usually this - suffix is only used when targeting a Windows debug build of Python, and - will be set automatically for you based on the value of the |python-debugging|_ - feature. However, at least one Linux distribution (Ubuntu Feisty Fawn) - has a specially configured <python-debugging> - package that claims to use such a suffix. -

    -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/building/python_debugging_builds.html b/doc/html/building/python_debugging_builds.html index 6b4992f6..2fb7fe9f 100644 --- a/doc/html/building/python_debugging_builds.html +++ b/doc/html/building/python_debugging_builds.html @@ -3,14 +3,14 @@ Python Debugging Builds - + -
+

PrevUpHomeNext diff --git a/doc/html/building/testing_boost_python.html b/doc/html/building/testing_boost_python.html index dc819623..a6ab189d 100644 --- a/doc/html/building/testing_boost_python.html +++ b/doc/html/building/testing_boost_python.html @@ -3,14 +3,14 @@ Testing Boost.Python - + -
+

PrevUpHomeNext diff --git a/doc/html/building_and_testing.html b/doc/html/building_and_testing.html deleted file mode 100644 index 15fb2864..00000000 --- a/doc/html/building_and_testing.html +++ /dev/null @@ -1,824 +0,0 @@ - - - -Chapter 1. Building and Testing - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHome -
-
-
-

-Chapter 1. Building and Testing

-

-David Abrahams -

-
-
-
- -
- -

- Boost.Python requires Python 2.2 - [1] or newer. -

-
-
- -

- There are two basic models for combining C++ and Python: -

-
    -
  • - extending, - in which the end-user launches the Python interpreter executable and - imports Python “extension modules” written in C++. Think of taking - a library written in C++ and giving it a Python interface so Python - programmers can use it. From Python, these modules look just like regular - Python modules. -
  • -
  • - embedding, - in which the end-user launches a program written in C++ that in turn - invokes the Python interpreter as a library subroutine. Think of adding - scriptability to an existing application. -
  • -
-

- The key distinction between extending and embedding is the location of - the C++ main() - function: in the Python interpreter executable, or in some other program, - respectively. Note that even when embedding Python in another program, - extension - modules are often the best way to make C/C++ functionality accessible to - Python code, so the use of extension modules is really at the heart - of both models. -

-

- Except in rare cases, extension modules are built as dynamically-loaded - libraries with a single entry point, which means you can change them without - rebuilding either the other extension modules or the executable containing - main(). -

-
-
- -

- There is no need to “install Boost” in order to get started using Boost.Python. - These instructions use http://boost.org/build - projects, which will build those binaries as soon as they're needed. Your - first tests may take a little longer while you wait for Boost.Python to - build, but doing things this way will save you from worrying about build - intricacies like which library binaries to use for a specific compiler - configuration and figuring out the right compiler options to use yourself. -

-
- - - - - -
[Note]Note
-

- Of course it's possible to use other build systems to build Boost.Python - and its extensions, but they are not officially supported by Boost. Moreover - 99% of all “I can't build Boost.Python” problems - come from trying to use another build system without first - following these instructions. -

-

- If you want to use another system anyway, we suggest that you follow - these instructions, and then invoke -

-
bjam
-

- with the -

-

- -a - -ofilename -

-

- options to dump the build commands it executes to a file, so you can - see what your alternate build system needs to do. -

-
-
- -

- 1. Get Boost; see sections 1 and 2 of the Boost Getting - Started Guide. -

-

- 2. Get the bjam build - driver. See section 5 of the Boost Getting - Started Guide. -

-

- 3. cd into the example/quickstart/ directory of your Boost.Python installation, - which contains a small example project. -

-

- 4. Invoke bjam. Replace - the “stage“ argument - from the example invocation from section 5 of the Boost Getting - Started Guide with “test,“ - to build all the test targets. Also add the argument “--verbose-test” - to see the output generated by the tests when they are run. On Windows, - your bjam invocation - might look something like: -

-
C:\\boost_1_34_0\\...\\quickstart> bjam toolset=msvc --verbose-test test
-
-

- and on Unix variants, perhaps, -

-
~/boost_1_34_0/.../quickstart$ bjam toolset=gcc --verbose-test test
-
-
- - - - - -
[Note]Note

- For the sake of concision, the rest of this guide will use unix-style - forward slashes in pathnames instead of the backslashes with which - Windows users may be more familiar. The forward slashes should work - everywhere except in Command - Prompt windows, where you should use backslashes. -

-

- If you followed this procedure successfully, you will have built an extension - module called extending - and tested it by running a Python script called test_extending.py. - You will also have built and run a simple application called embedding that embeds python. -

-
-
- -

- If you're seeing lots of compiler and/or linker error messages, it's - probably because Boost.Build is having trouble finding your Python installation. - You might want to pass the --debug-configuration option to bjam the first few times you invoke - it, to make sure that Boost.Build is correctly locating all the parts - of your Python installation. If it isn't, consider Configuring - Boost.Build as detailed below. -

-

- If you're still having trouble, Someone on one of the following mailing - lists may be able to help: -

-
-
-
- -

- Rejoice! If you're new to Boost.Python, at this point it might be a good - idea to ignore build issues for a while and concentrate on learning the - library by going through the Tutorial - and perhaps some of the Reference Manual, - trying out what you've learned about the API by modifying the quickstart - project. -

-
-
- -

- If you're content to keep your extension module forever in one source - file called extending.cpp, - inside your Boost.Python distribution, and import it forever as extending, then you can stop here. - However, it's likely that you will want to make a few changes. There - are a few things you can do without having to learn Boost.Build - in depth. -

-

- The project you just built is specified in two files in the current directory: - boost-build.jam, which tells bjam - where it can find the interpreted code of the Boost build system, and - Jamroot, which describes - the targets you just built. These files are heavily commented, so they - should be easy to modify. Take care, however, to preserve whitespace. - Punctuation such as ; will - not be recognized as intended by bjam - if it is not surrounded by whitespace. -

-
- -

- You'll probably want to copy this project elsewhere so you can change - it without modifying your Boost distribution. To do that, simply -

-

- a. copy the entire example/quickstart/ directory into a new directory. -

-

- b. In the new copies of boost-build.jam - and Jamroot, locate - the relative path near the top of the file that is clearly marked by - a comment, and edit that path so that it refers to the same directory - your Boost distribution as it referred to when the file was in its - original location in the example/quickstart/ directory. -

-

- For example, if you moved the project from /home/dave/boost_1_34_0/libs/python/example/quickstart to /home/dave/my-project, you could change the first - path in boost-build.jam from -

-
../../../../tools/build/v2
-
-

- to -

-
/home/dave/boost_1_34_0/tools/build/v2
-
-

- and change the first path in Jamroot - from -

-
../../../..
-
-

- to -

-
/home/dave/boost_1_34_0
-
-
-
- -

- The names of additional source files involved in building your extension - module or embedding application can be listed in Jamroot - right alongside extending.cpp - or embedding.cpp respectively. Just be sure to - leave whitespace around each filename: -

-
 file1.cpp file2.cpp file3.cpp 
-
-

- Naturally, if you want to change the name of a source file you can - tell Boost.Build about it by editing the name in Jamroot. -

-
-
- -

- The name of the extension module is determined by two things: -

-

- 1. the name in Jamroot - immediately following python-extension, - and 2. the name passed to -

-
BOOST_PYTHON_MODULE
-

- in extending.cpp. -

-

- To change the name of the extension module from extending - to hello, you'd edit - Jamroot, changing -

-
python-extension extending : extending.cpp ;
-
-

- to -

-
python-extension hello : extending.cpp ;
-
-

- and you'd edit extending.cpp, changing -

-
BOOST_PYTHON_MODULE(extending)
-
-

- to -

-
BOOST_PYTHON_MODULE(hello)
-
-
-
-
- -

- Since Boost.Python is a separately-compiled (as opposed to header-only) library, its user relies on the - services of a Boost.Python library binary. -

-

- If you need a regular installation of the Boost.Python library binaries - on your system, the Boost Getting - Started Guide will walk you through the steps of creating one. - If building binaries from source, you might want to supply the --with-python - argument to bjam (or - the --with-libraries=python - argument to configure), - so only the Boost.Python binary will be built, rather than all the Boost - binaries. -

-
-
- -

- As described in the Reference Manual, - a file called user-config.jam in your home directory is used - to specify the tools and libraries available to the build system. You - may need to create or edit user-config.jam - to tell Boost.Build how to invoke Python, #include - its headers, and link with its libraries. -

-
- - - - - -
[Note]Note

- If you are using a unix-variant OS and you ran Boost's configure script, it may have generated - a user-config.jam for you. [2] If your configure/make sequence was successful and - Boost.Python binaries were built, your user-config.jam - file is probably already correct. -

-

- If you have one fairly “standard” python installation for your platform, - you might not need to do anything special to describe it. If you haven't - configured python in user-config.jam - (and you don't specify --without-python on the Boost.Build command line), - Boost.Build will automatically execute the equivalent of -

-
import toolset : using ;
-using python ;
-
-

- which automatically looks for Python in the most likely places. However, - that only happens when using the Boost.Python project file (e.g. when - referred to by another project as in the quickstart method). If instead - you are linking against separately-compiled Boost.Python binaries, you - should set up a user-config.jam - file with at least the minimal incantation above. -

-
- -

- If you have several versions of Python installed, or Python is installed - in an unusual way, you may want to supply any or all of the following - optional parameters to 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 (i.e. not - 2.5.1). If you have multiple Python versions - installed, the version will usually be the only configuration argument - required. -

    -
  • -
  • -

    - cmd-or-prefix -

    -

    - preferably, a command that invokes a Python interpreter. Alternatively, - the installation prefix for Python libraries and header files. - Only use the alternative formulation if there is no appropriate - Python executable available. -

    -
  • -
  • -

    - includes -

    -

    - the #include - paths for Python headers. Normally the correct path(s) will be - automatically deduced from version - and/or cmd-or-prefix. -

    -
  • -
  • -

    - libraries -

    -

    - the path to Python library binaries. On MacOS/Darwin, you can also - pass the path of the Python framework. Normally the correct path(s) - will be automatically deduced from version - and/or cmd-or-prefix. -

    -
  • -
  • -

    - condition -

    -

    - if specified, should be a set of Boost.Build properties that are - matched against the build configuration when Boost.Build selects - a Python configuration to use. See examples below for details. -

    -
  • -
  • -

    - extension-suffix -

    -

    - A string to append to the name of extension modules before the - true filename extension. You almost certainly don't need to use - this. Usually this suffix is only used when targeting a Windows - debug build of Python, and will be set automatically for you based - on the value of the |python-debugging|_ feature. However, at least - one Linux distribution (Ubuntu Feisty Fawn) has a specially configured - <python-debugging> - package that claims to use such a suffix. -

    -
  • -
-
-
- -

- Note that in the examples below, case and especially - whitespace are significant. -

-
    -
  • -

    - If you have both python 2.5 and python 2.4 installed, user-config.jam might contain -

    -
    using python : 2.5 ;  # Make both versions of Python available
    -using python : 2.4 ;  # To build with python 2.4, add python=2.4
    -                      # to your command line.
    -
    -

    - The first version configured (2.5) becomes the default. To build - against python 2.4, add python=2.4 - to the bjam command - line. -

    -
  • -
  • -

    - If you have python installed in an unusual location, you might - supply the path to the interpreter in the cmd-or-prefix - parameter: -

    -
    using python : : /usr/local/python-2.6-beta/bin/python ;
    -
    -
  • -
  • -

    - If you have a separate build of Python for use with a particular - toolset, you might supply that toolset in the condition - parameter: -

    -
    using python ;  # use for most toolsets
    -
    -# Use with Intel C++ toolset
    -using python
    -     : # version
    -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
    -     : # includes
    -     : # libraries
    -     : <toolset>intel # condition
    -     ;
    -
    -
  • -
  • -

    - If you have downloaded the Python sources and built both the normal - and the “python debugging_” builds from source - on Windows, you might see: -

    -
    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
    -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
    -  : # includes
    -  : # libs
    -  : <python-debugging>on ;
    -
    -
  • -
  • -

    - You can set up your user-config.jam so a bjam built under Windows - can build/test both Windows and Cygwin_ python extensions. Just - pass <target-os>cygwin - in the condition - parameter for the cygwin python installation: -

    -
    # windows installation
    -using python ;
    -
    -# cygwin installation
    -using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
    -
    -

    - when you put target-os=cygwin in your build request, it should - build with the cygwin version of python: _ -

    -
    bjam target-os=cygwin toolset=gcc
    -
    -

    - This is supposed to work the other way, too (targeting windows - python with a Cygwin bjam) - but it seems as though the support in Boost.Build's toolsets for - building that way is broken at the time of this writing. -

    -
  • -
  • -

    - Note that because of the - way Boost.Build currently selects target alternatives, - you might have be very explicit in your build requests. For example, - given: -

    -
    using python : 2.5 ; # a regular windows build
    -using python : 2.4 : : : : <target-os>cygwin ;
    -
    -

    - building with -

    -
    bjam target-os=cygwin
    -
    -

    - will yield an error. Instead, you'll need to write -

    -
    bjam target-os=cygwin/python=2.4
    -
    -
  • -
-
-
-
- -

- If—instead of letting Boost.Build construct and link with the right - libraries automatically—you choose to use a pre-built Boost.Python - library, you'll need to think about which one to link with. The Boost.Python - binary comes in both static and dynamic flavors. Take care to choose - the right flavor for your application. [3] -

-
- -

- The dynamic library is the safest and most-versatile choice: -

-
    -
  • - A single copy of the library code is used by all extension modules - built with a given toolset. [4] -
  • -
  • - The library contains a type conversion registry. Because one registry - is shared among all extension modules, instances of a class exposed - to Python in one dynamically-loaded extension module can be passed - to functions exposed in another such module. -
  • -
-
-
- -

- It might be appropriate to use the static Boost.Python library in any - of the following cases: -

-
    -
  • - You are extending python and the types exposed in your dynamically-loaded - extension module don't need to be used by any other Boost.Python - extension modules, and you don't care if the core library code - is duplicated among them. -
  • -
  • - You are embedding python in your application and either: -
      -
    • - You are targeting a Unix variant OS other than MacOS or AIX, - where the dynamically-loaded extension modules can “see” - the Boost.Python library symbols that are part of the executable. -
    • -
    • - Or, you have statically linked some Boost.Python extension - modules into your application and you don't care if any dynamically-loaded - Boost.Python extension modules are able to use the types - exposed by your statically-linked extension modules (and - vice-versa). -
    • -
    -
  • -
-
-
-
- -

- 1. If you should ever have occasion to #include - "python.h" directly in - a translation unit of a program using Boost.Python, use #include "boost/python/detail/wrap_python.hpp" - instead. It handles several issues necessary for use with Boost.Python, - one of which is mentioned in the next section. -

-

- 2. Be sure not to #include - any system headers before wrap_python.hpp. - This restriction is actually imposed by Python, or more properly, by - Python's interaction with your operating system. See http://docs.python.org/ext/simpleExample.html - for details. -

-
-
- -

- Python can be built in a special “python debugging” configuration - that adds extra checks and instrumentation that can be very useful for - developers of extension modules. The data structures used by the debugging - configuration contain additional members, so a - Python executable built with python debugging enabled cannot be used - with an extension module or library compiled without it, and vice-versa. -

-

- Since pre-built “python debugging” versions of the Python executable - and libraries are not supplied with most distributions of Python, _ and we didn't want to force our users to build - them, Boost.Build does not automatically enable python debugging in its - debug build variant (which - is the default). Instead there is a special build property called python-debugging that, when used as a build - property, will define the right preprocessor symbols and select the right - libraries to link with. -

-

- On unix-variant platforms, the debugging versions of Python's data structures - will only be used if the symbol Py_DEBUG - is defined. On many windows compilers, when extension modules are built - with the preprocessor symbol _DEBUG, - Python defaults to force linking with a special debugging version of - the Python DLL. Since that symbol is very commonly used even when Python - is not present, Boost.Python temporarily undefines _DEBUG when Python.h - is #included from boost/python/detail/wrap_python.hpp - - unless BOOST_DEBUG_PYTHON - is defined. The upshot is that if you want “python debugging”and - you aren't using Boost.Build, you should make sure BOOST_DEBUG_PYTHON - is defined, or python debugging will be suppressed. -

-
-
- -

- To run the full test suite for Boost.Python, invoke bjam - in the test subdirectory - of your Boost.Python distribution. -

-
-
- -

- If you are using a version of Python prior to 2.4.1 with a MinGW prior - to 3.0.0 (with binutils-2.13.90-20030111-1), you will need to create - a MinGW-compatible version of the Python library; the one shipped with - Python will only work with a Microsoft-compatible linker. Follow the - instructions in the “Non-Microsoft” section of the “Building Extensions: - Tips And Tricks” chapter in Installing - Python Modules to create libpythonXX.a, - where XX corresponds - to the major and minor version numbers of your Python installation. -

-
-
-
-
-

-

[1] - Note that although we tested earlier versions of Boost.Python with Python - 2.2, and we don't think we've done anything - to break compatibility, this release of Boost.Python may not have been - tested with versions of Python earlier than 2.4, so we're not 100% sure - that python 2.2 and 2.3 are supported. -

-

[2] - configure overwrites - the existing user-config.jam - in your home directory (if any) after making a backup of the old - version. -

-

[3] - Information about how to identify the static and dynamic builds of - Boost.Python on Windows - / Unix - variants -

-

[4] - Because of the way most *nix platforms share symbols among dynamically-loaded - objects, I'm not certain that extension modules built with different - compiler toolsets will always use different copies of the Boost.Python - library when loaded into the same Python instance. Not using - different libraries could be a good thing if the compilers have - compatible ABIs, because extension modules built with the two - libraries would be interoperable. Otherwise, it could spell disaster, - since an extension module and the Boost.Python library would - have different ideas of such things as class layout. I would - appreciate someone doing the experiment to find out what happens. -

-
-
- - - -
-
-
-PrevUpHome -
- - diff --git a/doc/html/configuration.html b/doc/html/configuration.html index 61b26e74..6e9b5f1f 100644 --- a/doc/html/configuration.html +++ b/doc/html/configuration.html @@ -3,14 +3,14 @@ Chapter 2. Configuration - + -
+

PrevUpHomeNext diff --git a/doc/html/docutils.css b/doc/html/docutils.css deleted file mode 100644 index 620cf861..00000000 --- a/doc/html/docutils.css +++ /dev/null @@ -1,275 +0,0 @@ -/* -:Author: David Goodger -:Contact: goodger@python.org -:Date: $Date$ -:Revision: $Revision$ -:Copyright: This stylesheet has been placed in the public domain. - -Default cascading style sheet for the HTML output of Docutils. - -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to -customize this style sheet. -*/ - -/* used to remove borders from tables and images */ -.borderless, table.borderless td, table.borderless th { - border: 0 } - -table.borderless td, table.borderless th { - /* Override padding for "table.docutils td" with "! important". - The right padding separates the table cells. */ - padding: 0 0.5em 0 0 ! important } - -.first { - /* Override more specific margin styles with "! important". */ - margin-top: 0 ! important } - -.last, .with-subtitle { - margin-bottom: 0 ! important } - -.hidden { - display: none } - -a.toc-backref { - text-decoration: none ; - color: black } - -blockquote.epigraph { - margin: 2em 5em ; } - -dl.docutils dd { - margin-bottom: 0.5em } - -/* Uncomment (and remove this text!) to get bold-faced definition list terms -dl.docutils dt { - font-weight: bold } -*/ - -div.abstract { - margin: 2em 5em } - -div.abstract p.topic-title { - font-weight: bold ; - text-align: center } - -div.admonition, div.attention, div.caution, div.danger, div.error, -div.hint, div.important, div.note, div.tip, div.warning { - margin: 2em ; - border: medium outset ; - padding: 1em } - -div.admonition p.admonition-title, div.hint p.admonition-title, -div.important p.admonition-title, div.note p.admonition-title, -div.tip p.admonition-title { - font-weight: bold ; - font-family: sans-serif } - -div.attention p.admonition-title, div.caution p.admonition-title, -div.danger p.admonition-title, div.error p.admonition-title, -div.warning p.admonition-title { - color: red ; - font-weight: bold ; - font-family: sans-serif } - -/* Uncomment (and remove this text!) to get reduced vertical space in - compound paragraphs. -div.compound .compound-first, div.compound .compound-middle { - margin-bottom: 0.5em } - -div.compound .compound-last, div.compound .compound-middle { - margin-top: 0.5em } -*/ - -div.dedication { - margin: 2em 5em ; - text-align: center ; - font-style: italic } - -div.dedication p.topic-title { - font-weight: bold ; - font-style: normal } - -div.figure { - margin-left: 2em ; - margin-right: 2em } - -div.footer, div.header { - clear: both; - font-size: smaller } - -div.line-block { - display: block ; - margin-top: 1em ; - margin-bottom: 1em } - -div.line-block div.line-block { - margin-top: 0 ; - margin-bottom: 0 ; - margin-left: 1.5em } - -div.sidebar { - margin-left: 1em ; - border: medium outset ; - padding: 1em ; - background-color: #ffffee ; - width: 40% ; - float: right ; - clear: right } - -div.sidebar p.rubric { - font-family: sans-serif ; - font-size: medium } - -div.system-messages { - margin: 5em } - -div.system-messages h1 { - color: red } - -div.system-message { - border: medium outset ; - padding: 1em } - -div.system-message p.system-message-title { - color: red ; - font-weight: bold } - -div.topic { - margin: 2em } - -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { - margin-top: 0.4em } - -h1.title { - text-align: center } - -h2.subtitle { - text-align: center } - -hr.docutils { - width: 75% } - -img.align-left { - clear: left } - -img.align-right { - clear: right } - -ol.simple, ul.simple { - margin-bottom: 1em } - -ol.arabic { - list-style: decimal } - -ol.loweralpha { - list-style: lower-alpha } - -ol.upperalpha { - list-style: upper-alpha } - -ol.lowerroman { - list-style: lower-roman } - -ol.upperroman { - list-style: upper-roman } - -p.attribution { - text-align: right ; - margin-left: 50% } - -p.caption { - font-style: italic } - -p.credits { - font-style: italic ; - font-size: smaller } - -p.label { - white-space: nowrap } - -p.rubric { - font-weight: bold ; - font-size: larger ; - color: maroon ; - text-align: center } - -p.sidebar-title { - font-family: sans-serif ; - font-weight: bold ; - font-size: larger } - -p.sidebar-subtitle { - font-family: sans-serif ; - font-weight: bold } - -p.topic-title { - font-weight: bold } - -pre.address { - margin-bottom: 0 ; - margin-top: 0 ; - font-family: serif ; - font-size: 100% } - -pre.literal-block, pre.doctest-block { - margin-left: 2em ; - margin-right: 2em } - -span.classifier { - font-family: sans-serif ; - font-style: oblique } - -span.classifier-delimiter { - font-family: sans-serif ; - font-weight: bold } - -span.interpreted { - font-family: sans-serif } - -span.option { - white-space: nowrap } - -span.pre { - white-space: pre } - -span.problematic { - color: red } - -span.section-subtitle { - /* font-size relative to parent (h1..h6 element) */ - font-size: 80% } - -table.citation { - border-left: solid 1px gray; - margin-left: 1px } - -table.docinfo { - margin: 2em 4em } - -table.docutils { - margin-top: 0.5em ; - margin-bottom: 0.5em } - -table.footnote { - border-left: solid 1px black; - margin-left: 1px } - -table.docutils td, table.docutils th, -table.docinfo td, table.docinfo th { - padding-left: 0.5em ; - padding-right: 0.5em ; - vertical-align: top } - -table.docutils th.field-name, table.docinfo th.docinfo-name { - font-weight: bold ; - text-align: left ; - white-space: nowrap ; - padding-left: 0 } - -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { - font-size: 100% } - -ul.auto-toc { - list-style-type: none } diff --git a/doc/html/faq.html b/doc/html/faq.html index 4206c87a..72d251e6 100644 --- a/doc/html/faq.html +++ b/doc/html/faq.html @@ -3,14 +3,14 @@ Chapter 4. Frequently Asked Questions (FAQs) - + -
+

PrevUpHomeNext diff --git a/doc/html/faq/compilation_takes_too_much_time_.html b/doc/html/faq/compilation_takes_too_much_time_.html index 3e99deee..b87d49a8 100644 --- a/doc/html/faq/compilation_takes_too_much_time_.html +++ b/doc/html/faq/compilation_takes_too_much_time_.html @@ -3,14 +3,14 @@ Compilation takes too much time and eats too much memory! What can I do to make it faster? - + -
+

PrevUpHomeNext diff --git a/doc/html/faq/debugging_extensions_through_boo.html b/doc/html/faq/debugging_extensions_through_boo.html deleted file mode 100644 index 0d410c67..00000000 --- a/doc/html/faq/debugging_extensions_through_boo.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Debugging extensions through Boost.Build - - - - - - - - - - - - - - - -
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
-
-
-PrevUpHomeNext -
-
- -

- If you are launching your extension module tests with Boost.Build - using the boost-python-runtest rule, you can ask it to launch - your debugger for you by adding "--debugger=debugger" - to your bjam command-line: -

-
bjam -sTOOLS=vc7.1 "--debugger=devenv /debugexe" test
-bjam -sTOOLS=gcc -sPYTHON_LAUNCH=gdb test
-
-

- It can also be extremely useful to add the -d+2 - option when you run your test, because Boost.Build will then show you the - exact commands it uses to invoke it. This will invariably involve setting - up PYTHONPATH and other important environment variables such as LD_LIBRARY_PATH - which may be needed by your debugger in order to get things to work right. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/doc/html/faq/does_boost_python_work_with_mac_.html b/doc/html/faq/does_boost_python_work_with_mac_.html index 6f61f8db..72963d15 100644 --- a/doc/html/faq/does_boost_python_work_with_mac_.html +++ b/doc/html/faq/does_boost_python_work_with_mac_.html @@ -3,14 +3,14 @@ Does Boost.Python work with Mac OS X? - + -
+

PrevUpHomeNext diff --git a/doc/html/faq/error_c2064_term_does_not_evalua.html b/doc/html/faq/error_c2064_term_does_not_evalua.html index 179789ac..2ba2c78e 100644 --- a/doc/html/faq/error_c2064_term_does_not_evalua.html +++ b/doc/html/faq/error_c2064_term_does_not_evalua.html @@ -3,14 +3,14 @@ error C2064: term does not evaluate to a function taking 2 arguments - + -
+

PrevUpHomeNext diff --git a/doc/html/faq/fatal_error_c1204_compiler_limit.html b/doc/html/faq/fatal_error_c1204_compiler_limit.html index c353d6d6..6a66d001 100644 --- a/doc/html/faq/fatal_error_c1204_compiler_limit.html +++ b/doc/html/faq/fatal_error_c1204_compiler_limit.html @@ -3,14 +3,14 @@ fatal error C1204:Compiler limit:internal structure overflow - + -
+

PrevUpHomeNext @@ -32,12 +32,10 @@ Upgrade your compiler (preferred)
  • -

    Break your source file up into multiple translation units. -

    -

    - my_module.cpp: -

    +

    + my_module.cpp: +

    ...
     void more_of_my_module();
     BOOST_PYTHON_MODULE(my_module)
    @@ -48,25 +46,25 @@
       more_of_my_module();
     }
     
    -

    - more_of_my_module.cpp: -

    +

    + more_of_my_module.cpp: +

    void more_of_my_module()
     {
       def("baz", baz);
       ...
     }
     
    -

    - If you find that a class_<...> declaration can't fit in a - single source file without triggering the error, you can always pass - a reference to the class_ - object to a function in another source file, and call some of its member - functions (e.g. .def(...)) in the auxilliary source file: -

    -

    - more_of_my_class.cpp: -

    +

    + If you find that a class_<...> declaration can't fit in + a single source file without triggering the error, you can always pass + a reference to the class_ + object to a function in another source file, and call some of its member + functions (e.g. .def(...)) in the auxilliary source file: +

    +

    + more_of_my_class.cpp: +

    void more_of_my_class(class&lt;my_class&gt;&amp; x)
     {
       x
    @@ -76,7 +74,7 @@
       ...
     }
     
    -
  • +
    diff --git a/doc/html/faq/how_can_i_automatically_convert_.html b/doc/html/faq/how_can_i_automatically_convert_.html index ca02ee26..1ef480e2 100644 --- a/doc/html/faq/how_can_i_automatically_convert_.html +++ b/doc/html/faq/how_can_i_automatically_convert_.html @@ -3,14 +3,14 @@ How can I automatically convert my custom string type to and from a Python string? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/faq/how_can_i_find_the_existing_pyob.html b/doc/html/faq/how_can_i_find_the_existing_pyob.html index bf4147c9..1e061b02 100644 --- a/doc/html/faq/how_can_i_find_the_existing_pyob.html +++ b/doc/html/faq/how_can_i_find_the_existing_pyob.html @@ -3,14 +3,14 @@ How can I find the existing PyObject that holds a C++ object? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/faq/how_can_i_wrap_a_function_which0.html b/doc/html/faq/how_can_i_wrap_a_function_which0.html index a1af8df6..54dfa909 100644 --- a/doc/html/faq/how_can_i_wrap_a_function_which0.html +++ b/doc/html/faq/how_can_i_wrap_a_function_which0.html @@ -3,14 +3,14 @@ How can I wrap a function which needs to take ownership of a raw pointer? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/faq/how_can_i_wrap_functions_which_t.html b/doc/html/faq/how_can_i_wrap_functions_which_t.html index 43ab68a6..003f9e0a 100644 --- a/doc/html/faq/how_can_i_wrap_functions_which_t.html +++ b/doc/html/faq/how_can_i_wrap_functions_which_t.html @@ -3,14 +3,14 @@ How can I wrap functions which take C++ containers as arguments? - + -
    +

    PrevUpHomeNext @@ -25,40 +25,36 @@

    1. -

      - Using the regular class_<> wrapper: -

      +

      + Using the regular class_<> wrapper: +

      class_<std::vector<double> >("std_vector_double")
         .def(...)
         ...
       ;
       
      -

      This can be moved to a template so that several types (double, int, long, etc.) can be wrapped with the same code. This technique is used in the file scitbx/include/scitbx/array_family/boost_python/flex_wrapper.h in the "scitbx" package. The file could easily be modified for wrapping std::vector<> instantiations. This type of C++/Python binding is most suitable for containers that may contain a large number of elements (>10000). -

      -
    2. +
    3. -

      - Using custom rvalue converters. Boost.Python "rvalue converters" - match function signatures such as: -

      +

      + Using custom rvalue converters. Boost.Python "rvalue converters" + match function signatures such as: +

      void foo(std::vector<double> const &array); // pass by const-reference
       void foo(std::vector<double> array); // pass by value
       
      -

      Some custom rvalue converters are implemented in the file scitbx/include/scitbx/boost_python/container_conversions.h This code can be used to convert from C++ container types such as std::vector<> or std::list<> to Python tuples and vice versa. A few simple examples can be found in the file scitbx/array_family/boost_python/regression_test_module.cpp Automatic C++ container <-> Python tuple conversions are most suitable for containers of moderate size. These converters generate significantly less object code compared to alternative 1 above. -

      -
    4. +

    A disadvantage of using alternative 2 is that operators such as arithmetic diff --git a/doc/html/faq/how_do_i_create_sub_packages_usi.html b/doc/html/faq/how_do_i_create_sub_packages_usi.html index 5565071b..1bd767d3 100644 --- a/doc/html/faq/how_do_i_create_sub_packages_usi.html +++ b/doc/html/faq/how_do_i_create_sub_packages_usi.html @@ -3,14 +3,14 @@ How do I create sub-packages using Boost.Python? - + -
    +


    PrevUpHomeNext diff --git a/doc/html/faq/how_do_i_debug_my_python_extensi.html b/doc/html/faq/how_do_i_debug_my_python_extensi.html index aa616e7e..58d5e09b 100644 --- a/doc/html/faq/how_do_i_debug_my_python_extensi.html +++ b/doc/html/faq/how_do_i_debug_my_python_extensi.html @@ -3,14 +3,14 @@ How do I debug my Python extensions? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/faq/i_m_getting_the_attempt_to_retur.html b/doc/html/faq/i_m_getting_the_attempt_to_retur.html index 103d3197..574cc93f 100644 --- a/doc/html/faq/i_m_getting_the_attempt_to_retur.html +++ b/doc/html/faq/i_m_getting_the_attempt_to_retur.html @@ -3,14 +3,14 @@ I'm getting the "attempt to return dangling reference" error. What am I doing wrong? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/faq/is_boost_python_thread_aware_com.html b/doc/html/faq/is_boost_python_thread_aware_com.html index efc1b136..b46537b3 100644 --- a/doc/html/faq/is_boost_python_thread_aware_com.html +++ b/doc/html/faq/is_boost_python_thread_aware_com.html @@ -3,14 +3,14 @@ Is Boost.Python thread-aware/compatible with multiple interpreters? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/faq/is_return_internal_reference_eff.html b/doc/html/faq/is_return_internal_reference_eff.html index 76382d32..8646684a 100644 --- a/doc/html/faq/is_return_internal_reference_eff.html +++ b/doc/html/faq/is_return_internal_reference_eff.html @@ -3,14 +3,14 @@ Is return_internal_reference efficient? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/faq/why_doesn_t_my_operator_work.html b/doc/html/faq/why_doesn_t_my_operator_work.html index c5083de2..fc27c833 100644 --- a/doc/html/faq/why_doesn_t_my_operator_work.html +++ b/doc/html/faq/why_doesn_t_my_operator_work.html @@ -3,14 +3,14 @@ Why doesn't my *= operator work? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/faq/why_is_my_automatic_to_python_co.html b/doc/html/faq/why_is_my_automatic_to_python_co.html index 28d705ae..da861912 100644 --- a/doc/html/faq/why_is_my_automatic_to_python_co.html +++ b/doc/html/faq/why_is_my_automatic_to_python_co.html @@ -3,14 +3,14 @@ Why is my automatic to-python conversion not being found? - + -
    +

    PrevUpHomeNext diff --git a/doc/html/glossary.html b/doc/html/glossary.html index 693f954d..5b400114 100644 --- a/doc/html/glossary.html +++ b/doc/html/glossary.html @@ -3,13 +3,13 @@ Chapter 5. Glossary - + -
    +

    PrevUpHome diff --git a/doc/html/images/bpl.png b/doc/html/images/bpl.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d8c69e00ca3aada62024809e20d138a8906875 GIT binary patch literal 21289 zcmeAS@N?(olHy`uVBq!ia0y~yV0_KMz!1j4#=yYv{=&X}3=9lxN#5=*4F5rJ!QSPQ z85kHi3p^r=85nr4gD|6$#_S3P1_t&LPhVH|2OO;YlG4Z7btM=W6c{{R978H@z1dq{ zlbk;F|Nnj8S4F?OD>r@P^6xWK)J`t(=V}z-P-J9kVQ7rKbx3c+>35rcFV&51_sg#R`#q?bOoYCYgZ`Dn^O&B59Iz?%^_-Np*9>C% zw9WRSll978hOIj7-}vmx{j_~)iibT}4@^>-$yCg@rFa^|^7B@#AI|-$_q}{+Uz*{) zdNqyne{7$pK8HB*pMUi=H-?-ij`1tfZN)pDH+_iFx4wEGruVl!^R<-?=D{2GU0Aq; zDP{3|%M0fqKK;A$#-g@^y$+R%40+$?1oqw1vCsSRD<;DR;Ja&9o4Yf`W!TJ_UilonnY2;ibWv3PtusQMEUQ+XV~Sn8;rp3C zrDlqsV4?R<#Ws6!LAlz3wV6^~ixjlE0z)SR1T$d!mxz zeR99@LPk};)~l&}I%3=xGp+>uQHgzL#eM@C5%$^}{8+CTzh2hMQ1vWZSB!g7PT~Ra zG^0gH!D(&FCo8_5nJ||nbJ77_<%J#wf}tPXghHO(>^T1T@?!($+aX`CuP-^kcUC9?n?8ptEVtZTq;B z33E9Eq${r(AHHI?TGU_T;DwYoO$P!ds#N{u?2;9GQ)YcI;erW|opFBdHJ&F^S#E6H zaY|gSlG8J8kKu_)Er(YH%zD3Qnacc0HR_?RKd(#`eG=w+E>3V-fN9;n-y+Z1Y&AYT zYFHgQQM15uh0dA9i!}PX4%tYZ;x4?kW~a2>@qHhkFgjh_@lf$q*HiBuxu1>JOuKXN zx#;W2bml9?@(g0#OH6#SAG@^&9}vXS%WUN>u*;^|K| z{lBJi+<4x$r{-65e{=Fga}h=k#xAGOP{Ziy*NaXcQ_G9kKIJQ~=+3JXH`}lJ+Vk_r zA!Yr-Pa)!L4D_`GAX*(2^x<@|Qt9PYh$^8P*h z7ri6-b=RGof@-6^-J^0xOv#NgFE} zW^?5%KW1{&&7b{7z0U30W$d415_VU-+Tbi_-{0Hw`G&Xp&0Xsz^4}@5%-@^GY}P#~ zTGjIR;)v}35{(`_pWZ0w+jXp3b?Tt8t&GjRlm7GVkL}LCcc?vof72$W>;HdN@87;v zy#1_~g{eTo>GF-+*4dbQ#&;&!+#yj9<>2|LG;*d-L)w?oY0D@vhh851dY~`my?6;IF-t|J;>c zcWl)YhTrG!`hD-abj!YN)lxCBQ^hxK?Ag-wYSJHXvt`@r_?7o5i0f)Z$ zJH@{E_qWaLl_~FMPDxmsC6)c^)X!7Q+hc<^*qJ|373pXQ-KkP6r}*P)xB3PRq5q%F z%l*Tb|Iv*2{(`0cZ}W1=udKn(z6-B9_59v0<>U?bu3vL^GG%+Mx|G#&L*3Gn>Gq{{izrw>2>d{#JSCg%?0gEe{X z8$#xNlRvzA9*3KS`Gbd(g7rjao;+!A|M%U*by1PW+m4;Oll9Yh+uz*3UwV6*r#uRn z;jv-SvMFtw7I|B}uRd0D`R7ybq)9AdGw1KGXp+9B`?R*+sr?G$dzIx;)d%xhLw0BD zoV)ew%%N+mmR&To>AT=^%6nnvm1$xdwrsN4UZA&dY3X$%&iZtwD`BfeT{m7b6jKuk z7Z-+e%7=&EqrNsrgn+ce-V$_S6k2TRiAz+&h9q9oBADZh8yg+ ze^tKvaPyAWPvdRx0_7h!Zs5DJ$>je+jVn_{gPxSdY%(n6>%aW|WBi{l{#pmz9?h4( zTwco`TA!;{EaxyyLYn`>>e}>**IQr5 zf4m>BAoMun`h>z&K9_IYiD|w(D^lTW!EuI(5r+!wrieb-xM-Kj_JTOigt=Tx&f4TF zFDSE+(dat#@}6f)#GH>cQ<#CvRK1vP=2@{olQN z4@hR0X4o7kK5q5n)#Kk8Z>27Ere@l_IUb+)dosi81eJ3a`Ghxwv4*c*b^1qD`z`iP z30KjU1&cKLMYmdRsB>*9wR(SxW6AP{J5P%Y-}D>Hbm*=MkB!eboI6!gPD)*_KR6_$ zrF~ehq*pFRnfzvXt}mD({NhUtj;c!9V|D zb^m++XXU;A+uW_&|EcWTpP+K=<4ONQ%dr5ID4{lfx@$Z48dT1h$*&!667 z5Q|h=nE9pOw`fCd!@WfLeF-fQHjNiT)^zzyynXJ{tE6pf*DhYTiltlU@fNR~6(vdG zB1tD@zK3x94QfAno6Uyhkl|(F)2nuQd3_cSOG^q&`FDTzy62_;zwKvHHk_=%*5UeZ z#;q@VtoB=;@;FiN!nRI;$@fLz?3DtoDxN1U$uH-=y{EcF@R)GVkr&^8eHH0kv*gdW z?z?`|LZ`=UI&b@6?v;bLmTbGV=tNF*-0ZJgx#yJGRlo1u^0m6+W5n)_?Yf>lzHMYHdk#@XFG zSsFd9@OrOwXJ%7g{G6#v%S2oqL$BILy{q!iUSFvdbvYt5+AVWm@xk{Scdk4Yv(=M> zYfjmnZ`{HD-K(`8W;7M(oO3ZaG;^P!TaBaI;lM|$-1Z%I3*9(d)O2Zx$gaX$x;tdI zb$cZVItlctavXi+lEitdeNPFm{{wz^PM1d(Yq*a7^qZyC9T^qpGVik6yt{3Gm8J?E z71COmF(n3ut9araUNj?(FJKJ^Hnggz}k&0(SRd>jS#gx5f^-P`jQa(Ay zDCb3~rWp5Xy^Z3fa%+0`S9j}dE{%NKv@SmM$+NlEW*;9N47*(L!>6`!$Ertjd6vh1 zPi0-ldiJJaJ;&LW9a&p7M6BL^=G(ln<<#kPcAq_2j+Lo`p+{#1(g+@ZMR)FhMjarO(d zSdq-i16eAJpCuKGSQbllsR;I|RXmI^*M99)d6_r+ zM(Lv2_A*)5pKrO~z@aiJN@3EOd&zItWUosqO%@dv6wQxVdPLE``D;w-X79x6=qkh1 zzLip|r%ef*w!eU}-6O_SzyBgjX(}uCxp4os#XNoN75`Gy&&y<{KkxKYb5rx!)&9JH ziqnhI3Jx!=?wzU0#`!zbWTR)TUa7AgbLID}0MlcC6#Gi~KcAUcY*YM1X1R4+g4P%H zvl5fvX*FCvcTLoL$M02F_hg+mnif9&T(l4O*3N{MbrU(`EN&is%zpdE!%V!;UozuKW9he+JLdAU;(Y?}GPR zU;nrhU7oP@gv?u+YnLl0@lDd7^Xf`xFyV+`&FZ$!!25qpmvGK;t=#i=7q3mhXED9(b;ovb zoa)%va_T`v!{fWoHs6Y*t^3O_+_Pok{QBo%>N%@vcm47ruAi72zV6Z0+0%ogqZ*1C zPfZX$$T9!_Q@y$$zm+w=GcsP8F23pceYqKZY~Oo)KeP+S+U)qOp+D!%rNxR}HFf_u z8E3h9rgFaDk;wdhZz{KT)~RK4HNCAS_=V3)6*Cie66ik4(dJ|_<;g``xr6d?6*s5d z+aI+^>wa5DtK|F{4xyo^PM_j9&iZ!VhJSY#v>S!`9!P%julE zSI(&4E8yLp7w5L`^CADIdz0!KM$^Y@!06|jMfKFr^&_HT|2jb zis*-h*JBP^=iNE6>eeRi4zr9m_P5VBTlass{JdXyF2{>Wo4S}X8^jrxTd`YSy>(h# zuCnuYdCnu}?ePbvEe&n^Y$(wAQJ;VRiE{Z{oPM+S1+3|sx7+lG`NNE+{J&-T_p2(V z?_)eJl(VyjmB02&@0vXg=kwBRlkE-(J07l9U|c;t=0%MJX$ryflgZ0}zb+@&;KFR!f=D=NE_iTBUUHvQL8*4qp zRKISFn`n9E+VQpWzrX!_{w8eShk4gOY%kB7|NYZsTjgCxRv%qxw0QV{5WV4XIjz?2;d}W;Z074$ zimy=a_lZjS^|wyOkA1av?3?$q_AK~NzVfou#@M8S3*H(ci}vi1S$_H8#YPU!&@)da z33ea1ylQx6MY&MCf{%)nyW@frLX%XMHAdOT&i|gIazOs71fSZ9LhX!MHrh=Enl^6& zOxCqC`8qvVn%a6LZo#4}&b$3y-P_vuJT5fu$k%M?&0KH4R{r_(;k)~fW0Tn>B;~HF zr<*xwd;dDLJ+ktr4}bagKl<|3kGIx5TDMwL|3vf#^S?(Hn(h1cqpnQOZZ?Y+cgn7K zk4s<-Lx>)4mB9=NoEpS%|g> z*!=iW_ifv^k59|@cZKK1P5bnl%k}Y`SF(*t<&Ew3EdE5t6&pyApZ;l!F=~Z4CFU=H-I2RhtR$ zQ`Sn8aM8~v_8I?q>|f`feZ0Z$Tgk)RNT%s?IpZhn|M~Co4ILx?J6lv=AJd%tP-FkS z`-j5ocK0hU-~GjO&edHLzwFEp{oup$qg~$S?EAjb4@b-IoqDFDWO~nG#3-z;$@sq;B&Hu03rG<>fj|Kpo*hSP^WX|psp1LG<^;qz5m zA@9Eb)YR8ow(G*N158pC90yXTuGHNk$n)c4)!vA;VW+&jC3si%usx2@JyoLr#wPJ` z*Hv$USq{Qd-lskXs&Iw|XTFtF66jGde43~}`H$0rMAyj*t2}vFRl8(_{9M)QG^b8! z_?uh1Vpf{eyu5W<`xJg2pL^W8^3{dNkWgct(7l<-!q#RcsWoSr(|`Z`a(>?PmCU-q zA5U@b77XL&I9PA@he@u!Bmdviw~_7hnI}s8|2f;X=56QS3in9|DiojVM6zvf{;R%w z$N%j8&+7j@>y4RgoIFJMajkCX3zTuc7_rPpMx_}r6hPc~h?Wp|)`-)9y3|37SF z_T}tja5Ip4TyXpWtM~PFD>Rora5|ooko-?!?cd~O$x|A%!*yiVIA63lzPtS_Kg+CR zy0d4cHMk7Du1@{@ zQQr1+x%}nY|&hK&(DsZY{XIgRE*jdpt{ZQ>knA^n#a+0ev>{e~SLMeDarSdx0;i-ex47>Z**JMp zjk;?dyK5f1Sfy6~M3yYy|FL3*tAx*QviTOT(_cS*&jsU(<~kEk&yzuBLFLgr)&<+{ z+t{qlG6|o$VM$5i-{t)Cq#r!CuL?`A^IGZuTEqi@^%X#}hNn!u5$aj6ZC~tRox%@BYdz}sYc8F;!ByGQB{Nict|GyTC z|DBn6c>a%%#Wk-x|Ndf%^Eq4I-rILhao?BOcda}#&LwV7zv7-^v!Ni=!1sa98Sj~| zV{|_Iv}L@M_r9I_deu~J_Sc;WEzkS5H6KmdaWO1ZWb?|8e~!J~5Vb;I-%GpR%3xmQ zlY$JT1N`N3hB`Byr|o#()|=xiwz;lKu}L<^^-F-t6~v_s#$Q ztrPaf=}!#}HJNrJQ<^vV^rFYpPOl1>oqzPT?BT~B0|EjZGCd8Q9ebIdyH$Lw;CH^q zu+gPv)|CbAyS8Qq%=;DVyJATk}-0K)C5)Rvk|(do3Y_&wIQ6 z)Tqzj^W18$o$=wrN8|roPu}vKXZHMUp}y)xD{uWgx$cBj!P4l4Nk_idmCv}I8+}q# zds>P~xc!g0>OWqdTkLt$HCc$SFqHql@7>QY`+T}8^DZwcSXDgX{J%e}`~KYvUoLxj zy8P|a-{)E9{EHM`Wha+=%y!a}&+H1D>tApA_*vZl1Alq!>0^>{PCD}vo}bj?a6KP? zInQ-dWY2dQ#kBo)3xh&qCzbk{NlVY;FfuU7J9TND=E>!oG7?`3Ote|?&i-=p9cAlv zpRQ$JKg)H|Dkn_p6!-b_{LItqHMr0J;_iQwcIL$dasPswudMEse7*Iu@J;U9rT48l z8$W!RGvN+jkE)Q$Uis2THM6`mjG}qH?w$M6`|`2jjCU6+nwZmnceX9wHGRb@f#9$6 zji0aJWKX)46E@GPX4>~Vn^bk5FH6pt({KMn$6qGL)<4EL=6L55E3xN`6T)2WXLzbD zl!|Dzp>W z6Av!>smc9EXnwxxwoh+QY_jpzc$#$U+(<-5N zH}_3jdpc`{#+hUzp~oTTIr!h(EuEb6Ms0HVCGVJhpKjRw`<`6BT=u$q{SO}d+J854 zo>g}F3PwKKrX5!J`Iy?Q)m{N9op$F{&db>zU;O*rjAtK~G5oHNvpJ{!Zr3f7OBd~4 zJYC)Y*4(azlaX`kRqxdmcejPES-pP2k+&`i5}(^Gt{R`p=i73rY@PhcRR6ilr>Jlo zzj61{;ak7DKKlf@K3k_9zIofa81>aBjPC!xn<#g``j&viXBo47{~lUvmRMeBak$D7 z>RP#Gd^};H0Qai(^S<5r>-g{f`F{)YXLTL@@O#ef%yXHWU+@$K z&#lu;KELbw-q7h@qtZ6_=K`x?HxWC7ddQk|P??v(y@%Zs?~;asUW zOJECs@8{dhYxfkasWtmt6_@4h#CyD=mkCIPJ0 z+jO39(>)y#7uS`{mwK?{0o1$Bd zqe`aQ>1sBI$-fM_S4>`i{WRwl$%OR@f{$JPwsVN)EV%G;pGrb)*@43;8d*9%6XwLk zIzKMqtvaE#PW!9{yPp4j=}sdmNjUg@8g)|Y>NYr-8HY}!}CcggsfvF^)XKfTp|zF*EiOaDW` zlw9dqKhEqm->`AxtV=b|OWvkBUENXrTk753GTZv!i_>39ewa~J4QkC*ycChI{Ttf0 z{^zCqZ!efs*c4JWM^(JfUiaW}dEW9p3jH?irDA>TN{08UU#HeQKKZxi?Zen(KaIN2 z%-m-f;yary+jZK_JzKJ7xfo0KeLTH)`T1%E%{6Nj`pe(mIJ4BKUgK2fyTrK`>5n$) zOo@5M?Yi^*>iy3mem8t9m+bxgEn46EX5gw#C+6yWH;O0{;;Axbe*M3uWc^0*c^7VM z+cvHI-Hh6Zb-E{)m)$<~@_+rmlHZU-$SF&!T|l$CGzmpO>e9(L}~iTE6n} z);~wrP7jQHGH@{B zeC=7{pO`5%Rh6~oJ9GJl+)7>7O1?KIE0=Q~ynFllhPNxH|D4_)uOiSl%R*D=Uw}#R z`CA-wE>}J(X0#FNG9!+H*X?WX6Kx zj5!fDcG4?a&2H}&+kE)p=Z2^Z4&S8IWYud&9{h|7Q*=0Cku1yedymE2Je{sdLL0<4 zx4aJc-Ei)LU%6!@lbHX4!Kp3Z=7`Fdwuzgr$di1paE4Wf|c-jH!jt$$F_W#NbYW`ZGaOQa3k2UXD zC2G|tO5|5x4Fe5znuLljw>WcZiujI-%U81}s#d(Ow>@?w<-`Y*wV6%neRGUiUN8K} zaDM(9rHKK-{hA94-yW;7`@T(9WO+i5m(UaITs2d>E3mZyPprLv9Fbo4@aN=MnS6PJ z9sWWKGww`Lykq>#IFxg;O6OVM&={}J?ThEU@Y~GEwMogw@8;vd$G>j)dX_ge)u_*}zwKM|;Ogz5eOoR(eXw=<`X`6C$Da(B zzndHMpVx2o(JP7;H|!4V|DPqEly-^7m(c3>vWsmc%<2p1`SF_{OzuVh{dRNzc zVfU9_&+V!7j=y+S`IOmaW=r3sughwhw$E^H$l0EoYdL3Sc~!o<{5~Nw_2ZtkG1FAI z=9JkLUN^NV-_tzzxOMN`B*lW8YmX(^Za-eUEMcCfMr}#Sl!+53PI;@HZkN_}(bV^H z_NvpTHFfl!9&wn^88F8|qifkJ&t-RN7F-MAU6^@!f$ou<1!A+_1>Uc{9cm)d_n2o} z(}pt)*&DLum@X!v8<^%{E@OzUJ<>&^;x~rmz3^$@Or}9yONqU&ndYZ~W}C+>+CGVnkHr9HAA@ z^E=9}nTHhZS!!;Yu|g}AwQ`ws;{45$D~+k@ggA0|KVH#B%*sifM76W`ZhoP1mPmskdH-O;l?|7ZX2j8hAqf6vyB zK6r0hoKst_C#z^{CHMNx=S*_uX|>yaU$|YG8fGu;gX+%Tq%2ALIACUNyN_8=SWA{Qn zqjk&oq?OvfmewlWVD@3n;*TuN_Zl89`}|?vGzw_U>dXY)1}6(0#%uPR+47lBT_p5|2g}PM}Jo2^9Y7VoO%0- zOuygXaWcT~+S?6*!9fR37Bja^_go?Mub^btm8^AJc`GX3MObf)sQG6j)O0GzyuS9h zsAS{$xXs^oMhUHvojKLKl&9a=P|#%U{`lzdbNla>7rR}Lj*OkKuI7XObZ6|KaNX zD(7QWzkEYopZ#9EYU8SHC1w%nO8T>MckJ1)VM0?=Q{>JGk^kLh*+xEJ-mLQIql9~( z%)#fM4Q-5^Qd3#Cx|aQ!cw~*xnwbu<54IHle>;8iwyd74w~;YC%4g5G`}aC#L~Jd5 z^RQ7R;Jn7`OUw2Y%HER|h$CIn{J_?y{?NAM|`|(y?<6QBlHtq14 z`@%$<@@)zaO!-jwHudz*@4I*-wMBDdqD~68-{O#Ln7xYAY2%gU7uMTu^nZUgr-6fS z`ds$BTaz~N-869xh&{AvRg#PH%{rUsZc7IS2F384wrTR*5cF4>(4B| zS7U2^P5)@-W~I}YZ1``cZvS+1`@J0x-beb%@pK&J%??eCOuPNboBi6uh?w<^=NGIg zzBqmUs*PK=&C%ccIy7YFiC4SknoXPXY`N@#2S1i5M%eH8tf5;wZ;GH`p-=G@zv-O8RX-~Zgz z)-@$){y~qP_&0X0HWFs*bOb-x*B6Ih+q86hUXIywCPl%%W2KF2r#SB1@ouK{(w8B< zq28-^zW;S5dUcvpb5wZzMvHk{1vj3_+8PuQaiBy0T!+3>{ld$iE}Thw-S2j>+5r$oV~v0bd}FjR=rbPpL{qY4R-%LtfMn6)%HiS)ZGb|MR^U@_Ft2|PH|WM z-4=SM^r)6zbXfQ8#G{E@b-I>)>d-%N)3IOEKyS5P*t*~G-nIG+Cg>>Gh?%a>j^ z`M&PS?u<1je3W*af4uy($|R|$Kk_V?_SHyNQ}d^$r-z3}(I?9 zNv3E=8p9Q-3{Iya-lgx7?wDnUiLdLPxZdubZPFV_wf#2J54+`h9^ArLwJTtOmWfd3 z=euzxzQ(C?eEuvy?&!xox&40s;SZbaYya&iY*AcT^mo~_%-lOUXWwp^+14r&c_?>& z{iAZb3cru3m#tRK-L4xsDQHqm$p`JDnVVm&^-#Us-Eg?= zy8NSd|NUq9>vxM+Pn;cXW?Fdr+0&T)+Zr#`s2{C7$C`bp|5wu%-U^>o!Qk=g6xtXGF< z>qdAVbJ($Lqfv6v%yaQG3|Q(Tr|rlsE)LuN-Q{~nrR|o($GUD^s&onS6_$A?k+S4| zGEc{(Gw$)_SDU`yQ`+8a7=L2J=7@O*|4j}s{kHw9I4-YOzgb*z?EbCx zCX?`I8@Fs^>_6Uo|NZj%f{xJDT{m{^nY1|lH>dmKUwi$z=2+wk`5DeRw%G6E9J9}r zd;eLzigC}ZljLgp;d&#RySs;akxG1`PC$2ar^w? z-Toi%d@O59eEcUIv+(KF-kN3Bn||pm{-==6e#Z9o>af_T4c}M} z@$gh^x;!C%fx7M0S09gk?X7vHYo0b$NK?B&b@l>@>Ee9LR&33CDgXGSbMA_X6<+-t zw{2-Se`j`OmNR?yW80+ATuD{QZRg&~e!gg&Z8{?hl7icNeAWvY+8voHx?`F5nzX%JmlZz9+0VJsKQ(xhi?+1& zRpTU{YfkL1Q?IJ(yfQ4~I-=saXoJH1j}AS;bA`og?p8QGj@T|=UdPDG%X?zenG+{C z9>?*ozZY|U)2yVq6PB&YSk*NnYnNgObAVq%NAt8tip%5-FFfkGz5YmGm8jorAEm;N zp7GDw_O5VyV#Fx6d+O7xOE0fvjx?%|5Si&TeQxSi)jeN#ef{(5{rxk$^KUijuH2dX zESvCfO)y&b$dKD~vs**W|Bw5NmBV^Zxge18=u9D{cOsV*dZb-Q_zT z&X;@gzW$TU?(<(}cwb)jVM$Y3s+D-a={*A88B*@nY?tp(PuW{{jNkO9$BJD)e03Z> z8@scwnSR>2{oaZ5c4g()?zAqlVHb7HyS#Ck*8Qqa7b3rH`?gfAfb*dJzK^$h%zw75 zdiknZEn#n!r{z*mlu6BWFt&Q4X8U^e<~jWOa}D*iqwfcJHX57W{#Ab5sweWvN0$6O zMWv@M?ecklH%9ZG3}Y%{ zUN~v@3cU;mFQaSA7cm&y|4xehJwg0@%84VNg+!iOMuf-jd+>dNYUlnPUyc41ESfxd zuJf)JRi`|sEI9w#`{#CXzf#G`OHF!@buHq~nt#Lgm9jvu^u2bQ-BU$PHy1x-KhOI@ zv7os~V)@~15B?qBWiI9AWhk|Ad8*lxlM8D<&3nypRH)|d$66NV#Ndgd#SgCSW@}Xr z-1qtRUhw>5$@$VfkB{|co~#LOmzu2U)_8m8gB2&5%r3Ot)4JlbPf$@qv*6(wr~asE zDsRGCou)T`auWB}29-0@qRmV;FUd)q^~<%APpkV*&kOg8BE~ z7g?gGUHvqD{VpBu^`!?Y{;J-dr?*=0n;KI&Arue-RJvC7T4+bQeX?H5^F zczuF4FPoz3oz>~KxMFWyoBOdHd8Mj?3k$a0Z(fyoVp7lPb!RwI=d8y^R&K8HsZ;t3}y&^99a0=^3%Ul(GH;q3&_h;POb>86m;(W2}*V_6o zYQwHid)a;d$?j_=j#n0xKHIo1G1*^Fa@$I6?U)ZgZnf_@viRc_>5dDLJBu4X`rOYj zVwv~r*iKoqYgcstOt}2~<7Mk-=6s^3gu>UX@ZIfa_y61Mh`8WG{B`9m)BCo*-fTVh z-ws8olMgmrG=K5*F~426(&;<7`XjUww6dS&`v(f+b)K3gQdiu6CXXYQYW73$S~<qfp+ua5fNbF#~6@uD>oX7TL)*!!bt%gl+qtT9tlIq%Qh7wELGV`I6F_nK9@vybn* z(DJ}xcIWd|oS(cut&CWpXY;~VoToABvWBMqf@MeMe&Q+FlO552A%Z8!wCm8Xwo_|v z)ychM#rA~ z@qR}c8d*izYtNZK z+MMU4*5?rLZi+@Z*AhrhP^A}h+U%GO1(;}Pp zxO=HW+vcofykKi}(0`si8)t5voY}MozUFx;$A2x2>`lz~UT=8ZSJWhY>Wpa%&UQ)s zY})d*U()S{L&4WoZ#ow3_A8%#t$zBn<#s+C3x#ve{>u$cz1ZaZfWcqZF8fW`YN^++ zwS(nfwIq~#ug~Pzvuu~kbCZ-rcdKPz#CaBZ<~`psd7^2=`4q?VUk~M)N%JkAJpJ}D zNvZxNE7PM7aK>DHA;%jS{%FavU0(S-LR^L>HeR{8x<|`eHwMUXO0J&5v%vp)@aqM- zoh*K9#w>($>m}7e3$g>vnOSC%amuL!~t`<>w=#(A#XbElq0b zL9WXd?lI8Sww%lB%fc~(LHfnkJu45atxjo*IJ9SGWA?(epBwJ3wOwX3LvQ!g*VoOK zd`Y_!ap%LmNYR;(_O#}HaemAgXJ?+U%Ta&5=1HwByOyn+V_N!j&$CTWw|wjW_~&Ha zJjr{$z9)R?(mes=4*cZqQpSC8J>Rdm>3p}D}a-SuZeytSSyJy;gmHr(*xPK(Cvt9Rub(PsqJwc{)n^4#$SnNVW4% zQ?AG_EgRtZl6{i*trynYZ)1J7)9-8FhR-hTD|cPCy?tHp#Vy~dM@>S-ir>y+yH|hv zX^DFDjDOD@wB4hsOPi*gois6mW7Cm`eU5(~W}G@}urO=Ox87InjEie_9$_urdP-_d zYr_1QIcY`8cebrDTN-tHshR7v6*^~(&%Ski#A%`^@s<7Ovtaf~!UgBL4;lXZr)$1x zjg@uYfd@ZSk|(Qe+B$2&&Q%u5Y84t%*Gt!({bh7JH}bvZ?sH#eG<`jF>(Z5{la*#V z8Qk<<8~g z)(sk0!bN=FM^E!Pn677Wo+Za~(uOGAh&5(@TYC(Q1YLJ^yo!!ptT;_&@9O{!7ag(W zgoFvpmZ?pfW|8sT#nYqA?WRj>1!GI`wo@~gHEswHyX_s2w?JnXdyCtFODs-@6DO`L zj24__<^AqUQq=DYJN$eM6JP9lbB$Zc)AwfaajTM}N{e}erbULuE~*wNKK$U}iptl1 ziXD0rO!vR`;n$z@$}Dl|shq4;3lsg^=R`R9PP3DcS1|Ft+$j?or6BZp<>BWN-+iRA zMYs<#o5x0!Yi&Q=b~|zL#zh^ur?Y=PSiSwCsnx+`_Nbp1<@;XUD`4B3?_R6u{3%dF z>bb}B37LKycCJ%O^*no&`SlaE8E$!nuQ$!&wqns+HdS=jhNqT1N6T9TzV!XPdHve) zgTZ${Kkr=?ct7AEvw8l>TMKX2ZQ7DNVzhOP8DpVGm2 ze#y$``!6k6q7&fm?x5$|8y7 zn<_Iyy~K9T6gJ2^a!7nv)}3E%pV?I{gEyEZIdCfmh_u>FpSRY&}i)plWx4*m*xA)a&2b{ckp9_9p(aRLZ|sQJm#G0{%zi}t*0e?a>QD{-z}@` z+8cBE^(NnalL~Ac&(F|*{kwEg_Kf#-)hBMOzQ(ft?l!IDxgUMbWNr=$d+_MfGby{u z^QCkC{bK)l^8UV=HtAIYTcc7A@09F0W_imp#YgY5$-1aW>#G~SO=3Otec9(VsyFV$ z%oQzszNo3RZl2sugGo_r=lH6ATw1(4`216kp7VR2x~=lQ6S@C;lXn@*}OZ8e#a z&UbBjmAmiM3)|M`oye;Bee2i7mXC>t9+h1T$n&uaJ?kZq+Ienb=gYc#H*aj8X9*fP z$vnRH^))k}_Bqd64@Cd+Dg7&Z^rz0rNg>s{(oG@{PO1{yId@y6R<77$f%07w-ivgc z+|+Y6OLdjkoR^=C5~+GATcc%(GX;$h_hf zn4)d5=#On>k$vhd!B1D>at^gGS+U}fpO0Q@P-NfnI@Vclm{|B+m+iaYrL=I8hsuQ1 z%C?NtM;Ws&w0>zn&b(}1@Wj)JRu?Zv?oXdoU;jk)TnV3Kb3co>7kB0FuhKmHJj>K` zBNwF~aesY4LR#9mpUI~5hm8H7zk-+Jj`dD;-Se>P=d7oEvqQh{>IqlcmoVjT?qA85 zdj2<8=${amyW4wT+(axhAoSnI-s|V$@2sr_HI1F88hSRJzq?!ctwfF(>ulGDZ_RTY zgr&aM{}c>X3UhUwm$<`Trnh)Y@(GjoWk*j{E%ENS>MYF2)_$yavDhlNQs0|RKiR}t z*Ko&75wnn#nd|ZL-I35<`L{O54okL@!Z$GS(A7-Kh=Me`_iy)Rd&;{SxSeS*Rps%TETeJbK=YQvZ)8GPfpU| zJI;L1bKjR2a!wN~vJyf}r(F;Ku*&zCR_^YzpFYewHfz_XHAg$oed(W7H02JT_Uvi1 z8cLtZtuvW>daL!DEnoaD-Fkk!sB@M-2jg01$5UKh8rs^)DJd-#Hhsq*FI=^z=WXv# z<9(l;5_Fkl3sO1PGzdE`REcPk2|Ic2=8E0pH;CS5+p5K0@Gp~K$^(M^j*Dh^d`{-OxM8317S7Y(|{?ONl4)b-${A+5Vf-ZXPOZ5+?R>rTP5>VZsk5?$xb* zwsr2RW6zeY;#Sht+cs5vheq*k9{%=^EvNkBEzIhL#h6rP_V2Cx-K1=&`&Ta3L0Ppr zV)42)2PP<(noC{1^xp9OX`O`MtKOX2_HEl&N%wmuy-TMaJ(ij(WD+KF@se$h%;&8q zYW|nEM~25wyf~*rJ>=f!v-d9@V(Udn+{2K_oJ%K&WZ~gJ(jhp{&DdT&6^pBc@?!xOK`%bI;-?ePt9Gmv5Z_*aHCI5NS z`Z#9ms&iA;sI)u?d9U&Q_qE3|xi3x6a^}ZhJ#hE-b&0ra*HTTs<#RoB=KW&P@s@ch z^Mt$q-Lv9Mi5>q6ro6YQp5R~iUo&}wDAUbFAC{Kin{;V2m+K@R|C>KpK7Kv^{iA;V zZq3D(i?W*L+tlANN$I?N?AfwcQ|6WGEPT~dHu+c9>e~|yAHIBA{P#`v>%-|PB8yk; zcyn!ws!MfL^<}e~8+*2BX&X-QejK@bQ~088^@`JdXJd9ICFcBAmTj(j9kclM(icr~ zGX*ryFL&wreARoE_m^j;kvBeqb^z@<$+9L@Wt++M4`2R?O%9km^}S7DL-n@xPmg`| z_AUM=e2@dQ)YGQ+$r?K~&996}xyhpZGrsWiAAL0ErL3vy*|jTIF95A?y3;WIA?M?7 zhs3%M9c#OJWZ#yAToIx9Od6q=f4fb8c6*t$cMRA4DDi}e8@0G@&AGH{-n@A)KYTqi zzqsE2>#Uje^MB1*Dc7A@n_Rb7a_`9_-YcZe%h{aX{5#5sr&i^^vS$@<>aJz{vlgsd z)WQD$6>p~g?xic+&OI!A>}MFp-R@WZdAohpwEF$;)2^9^JlYZ&n8K;3Ak=Rx*z@Vq z%RIYZhtpq3e^I!(cIElUvleLFKiMq5?{Y~@___$E$j0t{f$^_6H9TFE4EKHeVfRVa z>|XI_u{(aZzZ??_H*K0I!5n8l|M$`EKW}zAt2wOge_j0jZNk+_Kb^GsRy#%RGtO;a zcm98ocwYP5@^?2{PA4AC+jUzYwYjWy=wUQOe%b5>FrgSTNj5U z)PA_rkjb%k*_H+$Ylr!7Brl%+&tqQQxhkpr)~#>0y0*`LX89&xzN8g1eFJlZmG-IP z7q-VYGiLiL@4s-?x;$rDQR5=H_T>j|J@~!(cCMuNv^J&8ASLb<+wHHJrko3%m^v*? zWNAvY|J$wG^Ku@=|9}4dS$@jIosZ+?A3fY(D;&Od&Ef;8v(@B}fw%Dp-#uLOslIH} z>x%Y5&LsjnV)^bB9(L2qH|zWNCi|^vpNg93Jy~)u%Jb$m1_q&d zpmPB}zYXJ_epYhwQJy8~Or=_CJO0hhx}nm0wY0UQzeQqRhsy1+xR_v8lj+tg^)@~J z*t2L=mKVdkDv8E#clM{xnjPnJ;N90BFXcYYoOF7b(;4xl+7nj=22MKv-Tuq3o~+jU zrI*#_SzK9GKEY_0eVMktoZa!Vsp{0?Qaldc>>W%i#YPvM3=J3y%e>h_Ht!aDez1rfoaZ*ja zYNvt9&ZAl-$%$tmJn6CYLT>3z~@>#8Jkz3H*_gG<~tNB>>`WoY$g|j+Kd;MmZ=LDwA zyHPyLe$I;}J6FxA`PPOC#Urv!DAW-S2;S zh3?t(%%zsWck{M>_+B1+m^uF6)XEuQlMW<4-FSC-#hcd0o3C$l^;{>}ovHHiTdwwx zQ_S0!{*BokUFCB!ReP29N{urzYgz?L`g&g1FgDvBN!`Aw($9EF&z&tH3}(U)Onj9E z`!_FAo4>1QdSUfp*DcSy#8vaSA3uJ4S@FZn2RS0I%$Q!xOng7{ytM812s6Q+7f!#X z-zxN2Vf7&==MlSn)!s}yi>b9Q=dQoBn?Eyim+i?(c8Z^6tTt+%U)a25X1I{|gz3*8 z$iLs$SHJ7`ub$&y*2&H`POpv@-5c3(d!>C$S?wIPZlTcR1tCF_M75Qzys#+~` ze{(JG^>vv$7JTnfzhaU)x#6snhRkD^-wJ!*HtVd_xMscgY*d^U``M@nuEwKpeWWEl zMVFbsmJEmva!78iY&o;&#Ga3E5rqFDto} zm#>^>*13yMO_zqGPQ3L(YOcXsV+BtkZ|&}9tyeE!i(LN6AhS%3tS-f#d<%^JcTW==oJ(yj2t~>IO=_Br-l`};$JCm_j zwDoh|MnAJR=Ddyhv0=@3Ct3O@T#>(&8s_`%_@qruJ-f<9cgfT|l-<6e^luQyaigVy zDO>tv%e3ojpO^jnUAsLvcvjq`t+gjsb5Ea|B~ zWuM?VzRvTkx{53xBj$*1{keso)xugJqGpYwcx}e2Gs^eblowCF{4{wc!-mK_tJ%ks zZe4I`Fs@zveDC(7dm@8%olI?Ox=)|GcJ=F>O)F- znSAb?qHWLq3BQ$DTpnxaS(o44GLwH_RkYXN_dRA?J~{n+t)KTi*uHw+{Qv(t_@;1A zkyKsys>|DZHE4|E)3(><0h3&nI~Uoo|Npb>^@hllegB>?+KSgLbXl2F|7_AGCcA>$ zVfSi3i%m;g5b<Uy*dSFx%6^3$N@kejxxd(?FQvv2tNr^nCBE6?*- z5}!Wn*sot)cQk{tH@3_Y`Dt*Y_>orlnjimfTW`N%c1f%6fBKt>n%=j^3g3yV-@R9q z+07Mtby{3luJ}rBkJtqV4sZM5Ajr|u!Xm_Pv!)_a@77d@4FL&9xo=IKcKTh>#cf;x zw}NivMVoC=_09LZwQQ$V-`gKXkAGH3^uM++p11M!mcXLAps7pz-h8Y`t1I63x%T;# zuhd(|@J818ORwfRFF&|va*f%RE05CStvd4mK4bBV+q2MTlJ54Vxic75 zIB%P+JvM#*?WXf@UYOPT%-v_UMkMRvEq|lt!;ek2hUD#AlU`7*v!?#+_7699E!$}m zDSnRYd8J&B;fb5#L9A+CLUYWt&B}imO8F^G6G>dT;EqHxN7!vaE-Qg<_lbVpZJ$iL zR`o7=dGt&u^MMkRMh_d#{^Ow&ZS0v7Hh&UWwZ_ZZem!@twVe@AD8S@6Y-JkYns9+!^HRQ#j*7AZwdF0@m;Bk?ceH~J)5cG zDfjur+@bvvEbcKqw2S6wHqrX85OvB1@u>!S?&yl|=T8>`n8+* znqfgbS2~;9hif-i|9HMN@rwL6=x4YUdyYkFfQnG+E;J9T)*9TR+cw| zGep~YLu$d}gCcc>kA&(fKM5V;KYUa1@}KLWX|N^~>Q0R?>b0LIe?a^FA8zsA?^DzhpUR$ob$0IQzWMb}A6slnzuffMPSxv$yxjG* z3#Lt!yk>H3hL+rtqI#>YlQ%8TF5Sm-s_59XhVbnP{)R%CoXz~pKHQr+yW;mD2ETZD zwrjc1&i35~ZjX)w(#zWot<_W4_x7u2_dOQi zvf5ZYSAOD&oIJLQg=@Ah%F%6{En51pI3(!G>4_0Wy*GD?9NMVTwnEkBs;VEg66ISuYY|E9Z zi&6nc9&EcE@K)ed*OIe6H7<`lj|gQR3CiT@bvKaeQ<~?Mtf$JzQ@{~+r9viS)k?R$ z=Xs|Gu%?&I*1C97Z=Q&uo%Hd!8x8Vod6LzpF*INDS#t0FF=JlS4?Evvtoj(TM*eTn zlMAQwACxcuRm#o#_Fdlb`*Bu5AFrQ1!Si^cg_@FKjO@$I#)(cXG6s z3fp<{LGkn}tXV533#pztGPy(D_0HUYU-#ORIhPn4#W;!9=vmLoUUhNK-h*Y2v(?aJ26vkrbKi758C zyU#oF(AFEJ2d8TrC7(Evb5DkS-r?Z)-a03X@*=!##dK}HhuB3gd#Ai1=GSEA1E23K zdas_kCE%PdTd1A4E*ZgAn&t=aFO11_cc)!0^qWbiVJ&~_o1lAQQ z&3in}=kR3p>Nl&N8}>h~`Z8_m=5z7+bLA^nS>{Aen>bM==iP_LzdS^OFJ5_^yQI~* z`U2IW|&`W$qH)BTj06Y}QV&n3ExL zdp8TW+1AR5UP~wXEl=DSQR3Yqrg#6+s+cslE3NORFUo3CU{HNt@#jhE9eM6-ze~lO zW`7=>sJj(-WODx+?!~YFh|T=G^z<{=8;dj+sXlO7ajtdZ$skUhvNFHKIe34*m`PxbGd42qh-E0#kn-PKTlbo z&DWOL4y~MH5=V0WMdhpQ3|q2JJ$12?>QR=MH-)x=lecgtJuQ59tRpDo)YN&6(}dYQ%XN%5mox*Z#jEM^kOI-AMRbiH-nH>;fZ>s@#6=HA%2ke5+7_6*0P zjkeLRF6k +image/svg+xmlBoost.Python + \ No newline at end of file diff --git a/doc/html/images/jam.png b/doc/html/images/jam.png deleted file mode 100644 index 224ed7914bb5a31a407511093500aa1fe9d9e571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3884 zcmeAS@N?(olHy`uVBq!ia0y~yV5nzcU~uJNV_;xNjW#hE=bLrwBlWk7u9BNWG%WIzG^?ia{Jx0?d2cu65lo_tIq4R{ZpB|^Gj6) zSQHbUotHf@zxm;v$tNPW%s1Luc2<|6?FW0^VrZqF7Q%Y`1Ew|lr=xYj$EHQEz3mDMmMpd z>ejiX)97pynn`5kW z|CRi$_`uF-U0Tl!|N5S1TOOPDXU~o+TYOinI`YoqQ_`=^1)VOOpVS2UPMZHtf92(U zF(~lpmyJ~=b>FwfdM6w>w@64vPjkD9T!BlS8{-PeFW+C~FR$XwJ;(0LL4_y0b2(bBrxt6b;~fkM&QareVtIlX>mx{c)k=f}URyJiaR zcRjOF;pM%D1^TaQcvl$+gnzii-F1xrciDrp+t{xBlnQwM`lzw)`c>DOBDhY4PWZnt zR)FQek=PkocKsFVcH$fQ_AtJdIN(>n{=t*q-~sQq@h3+fzfG`F{L=O>KV|n{Gpl%-%i!=JgyXArJMZ($hYaT!{XP6Jj;Fo) z|Aw2nSEX5*73

    m`0On#VPL z(`-H6pYI}XPFPiH`tH!Kb;Un6?Qy%i{QJk7Kgwo3X;m_c?qD_-v=DX5Fi847WiQi| zOos3Fb}>PHhgF}RNnUp>c14!$A=P;at9~2T{H^G|>zKLjeb$}USKF@hI=QIlzxh#q zizPj~PF#1{BZ2k33I*Hv7cN|p85}u{mC-BY{M`GWeC#f|xhKE=$1~Zz-}%+flv{nO zAzQA!X10lXExuOF|7hbTuh(TazbR^dS1j1ZFPr|mLf1Mal5fVO{Aq#4#$Tr;zxmgr z&2Tk$z4W)2TkUrJW!Jd9Nsd9l=ZJXQ6U|dc&v-c$NiiNfE7rbfl~~=cck4f87pnbB zzwxyGdGa*T8``Hg?O^Jf@%J*Hy^^P9l@*`w@6|HD8oc=bku@x5{FpZj9XZHxpIvcqk*@0k_3 z7MK1VF?R@(?6(kU{eOJx%j9*Zwn)#MDx&C_m2UMYK&1Nq&xrca(yxGtLj* zi!1zlDEirLvrxhF=&#zjyKc|F+jn5|ZP9FnkLl(zk4zPwv?pwS(C~EfS^?=^WwTih zf6ZKrI?Ik96MC`Bpy}Chxu)gIf^6kLa?>1gOd6-k?|Hw&UM*v--^@Jgz`}KcQe94a z?r{G<%>Pk3aLKFMvg0@HTm$acHC6AD{P^V&pJIGVU(K}r@xMJM*eCEMEiNpH-LtSx zZC2d=tzz?Lae;WhDw+I!Rg;oAkJm~%aGY=cnbxqg>e#7;Ea$#CF7dTseiSf8d(Ogz z8ZFQ5J)#-!R;o$KFWPUR_27)kiPyU-n7>A6hvvSM?^t!DI!o(eWcb22x0h{E6l;iJ zZ|b}p9$34e@v=7;&s(wfML!j8f19;a=XBj(hL)fspAyVF-Wbe3XQ=O6pE&9Kr7G?C z`D zi(M-Gyp~5WO*p^fP>KxWuispoj6?0-O0<+P?6|*~^KWzD)Ee82Vn2^%Tj#6IW2s}A zoUUst`zD_CY*Jowe`4WXJKw6zNY-mt z^1}Kv&wO`?lCUuqJ)jWeviz*=#k$&R2TlXert~F`m3?v}xmBjB-fvu|f2C|TLynVR z-Q&swMQ zmE`s2YdL?P|60rSk!1_Rgni+BHLMTMJePR!%gK39@DH!pjFl@6+1v0hDE%sR_+yP- zq|WJ0@zYWpZ!xX(J@cU|=~azlXu~Z=H(jOExfh?TR)3>o6t?G8^IqP#);TXV%R>B= zDuhl5R$L2}SX90BZiLfTj*{7{t|_l#n6PTW{ChK7!;Ru!Z)c8QdHO@g^}Re^GkjVZ zA7uQSYME@fOzxh@&yOD^K3C+J9Q@<+yEf@rzla1-r5WNE&Q7<~eUV9&lNMK#@Zb{Ft-JUJ0w%n5U z@tM_ExU$J}pX_}8C8qPGzx1lkc(%7LTle}F;TfWJ0*VR=nL8t2&XAj<8E-u$s$G@a z_NVLv7VABaxF3CA`u=gjT9a4yCvQ#cbr5A~6Zmjy-?47ip7kE~e(qd0a|PDAKQE6@ zuX(qZFYmzjduL>OUp}As{_C|zVJdAeSGIWV`%)XTmCg2U;FbK#>l{jBB`)gRxxkd* zw&&kMo?TN`SC#qAWt_3Feri!)uX@F|S#cSh2LiX)U#vVMkSn}jUcO&)S#7T`zx29~ z58Z2b`0k9TwVL5-^LioAy!m-6jp~DLxW(3UoSJ>u2X~T z8cU7pOQ!PWN4Xy``YH3N_@~g)rl#E8RjGMw(^slHNzImXdmXL+_@(+(OWT>NtM_iT zsK}6KaQ*!Fv7w3muE@1FSl4v2-#948&Hb0_aVQ!;6cq48-?D-TTb)VXPq*y z{9$h|F zb@iUP|J8e=&WBaG5t?_MYW?fhO$d~{K6R($Ri+z)47J4lAo1cLc!v{A+|dhx);1Ub%$r(>|MDWEOQUM z;hj4trY@s0Z@%rDeHE4r(ofH%>E}OkeE<05Ws@hy>eJ_czP?yoDQADt-IM)08y9^mUe%y%zQN~xn8UO z;r-;j1{PAOtmhI`^ZQ$`?Vo5^lJnE)FXOS;BTSwwM;uJF`-&nQOeQ$%aW%bBZ0PX~ zw?1)4NaCVuyTUWY_6oNJOeY#9C5W%N$M~d2FG!|%fxYtTwG$?`1RTjRk;>cDnZ+Oa z{_E=N>sPH_^}4>^oA>Hw^fD{QFP6dd8{E z5?+0_u<@X?i&Ps^Y7%ElZ_}=>OMA94uhmL45D@LZ>prE+EN{X6wcV?j7#R*-mui*g zvpDAvV$;TSHnm5Z!SvqJ_Sg{VhwVjk7Ea4vdAUy@Z`$$Q>t63z_j*dPX`ueoAGIN+ zxhC??jY*NKm=#{=6=m&GVOW)P<3Nc()yk$scMgAs!*i!Jzgzd(%Bdq(@krjy-uK>4 z7V!*am*b=vcC33HT9`Y9@3@FYm;^_V^6wA5*=urY7V9M{teEhv@ndVt{cawXzs39B z=kHkeTC_ITNZ?XjbVcnvfuvvWHDBJ+unpr%QC)Ob*wxQi_g34te|c{fTOHtGVGuZ= z@NV55F%E`+W3f9WIX)D(wM(cVvC2IsIZaH=6;Fgb*j9Vv^^EP)#2E;B~tN)C( zNk#g;N#lZj=?9OM$0^LX&US{sWzo9cPl*}w!ZDOgmT1B zo(0v36U_uvU=G7LhFszt=4M} zyll)o?T1^X@{Si8NVweIb1$(udv|W7u1Uq$;){(84C?B_HXHWN zeOaB8&DzDsvS3H{;v_>64X4|;lrEjufB)!tsp!(gGS1YOYNvi#8OiYUa<>^VIYw>y zsH-fX!sh(hK*Xa{+WJH7{tde;7+P7p#rhtbSV^4XVbRQg{9C>6@ibA6OD9jVd{6oF z+iN#p^QL4CfrcLr8%&n9UPu=TRaBFhGS2>xSJh`?*LfpssZ6cTy{Ut2=m=#^#L|?t@X14D2tb-Ri@;cO54>RAs&C{ZK zEFdCJuV-J*PCEtd@czHENB!lsW`VDBxD%?5hyi=Q^2m&b5lg%*ep`I7u1~CgU|rAs=f&@X^~R@eFP-YraYFBQZ`8+_XC?uc*Vf51 zNN}(;EZi_9$9m$k+!AH&DY~JJQ+e2;Enb}excI&MzvwGn=_^kzWC)Sw2~AMg!o0hG zn$Hbiqs<1n4;>g5HGVjEpQ--K>jU}Un$2$>IDLF>t^j|!)OGF~Y{TZST4noPiTTMS z%j#7p-Aj&T1{oL#>}uAYHN9ou+M@*)Iwk%KPn=39p51-_&F%e~Z(pT9uI!4snv?V3 z`i`q-BCqWIG_&!7E~rwPnDub({<(TV-jkMUYrL7Ir6r&f+O+$_gr8;@mRp@msW;IanJKJ*JKW4JXFtZuxe^-yx<$N$E|h3@mML|cRgRv zhVH3*s`0}iOmv&1hns5P5xteu93-~y^}1mD`1id&0p-LsQTpC}$|lEoTAn?gacI(o z<04)6azoNHE2b{LD|c?q+6T9uF3vPK6L@9ou65lPGnQ%G$au_9Jjd#o*uC4g4y8Z5 zc004>;Dae;j#~`c4o%|l7Z1K%cIwC8>Ur$fOVhV4d@(or;IE^hb0VVy=ik0>eeCo* z$48&1hRAyGv@{t=>}pNsI(@jiCZJ&HgI#)NW@c$jiM7R|;%<9A6c`T7+$w7G_FK~Y zdu&tc(fo^=7G` zws4NyTYT`VOpHBSQ`W(Y`{maCDr+e73C;~t@Zf3tmaI|I63O{vpZ=lq)*NBR>Uzw6 zo5h1>S${CO>Nw}`-sC-XKRwKDwO({SwZcc~YExyNsnnhoYdb;3^R3>67m5md_la@M z`?=LK2b2iGjcF1CTHmA6L%GA6d{j-0!7;_JE52U{M`omy%Azny|NeV%hrV#m^62pHr%w1`)XVG_wT0FY!0uEh1K={*|%nM&!t^u zKQ)Scf4x>~ouT{ZQN~rL6bDN+kz+H;uAV&;qZK@x*)hpr3%m0|)}XS?6>Yxtdv4~Y zcwLUq4^I0o$gpQeC9}gWhtt)uzf2$G=MR5mrP ztBP?n65lRrdQ4GUNFn2oZesN5sMb|Xj(PQe4}3H8OS`cuNsy;4Em>pBjE!uLZB4&g z&%L(ta(*ATN?V|0+q-qHtJsxuz7#Sud=23YWp6r?pwO`JLe{a^wJ~{X-WA=xQyQYW zH_9MnpM6j)$hjT6mu#DHaqYtcGZr3ki12u7z4DqY2g8TWYjy9Ox)7k>w0pIgu=B#d zPu7)8%en=T+w&UjHDyaP|H3Cffvxy7vn)NpQ_QqNON(`uyqDpT6q< z*cY7kc(%Gg&HeiYvDdRdZJk==cqHJ3ROJL7-6N}iv7XMV>CPybU6UJP)8=&iOIDow zg)p}nR;4k{7kl$3_U27q-`jOG;Dtn)?99I*~ejwP~Pl*}=lB@1<==bh8c0H$L>5^mHUx3ZLS@`%DTAn<`Rnl79Kc zZ*qUW0q@s@|WXPa*@w$WIlXuo+| z)AiTySAE)4ci7v>LZAELewCKV->PG-f4vdw13(d5*p+HJy@pRqRE-DZ2BnRLa5r!`N4QDf0n>PAq9ji!qo1N}MY^CAegTuHSeDD$Fc5q+eWh@S1Asq=Uik z7E9*doBhlu)mY*YlVg%WK(K+xu7ldYIM1(HyM#}&xGZRn$mFrpU#``0Z>OkD{nLdW;=z-+7sov+ zT)4Mb+hX&!pqCDt#X|1wIiAMJ@{;?&yOZ<(*W@X9@UX3t7GGc55_4eNzMWAw9M6ZJkx9leeyIXkB`#W5EJylt!vM2uUTk_gt_g2?=4j1-r-`aZq*WWAs-)rmN>{>VZ z``3<7NlP!tCNH>=H~qNYx<%W!HO)=jrn%hn+xNbU(cDZAGPk#XJsS!t-w$cLXj+vu z_t3w48|@Cvv3Q+v(Sf0Xef##p=P8qZeOx24LT`gP(uJp^;kWF3}e(u}@jT1*ea_RrT8aLW4_?j&+F;KhuBvxnFkoYHwq8~=UYz{@Sf!DZlXJxG-Gg6-ad-AyytR?dR)DS9amng6UOX(XnA#2r8SL(Rw5RUriqMA} z_KUa7wbQUfBfp-apUuf?77v?!!ATeXC4W=^XuAm-vbT{)+H{zp!iGCx+wQhg$ud3F?X?OyQyY7KZr5pH2#8yH zz+r)2($WjMeg7JHSQw;>!Y1hoFg%Ek-zgsc-Tv6szx}DMj1gh3rzO1|K8m)~N!@PT z=;|uf_c$Uw@~^;w&8#u=`x+f$j|RNh$9w;~t>O_qfga@>EwLWS_rJ@&y_^?Odt&>E zMLU{bJ06xTXV-UD_MCU@{uiC5wt5@6<800oB{;66zOj2HP&>g=h4~<>LC=FsMD{x^X{FV%<;gx?&lZn@M>&yh&}GL@bHsF zYmVKGIiXI|9607*zG{E%xZx>*>#kR$qZ!w+ynnBF<5ZGvO?`55a$3zo4ol|5GY$*P z5;aO(ZdklFJ9K`xgTb^9YuDddy-$OE8lyt4!i|=x9x1C{e`vLHo36&t@b&DU$Go1& zqR$+@`wOlWJN3e8((Sx-PBz6O2TEhlm&Pvtz^$akxVzu#&<(w6mG>`Fr%#&Gq;=Ae zg<)M-;FH>1_Nc7}H4Eiqjx6Q8W*+W6`_!uSDbr$I?2npAEK%Cs-_WYXw*0_p1ufQa zlk$E!4n2ct)r{9dVtgzPrNO<=ZP#UNb9}RY;g6YaYJV5Z+mdoL;1sK%Xve|}vT{w0 zso}rpFuNQV`uE+wMujVmT-Qlc^(y^GnMBX6f0ORVUY;F4WhF6)`7aORAHR!8`u;&YYfN;?f$J@aqR~kVh;tpSl4JbZGo?S>FK&eOWCblp2o9R*|beQ z=n#7_;Dy4?QWa-M`IvR@S9NXOU*3~Fy_bKcc0r>+Z%q^4Iih@0oLG!}d_`EaE6!1n!8f5JaIpZ@;O z?v#DX@grT0w|W*{Fnm@fev4sq^w+IAT19uBtrT|Tuql$Vs8y;s@KV^(!{oxrlPvM& zv3D$IF8L?N#%#*yys%m(!D^lY|JjwRUuWFAcC&C@tX}CZADuGPQ1GHbn(lD*311|RyS|wZ#MYx zt)9*8K8x8tnLVi=?p+hJ<39W#Jvy3)O^MlgVfCDC``+!V;{cT_+t%+^jdyyIaqi>Q*)QgL+t1sufBD?Ye_9Mz{JF*M@IPgtXjA7w z2ayMg*1X>*37nHX7Q2Jvy5f(6x0v7W&w8#pyZvQ`_2NUNu|M|df4BS8m6dVExvVU{ zRz%u=@64ACvVRZA)cjt3SzqQJo1G2QzRw%}N|)QS*qFX8OY?P_<#54v!`|M>l2UJ6 zQ}&w4U2zV5(DkhCf>gbGM)}=%j~{Z3JasE0hNJmzh%s;~}>K6Di)q6AC_u z2z}Dv9di|YoHGOlASLSWt?p$>sV8zKkfprXR zNsZ4>>{@>Q<2SQkf9>qb<{UZRs<_cwsyC%P_}RK;I*&O8pUrBK5#wsPzq^ct8=DTrhiAyJxs}{Gc5h}Cy`K#;7(o}NryX^i0wu>b=uCVd6c1;mwTNc0bllhOS+V#TH zJfLAb{=EFr5N?=&_u%Q3>(mGv9zGu(Ber(yYxlifLM`lT(dw=TL1zMcMGNtdjHiL8@ z3eY&|?POu?R1tq+S=KaPe%6F4wPLBy$0U7MNyuJMm-|f$S*;Dw*Y*%FSLH1+sZNJAXyZlaqBgDMT>ENk3rzD<7$L|bpJ+zs_ zPiFGMgfRYPuFp=lhaO^>Q6}4~=Ue3KT6^m)>-#;m7QbD0K0W%4H{pj{fa#k$jz16X zo;W;5+Fhii`VU);8q@IaKd4N z{Blk(1)*A^hRzFB#W`B+lS?Cy z@#cKu(`%3Uc`l*xv#`%=@$lwIkDKD_dKsz>rd)k7>!5%*$0S`)>NDYKWxXQFv24jY zB}>!L`ZG<P9j{=?hT4WlhjtoJNpzv#N$v+Z`l>QeE4y6o?ka>mtupD)hGI`@|4*EgBJBhP$# zF!#WT@3q@Eh^t2h-TAH2zKq35tZM3p2M>%Eur|H1l8T-6;HUOa{(~EL8oXj%zA@JB z&_V5Kj4xi8?rPmFsuT9cBJaen)9L~cJ z9ipFzS#H~W;BRNgG+AfG=4Gr+Uv%DBFIy+s&nPAr!`8!?W;t)ezQ~yE6VJ}vI`zaa zc4d)0LGg1|Bsg&#|6aTP-Rlhx9g4ktd07;8MV$R(W5CoF#rDa>Q!|wVX^io`E9aZ(}>UV( zoS&Hdo}u7SvUz$0+jPd$TxsuLojtX?Pv>?{_0+u4G+@`;tdte*5vou4!@ zdG3x1UB}S7Zt~WC%k2IaY+aYm$FyIirI`J}tLuN>A2?>rxmhOWdTFb`<<<(qfKzyE2xvpBQiV|j{2#{6zkyXmW2o8Rud`uqvQ=8zPH z6AA{)W;2C1{a=&6Zq{SYxI}%wxzB&^OJ-?q&idaLWvF-3>)@g{d5aevUf`29)u3h} z|M%9qhqt5NfP3u+{vF-CyxI5Dna5VrHWBV;m!5ZVa=qFl^Cs``eQoE1i_T~*%sp;= z>zgGLL*XUuoak4^I9zs?}$1{PdyrzOYk|;Gg<=&;OUIpKiV#qRJ4n z+`xH?N&C*;#)Nb4%eF+iyXIsIzBKX@=D4_ai>2sPv4^M1KdsTpdzJM>X+zM3mQbgM zw3>o+d99b{=G%S)S6dEauiN{o;kO=@x2XCPK{+n zvPQtco~+9!fBls-yDq(D<)&1PDKGY}UAyM8U%FV|RoDN`)1y%G!mFN;00EQiYF*xv2WUie(y%X@e8`Kzs0jxwgVF*O~{a4&^LLuw2=lQIx&#x~i9g|GVPin)Q>v95riWb7njs%R0T$^^I55 z@*OKzxR%JuzL7nz=Qmk|g0CMfZHzUwKVO<(t8YttPo#>}^b^URs?}y7OS2 z=auux89WC1yVkZ!C2aG&o_l4>e9^7*)$eO={HXW3lKXgoMg;pYp*3Bzy0S`NxlFt1 zD!0JwlXBFIjYjuQ{`#A{is@3suK`!6h#t({)yS}ggPGxCT`MzD0T)+&=-CYm|SHmCEJH-5L@TCVuE zZbkh3dsm+?a!swgXmn=s_Z|LMV&pFMYo@%)%eyUc<5D{lS5C+#Hl_Yx$up#l)C}`5}o;9gVMd`AybdtCXoYp_C^_qvh6tRF*C47ivXUSViZi zo134!R4yM{xG5@nhP&9S*TP*={sEh(KRK29^5k!Z_lp-qbtJYqozQ)9NXmobA%|j& zVvBsPzQ^9wTF{$KU=r_ z;H}oT(g!~DdQ1-#iqsXUTWHGFe873b^ZJ?P>y2b;6kE2xQGED&-|4()cSifx3<6?4_wsY6LsugKD{Gs00oLtBfH` zpt5w;?apMbC9^F9+_gUGJTuPLuDJD_@hh@d1t}4pcl3sMXXHIh1uU_rVXJ zMH_be?OV#t_%|cy`MsO#zx$u-JH6-s%QtVapKDL8g!sNsJ5DVW zXnLNgeA(o|wItBA?pIFNdB=0CHg9YCdiLrAz8}ZsS$Jdbh)HOg?BqVl(;T9>!19JQ zTfy@$!pr@RtpDzjT$KH5bKR4YSzTv%`PY2^v_C`LqBP#&=CrB>I~nKf(m$}QC(^x8 zZugF^<##t^znXm8@$r)Vr4BcEg;(dD~K7STRkr5vh5% zW9F$v){B=FrscBs$Hw&TiIwnW-+sA;=|Yd_qbP|tPW&yKmp9)G?VrOoZwEj7_5O|f z%jf*-JbTKM&+7k!yI;-=2CL2h`Rn<58x!Gk3sZU7mcQd(aVV&ri7QUMpnv+`m$NQ( zsA@j)dFGlD>ls_VHG!AeQ(m9*{g&-$oYpfpBikSScuQ2D}xPALuuY$|IzgIJ_2UfhgyXV8y zyI#{03WEPKTP@k5`$W2FVZegPZ~0o??y;V9EuQy0anir%ucwq)8XsDxw3DlHRlU%S zDvldJiau-;eP{5y?BBuStwMi}%eyo`{L;B#;q=QPd;1sV*Z)6%!2VzK2Z_H&tSfo6 zE|m*LH6==fxzAk|?iyOM{95P2fDLP6Jxa^Vw{%WlT)occVeF@OXT;}JH@l|(YTEew zeV46=#@iiDtHc@>7@9LbJNdh*?S9SV#}dm71g^YUKjm7w^ie;#g#3ah*4NW^|B>4I z_wS-gY0`5wqzd8 zWTuUAv)P=c>H4gTwc`?#Iag#Y$K%XUc)8R%b*1yenL=WZp1g4?>e}0tbj9|B&dXRa z&E|uekFAo@MHw%@TU7GgNB_xBZGKL)MtdL^?iL+_yNyy-6w%>9tzxjwV~XhnE_+OF=khrWF?+qP|+(DD^xd;cjHu3z-; zTNN_Ux0KQ*CG};8Y=dv+DN5_cmpPSItiFYtrz>5(*t%tZxeaeiK{iM2$LY^2mxl1%s%n13eDHV1tquEXcid08h4cLSxTPq!Dc5Id_G}itT8$}&H*`u1TZ=_g;(s3e`uN2)0e`pi zu`_(sT783k=L9Z^`*7_~=;6Y;4|yf7#SyAoQq8>I^fu1PEd3uF%flAF@AB8JoV%9t zvo4rZ$f_`-^UASO?$UEsT|D#VSsC6=O+2wm_HB!hF#ef-P{Q7fNV-f&|(B>bIKyPrRQwU*-hhWx8ZQqI43b^m_P zwd+P&^FiH*mrgx7Rh}|cAXv9@YK(8I1eeBkZcYZdGdI5Lvd{J2IiqLJ=kjo~WdfNs zXJT#cTk=TFx@g|KJMgVuXqocPb+aY-9#%BAwQdi2&OzxPF7Obu<@-0x&(Ag226|K|hW z%<8sno%-uz>AF~n*jX-SM^|S>Wu*xC=l7(RcgsAPn$Gv#|J<8jnycBam;T+d{;zanUyYFRSNH z%PNySJA0Sr?~QY-gWC^Z&hwvZBKG{y3h_PLD%%?0ed&Cer1zPZ?@RhZ;9oD=l^z}aeV2P*C`lxUZA5)`siJO(p;@oM*=QPiPdE|%hzV{j{ENt+x)I_ zttuZCyPdYymyf1BK7Dy#PGw)CoX~PVhUI=KS#z$Nhc{oZ|84Ml+x1%yD&EKVd=HuZ z;-OBx`{d}Ges$fm?j~-F(`%Tyzki1GBEK?OMxNFVtyQcGE*@O)??Ue7pwsW1f{MTO zZf-W-{eRs{OEx2sl=41Fi{cf@n)^RmR>l9(+3~vm>Do+>8~5UVD^#4ZZhtX1IxsdQ z_uH1+v)hyf{^+E-Zg(&+N&OHxZ)q;~d$0TssfL9KD;7mDNXharG;9>)3N2B5YMH8Q zdb^TI@0Q?h+1^fA!q_nLL*LxK+ZR8wFbM3MUp492r5l2Ww2Rdyz1zE1w`SU>fGUO$ zwe>OAesVvnvp+2UYht8F`nB~_>yH0^^sINm#|wKuh5gf2tNWn$;pOworu_NxNq?p1 zZ{M%ITunc(t@(7izkBnwO@?v}FH2(XYUdxd{k!6n=Db9Kw@eSy8mAemeSL5GW8eL) za}z|vxWqz3xg9oNGnnz;xlhkmDgJ+N{O;wmB0aY4tFE-D6?Xk)*+j7>$ z+8sL8KL4@!|EKl|Uwi9kSN=XJFaPN1S?P+x&ur^r?YwqfKI_VRU>5ryo6MQ5OXsud zs`j7eS-nc?OYrBa=V5C^V-KBQxA`$AgLZ2~Xc)Icu@>9rs2jCk11)Z?dUkx@=gC3u zH(fOouiCoc{fU|16lQ<7pX)dC%KX<;w?|p(mZVoS-2bt)T4`#u(DzF$_pZ)fB^{7= z^@4VS`_=5}{fqv-*_L&{?YHfzHj7PbJ+E*ygn!|Y|NP$iWqx9MMMJw^ZRRrVt*1ko z4tObsO})x=VU8i&<|qU9IrFQ2h?5cKh8`4ma*w zAM2iN{^5E3506(43{8^B_g42G+W$1+hm*Xvd~M(L^(^k0dcS^GzezHP6SCBg;@fxo zT*n0F4{iz!myH#5q?!2yeWJgL?Yc1`_xtTib9TdSGwbcwCw5MCYFf3Lb%CU4^PEma z`)jLNzh7dh|218Hy4AJ?@8r%}2kgwBFlSMgHFqR`OR##{cmJyA1-n{Zo8P{deSD;S z{^Nzg@m`{A>n>hpKk%z|Q`3%*C-+DEzOZ@LN~vcN_hWk3nh39AQ^@GqyC#{h@Ojc1 z?w0K7{U5Fz-fwWZwX5s6?W+R;GZyzH?6~?q{gx0jL(TpB8mo#7{<}-f*)M%>b^ogM z*8Y1tul_GeUs-;~`Y^Lhjn1OmE*^=G`~IE0c{Ho&HK(z_p>^F$+*Wda``-8Q*HdMi zl2_gn=kN4mYq)1Cl3wudUFL#p#fPzbJA0Sk>yb@3TXnW5Eh@$#<>$`hvTK$|CjWag z|Hj?6%O&#rc2qJS{xCr^_WJHVhBhZHefHG!rBVVs6YDoyZVNc-qf#oK^-fV`rg7Y% zqnQ?^N@d5qC$DC?+5UFlh5kQl8gCjl?O}WVzRzZV`B$|&-jfe$wJ$oeQc7%5dHl^2 zAEi&9-~Bn1=|F(TQ&q(|`d2pm+H@{q!_>R~blvy9kKNm8zwev>R2k-#QtZW2DN%_P zCR@EG{C6wnG7xBKT*|#zAZ`1D7nf4>0FO*}j&PN^r$QH59h3ZGd1uni3`_sLo$LQ!OX@y!X~JFMRoPB_a_6}@DxW-6 z-!6Um#>+{&y5=mu=MyaY;;zQTnN|#Pe7g3=V$z%soa%zr(yMy_;$N{0oTvJJ$hF9;;9Q_T%URFpAg}?t|y=Pbn*Fz zbM{wj9v4#a^E~^&srTvQ=G(Vt_I;ZY945}wHdEXrediQg*HHE4`m5He1x4JC$&FEX z!^6L(@qx`(HMh;>D=tYKXnX(r(Dz#N*MI(gsAg$$m^m}da$lA3x#0XmyQ_rH{oK9r z_p8MgJL-DoCR+ae<(c+x-V>ASGPf6}fBZFd@yv~L0+x%fo*AK;5_0`V)4Sy32aoqn z{`GO+`+mk9mB*wmg>c`yI{U`XsUK&YQdMQ2Jh$M0_>6lq)o*Ad3QliM&^_n#balDr z)r)hNs7bsCo)llHZDFn4%`>%WjnJNOdDG)U(^h#gL};djUG-b#`R=2Q&4k2_vjvhA zT5g=(Z0lyRL+t1GS-dlf|K-X2J%4_a-PfRr-4~wxXv`_O>pgjigGB4p#_%s+f9%uu zceve9sBW{%q)|9-^7mJZe|)yDSu(*jKXYZT;8|VIXSz{WZfbB`E1@9PQ7-v{uuEXYO*H;}mG zBlpiYm2qQ8I^STH9{pG3z{kN<2VMVzOsshItjQYhzPMRsK z?XNxYZpo(l@tRd)XYv#hc3ti4FBWwR*X}Mo zbI$D6ed}Wv|NrXQ+^ZwO#hPf~vi%^#GTub#^ZF;e^7ov1tDM6;2trlQ;D7) zF>~s}GmBhz?hln&++^_o-Xf^>x+SKG2YkLm4lYz=#V zpAq6%yN}!V^4u@G>%Tdw?oY1WohN*Yt`yP0E*W@#WZI7$p zuh@DzU|s2i#)LofBsj!)TDx?d%P;v0_887!zHlJNnd{8DH@UZFG*|XDzrC_)hC#%t zW5?e3U1GoU`jy|M<24c-Hw{Fzw(uNexRI{L`0ekchMNT$PG1+CFOh6>oKQ5oE6mqa zw<~w!Y|C>2SKnWmBX`EIB}alwG*CHG%`H|)H5)KpXE%kG`44nMs0R9WVY?CPWG zzrI}yx@@*Fd(x873!!HnCMW8x-ZjH(U2w9EYqG`_hx@f#-eqex+o8ch|MK zCE9m7{O{*y8qG|ouD1SGozuI)&+NqKz7=ogM$deA*uH%qLzV{r~iJ?M5! zVEg4&Yj&k1$A(-@(94pZvw!#J%T1?`1gx03)3r4Eto8N8xT_3D%C&EvSa3r7Wob~G z843`zAg*xZwsuq7uXFF(M^I7qs#^tE(D*3`~PR?6QWj4utdR!^DXUgtP z$G*N4_vN2nd6nbFj+AL?5=%_3&WjZE;M{Ls_BQoMK*o%1Er*rV_uULTq9z&Dbnx0; zIEeT;0r@v(7bf__4xZGy@^u6O<9fp;4^>6e}H7>jm;49k`XTTHl)|*f2 zTmIz}Q(y2jG2J{SRdQJT*T%bLRT3Mr*T?X*wq-k6Jh46d_S97Eb6;Oyx81Vf(?#9i zb-z+)h;yhWwoYeuUYJ_e^nd4^P0mXG0&m{F?fw4kTfyI7r3-e3I!OJR7n&1N#Id{Q zNwn}kv53D*j|60_+|X3e@WXiO<_W#^vy^QZuj)Qwbi6MRaQkk8?2Q8wTh<*k`};5S z$L8IcT?-vrFTUebWk0*aTjzGrx5VhW`wqLE4yL_iUoOcNBAL8EGNYbZNjFtv$;CzY zE$iDA+n7w9&crT1=lC_W{gu+?4X0N)n1)P$V>GK7yy4A1PI+|i+u+#o_s>3T!-O>j U=h+`HFfcH9y85}Sb4q9e0E&RLWB>pF diff --git a/doc/html/images/python_cpp_mix.png b/doc/html/images/python_cpp_mix.png deleted file mode 100755 index fd74cbb2247835aa8b49e91642f29713e366195b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6293 zcmeAS@N?(olHy`uVBq!ia0y~yV9H})V65k0W?*1AF0!?Wfq{V~-O<;Pfnj4`&F{d; z3=9kk$sR$z3=CDO3=9p;3=BX2GcYu~U|=XUU|@Kaz`$TNoq<6-fBMRqR~Q(W83KGl zTp2)M=KufynVFecSXfwDS=rdw*xA`RI5;>tIk~vFxVgD`czAeudHMMG`1$z-1Ox;H z1%-r!goTAgL_|bIMa9I##KpxWBqSsyC8eaKq@|^0WMpJzW##1LAqtgWqWY;0_8ZSCyr?CtFx92^`S9i5zoD;^X5J5)u*<6O)pXl9Q8DQc_Y=Q`6GY($mv3 zGBPqVGqbX?va_>ua&mHWbMx}@^7Hcx3JMAf3yX@1ii?X&N=iygOUug2%FD|uDk>@~ zE32xis;jGOYHDh0YwPOj>g($p8X6iK8=IP%nwy(jT3T9LTie>&+S}VZIyyQ#JG;8N zy1To3dU|?$d;9wO`uqDQOqein;>1alCQY6^dCHV2Q>RXyHf`GU>CHEY+dUAJ!C`t|EKY}l}IK79Ddkt0Ws9zAyK*zx1XPnAmsE?vHS`O1|mSFc{ZcJ12r>(_7G zxN-C5&0Du_-M)SM&Ye4V@7}$4@813U_a8iX@bKZoM~@yoe*E~!lP6D~K7ID=+4JYm zU%Ytn^5x4{uU@@={rb(DH*ep*efRF&`}glZeE9J3&?&!0bk|Ni~=@8AFb|BIYipE59rig>y>hE&W+N|0h*+>pnh z&>+Efi*a#+3S$FNKY>Z27`8y^FQg3x4XVd16&D_Jcglhn+Ym{`ub<0i$xp-_`+ z-t(kQt<9Tzl~hUahOqrNWE_L*`QH+CSGqc>1fp5nP~7q4P@CJ1_y>fd$*Mnz1)It8L%=ix_r%8>b1~h)}1y@1`dT+ zZrWQ{9k}?!%!ko|;iAIMz~eGnGmN;{WEnUX9F$zU_+;)3P@K=XXa&(Q6a`%_o@!uX zyJfn#L5xA6fh}-LpW60^{0vMP1#Yi1ilmo;1k*u+iCiO5@P+7F4^EDQM`o^an|vFb zLY8NwIz+T4C~+>*miNs&EX=?nP`gNU;+_jL7oW^^K`tg<#LZkZVR7zuK{f`aj<}P& zb!}orFWaiNTzkycI`pWE4sN1BLRYw{5$>nn6<%tYqovo2ohO;+wd^D>jGx7H>5{1LWN8NmNK~XSu3Dl! zOU=B2K?+<#d}uy6e_a6sjJqJ=#4>FeP{gNi>AUm9Eas9ZAA^8HvvHJrLXmXZOD=YZ zYn63&@*XZ}WroD7;FLRUnY#`#Lh>SqXP&ZR<3ea5BsA&v39s}3h#~FOMbZ;Jd08L| z3;gnw%~m!tK-{+PWG;)ksQ|?M!zMd>KWt%RVPG_|SX>&RwteEfD-IB6@g06*HVe+# z{lsk64F#yo`X^?yu03E-Xm}yM_QTqb9a~zALwT2jR7?P+Q|&0hm+g#s+D)x1t9Gbt zzj&mLiGiuZ@8YS3V@VByhpl(^s+pNE2snJ{3}Y*K*5Q%2IFpx|fkoi%BXyUr^ThK z0)BamJ9*_H!QpJSvsWzl2O}h;R)JItGC;y6Lv8!TMZF48bw(gR9D)YN!6#->TLhUQ zfqlU{Z*ga@1~eXGillvWkATXBITx+2OuC(sq$~u9OT}q-+=8VyLXB7pa%cw|#3~Qf z?H8}O*+8w*+}XR#Ob8lzPA79swoYV%ST(^jZ!xpN5~%4RlWu2ZDGNePp9C^}CDim@ zP}F$9OjiM!ZUr@65oEd%)O04W=}?b6@XuSkvR4P<5%yY;N1i~fGMRMS!8(Zpn(}T; z23af&vDk4Q$l{$)i{CvlyH%hJDykH^t}QHja4jQC8C3QubX`-NdWY?npfj|@IyeWU zjTNfx5hye?7$Knns;t|jU7=E+o|s+elh_62-2y9QhA7;i2J)C9#A8U+vj@n1i$NAG z=(%=q&Knzh1ZmU)<>#7BE{rvnST^A@*CmxAJCQ$}l( z<4ll?4>N*n?hezCfEM!#Aa>5l+%0-bg+N{wU29+=nzq z!URh08Li6|*mQJwwl?d5oyyL@p|HzUn^~CokQy7sAZI=(0S+b*2~n}Vm~uzJlS6gq!>ql%YTH50h>pICT}w-(g-+&fS?*v9%BcQ%8lE{PR6t== z0L_~fLQdK19|rh{y9=_qO_u%&3XDY=u1v6Kb-CEZ0ycoxlQ$R?B^pr^55QVCfm@Us4^9CkK2cD-&&zOSgV|wov5N<0N5vvh zNthiUT(pf~c0A||OM%&OPl)uhmHSptAkqGU-r|o2O;CvNmgjV^t885`@;S zfICAqDiH1r?=6d(94Fs#o1J%sm4VU3W05E?&nj@z^8+P4&n-;{5^V10n(Pb|2c@;n zFae1caQZR=nJT#UMS_7UD2_HTf%4lTQCXfzPt2lr1cLKYM;MPm$0Shls{kbok&9i7 zu&~ouB+AUw_rxq}dJri4By@!N7*v3j&HyRpx!A?Y<_gXcpq8hAi?*0S23UFrNSfth z7b{O2$fAo33@jH8xNDmkM1ZAlfTVw99A#s31nJHIRf`7}i)u^!0F??EpzO6^v8XjH z2p!zD%M2cXO1O(`;Dmjc%`I5Em%)LdSIs;p!DQz}4u~+5Td?$6h_H{rtXmmu;4WTb z)5Rxl#tZ@ui%;@0_bfBJ1+v{Y??r;i){6pQjn2$Hi%<5pfxC#(QWCzoTR_$7tUCb* zGqM(gdK6Z!+MnD~S%lM9No@c-k(+_3!|vj#h7?ieIh_fKE94h|%FD%upuFj#9pvQf zmD#KhDxjm7K~>lmzHeY{d<;w-eHTwPc=D~5NR9=m2PdxLqqTd=e(sCLd(V7cnl6Q^~VK^;_Hii2{X42NS{l6T&TS1;#+ zvO+CLU9AF(YA5eBkc}@`Kn^|0yR^wAd;P-;4*cZ@4`gI576)~LEiYfZ;^qzxmt2#r z7eVz;hkstr;+4JN&T@~a128!(t-@L^ua}_|5apB1^i&?kWSQuC?obbt8+?m?|5)!(9m&QFGHKEs3HRXJ3qTdW5~#|S)&c2q0O@LGXJENd0P^&5orXqzYTFz^8DfUY_KRE0Oh6@IGpI!d>VYp%oOegU{qn5| zpsW}&S-Q$f+BeIYiGf8x^JMQHMZ+SuiyK}Xn6%IB@~sJ=lH0FHS@YwBscxR$c`A~& zTx>!NECP`yds%#6M0Hp^mD_zLBS@N$L7~CJH}6CD^ofws0WBT_O(DI|1A4}@&b2W! za44)&HFw$Nk^kO_QZ-a>SR~98MB_*_msylQ*^DVx2prAv6_aQG?`0 zP+>Otc1D%78iQ>dBV;t^7GqBZE5`y*^WfkF)(RnMVPQ})u|3cswn2TPp&=uvVw7gR zf>)~D2WlE!$A%E&R7FM3*4#XyT{G6U7lc}z6HxFoZq53Txx91b6i^GnH%~;}e8w%u zX?F@<%N}^bCg7lKvGbv4uF6r4nJ0Ti7Oz}g&H(Dq^j>+=R$499)a|lZ&a*M$fXQLr zM2DcBBW@R4>$n)jS`7qE(iOTBj3s94wB?!bUj()9GK!pSWqB;mZIt(DUni-$GjY>J z(}g=2W;>PG?pS+F{d7yH-2YCl5>O5cnk+4xmfF>kyXJW3!5cmuQ=GkunkUb=_AsF1 zeAbpHZJMWBg6kZ#gBuv6cAn%F6kV~XLRdCPD)G?0&;$O9Zn{)Y(pY|hpMm8FzzN0hqt`jdV*K!W;&6VD6h z6&!+UYCdd5HA3NEg`#IHifZt%+QEBFCr{Gg=|vltdQgF7wo{P*g^V@x42cX-=Kt}l zhl^pWz{1r_!F~G=UnNBkG;AqpD=lK?Sn%+*aaKcPMmYa#Q0yJPp1wFi092Atb)@nD Y!@fNJ(%=4NW}qnoPgg&ebxsLQ00Quv$N&HU diff --git a/doc/html/index.html b/doc/html/index.html index 29f9209c..39c959b5 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -3,12 +3,12 @@ Boost.Python - + -
    +


    Next
    @@ -120,7 +120,7 @@

    - +

    Last revised: August 05, 2015 at 11:20:14 GMT

    Last revised: August 05, 2016 at 22:19:55 GMT


    diff --git a/doc/html/introduction.html b/doc/html/introduction.html deleted file mode 100644 index 0c1e3442..00000000 --- a/doc/html/introduction.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -Introduction - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Introduction

    -
    - -

    - Welcome to version 2 of Boost.Python, a C++ library which enables seamless - interoperability between C++ and the Python programming language. The new - version has been rewritten from the ground up, with a more convenient and - flexible interface, and many new capabilities, including support for: -

    -
    * References and Pointers
    -* Globally Registered Type Coercions
    -* Automatic Cross-Module Type Conversions
    -* Efficient Function Overloading
    -* C++ to Python Exception Translation
    -* Default Arguments
    -* Keyword Arguments
    -* Manipulating Python objects in C++
    -* Exporting C++ Iterators as Python Iterators
    -* Documentation Strings
    -
    -

    - The development of these features was funded in part by grants to Boost Consulting - from the Lawrence Livermore National Laboratories and by the Computational - Crystallography Initiative at Lawrence Berkeley National Laboratories. -

    -
    -
    - - - -

    Last revised: July 26, 2015 at 16:09:57 GMT

    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/introduction/articles.html b/doc/html/introduction/articles.html deleted file mode 100644 index 63fa06ab..00000000 --- a/doc/html/introduction/articles.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -Articles - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - "Building Hybrid Systems With Boost Python", by Dave Abrahams and - Ralf W. Grosse-Kunstleve (PDF) -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/background.html b/doc/html/python/background.html deleted file mode 100644 index 905a1817..00000000 --- a/doc/html/python/background.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Background - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - There are two basic models for combining C++ and Python: -

    -
      -
    • - extending, - in which the end-user launches the Python interpreter executable and imports - Python “extension modules” written in C++. Think of taking a library - written in C++ and giving it a Python interface so Python programmers can - use it. From Python, these modules look just like regular Python modules. -
    • -
    • - embedding, - in which the end-user launches a program written in C++ that in turn invokes - the Python interpreter as a library subroutine. Think of adding scriptability - to an existing application. -
    • -
    -

    - The key distinction between extending and embedding is the location of the - C++ main() - function: in the Python interpreter executable, or in some other program, respectively. - Note that even when embedding Python in another program, extension - modules are often the best way to make C/C++ functionality accessible to Python - code, so the use of extension modules is really at the heart of both - models. -

    -

    - Except in rare cases, extension modules are built as dynamically-loaded libraries - with a single entry point, which means you can change them without rebuilding - either the other extension modules or the executable containing main(). -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing.html b/doc/html/python/building_and_testing.html deleted file mode 100644 index 6813f570..00000000 --- a/doc/html/python/building_and_testing.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Building and Testing - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    - -

    - Boost.Python requires Python 2.2 - [1] or newer. -

    -
    -
    -

    -

    [1] - Note that although we tested earlier versions of Boost.Python with Python - 2.2, and we don't think we've done anything - to break compatibility, this release of Boost.Python may not have been - tested with versions of Python earlier than 2.4, so we're not 100% sure - that python 2.2 and 2.3 are supported. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/background.html b/doc/html/python/building_and_testing/background.html deleted file mode 100644 index d014c1bd..00000000 --- a/doc/html/python/building_and_testing/background.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -Background - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - There are two basic models for combining C++ and Python: -

    -
      -
    • - extending, - in which the end-user launches the Python interpreter executable and - imports Python “extension modules” written in C++. Think of taking - a library written in C++ and giving it a Python interface so Python programmers - can use it. From Python, these modules look just like regular Python - modules. -
    • -
    • - embedding, - in which the end-user launches a program written in C++ that in turn - invokes the Python interpreter as a library subroutine. Think of adding - scriptability to an existing application. -
    • -
    -

    - The key distinction between extending and embedding is the location of the - C++ main() - function: in the Python interpreter executable, or in some other program, - respectively. Note that even when embedding Python in another program, extension - modules are often the best way to make C/C++ functionality accessible to - Python code, so the use of extension modules is really at the heart - of both models. -

    -

    - Except in rare cases, extension modules are built as dynamically-loaded libraries - with a single entry point, which means you can change them without rebuilding - either the other extension modules or the executable containing main(). -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/basic_procedure.html b/doc/html/python/building_and_testing/basic_procedure.html deleted file mode 100644 index 36081543..00000000 --- a/doc/html/python/building_and_testing/basic_procedure.html +++ /dev/null @@ -1,917 +0,0 @@ - - - -Basic Procedure - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - -

    - 1. Get Boost; see sections 1 and 2 [Unix/Linux__, - Windows__] of the Boost - Getting Started - Guide_. -

    -
    __ ../../../more/getting_started/unix-variants.html#get-boost
    -__ ../../../more/getting_started/windows.html#get-boost
    -
    -

    - 2. Get the -

    -
    bjam
    -

    - build driver. See section 5 [Unix/Linux__, - Windows__] of the Boost - Getting Started - Guide_. -

    -
    __ ../../../more/getting_started/unix-variants.html#prepare-to-use-a-boost-library-binary
    -__ ../../../more/getting_started/windows.html#prepare-to-use-a-boost-library-binary
    -
    -

    - 3. cd into the -

    -
    libs/python/example/quickstart/
    -

    - directory of your Boost installation, which contains a small example project. -

    -

    - 4. Invoke -

    -
    bjam
    -

    - . Replace the “ -

    -
    stage
    -

    - “ argument from the example invocation from section 5 of the Getting Started - Guide_ with “ -

    -
    test
    -

    - ,“ to build all the test targets. Also add the argument “ -

    -
    --verbose-test
    -

    - ” to see the output generated by the tests when they are run. -

    -
    On Windows, your bjam invocation might look something like:
    -
    -.. parsed-literal::
    -
    -  C:\\boost_1_34_0\\\\quickstart> **bjam toolset=msvc --verbose-test test**
    -
    -and on Unix variants, perhaps,
    -
    -.. parsed-literal::
    -
    -  ~/boost_1_34_0//quickstart$ **bjam toolset=gcc --verbose-test test**
    -
    -

    - .. Admonition:: Note to Windows Users -

    -
    For the sake of concision, the rest of this guide will use
    -unix-style forward slashes in pathnames instead of the
    -backslashes with which you may be more familiar.  The forward
    -slashes should work everywhere except in `Command Prompt`_
    -windows, where you should use backslashes.
    -
    -.. _Command Prompt: ../../../more/getting_started/windows.html#command-prompt
    -
    -

    - If you followed this procedure successfully, you will have built an extension - module called -

    -
    extending
    -

    - and tested it by running a Python script called -

    -
    test_extending.py
    -

    - . You will also have built and run a simple application called -

    -
    embedding
    -

    - that embeds python. -

    -

    - .. _Getting Started Guide: ....../more/getting_started/index.html -

    -

    - In Case of Trouble ------------------ -

    -

    - If you're seeing lots of compiler and/or linker error messages, it's probably - because Boost.Build is having trouble finding your Python installation. You - might want to pass the -

    -
    --debug-configuration
    -

    - option to -

    -
    bjam
    -

    - the first few times you invoke it, to make sure that Boost.Build is correctly - locating all the parts of your Python installation. If it isn't, consider - Configuring Boost.Build_ - as detailed below. -

    -

    - If you're still having trouble, Someone on one of the following mailing lists - may be able to help: -

    -
      -
    • - The Boost.Build mailing - list__ for issues related to - Boost.Build -
    • -
    • - The Python C++ - Sig__ for issues specifically - related to Boost.Python -
    • -
    -

    - __ http://www.boost.org/more/mailing_lists.htm#jamboost __ http://www.boost.org/more/mailing_lists.htm#cplussig -

    -

    - In Case Everything Seemed to Work --------------------------------- -

    -

    - Rejoice! If you're new to Boost.Python, at this point it might be a good - idea to ignore build issues for a while and concentrate on learning the library - by going through the tutorial_ and perhaps some of the reference - documentation_, trying out what - you've learned about the API by modifying the quickstart project. -

    -

    - .. _reference documentation: v2/reference.html .. _tutorial: tutorial/index.html -

    -

    - Modifying the Example Project ----------------------------- -

    -

    - If you're content to keep your extension module forever in one source file - called |extending.cpp|_, inside your Boost distribution, and import it forever - as -

    -
    extending
    -

    - , then you can stop here. However, it's likely that you will want to make - a few changes. There are a few things you can do without having to learn - Boost.Build_ in depth. -

    -

    - The project you just built is specified in two files in the current directory: - |boost-build.jam|_, which tells -

    -
    bjam
    -

    - where it can find the interpreted code of the Boost build system, and |Jamroot|_, - which describes the targets you just built. These files are heavily commented, - so they should be easy to modify. Take care, however, to preserve whitespace. - Punctuation such as -

    -
    ;
    -

    - will not be recognized as intended by -

    -
    bjam
    -

    - if it is not surrounded by whitespace. -

    -

    - .. |boost-build.jam| replace:: -

    -
    boost-build.jam
    -

    - .. _boost-build.jam: ../example/quickstart/boost-build.jam -

    -

    - .. |Jamroot| replace:: -

    -
    Jamroot
    -

    - .. _Jamroot: ../example/quickstart/Jamroot -

    -

    - .. |extending.cpp| replace:: -

    -
    extending.cpp
    -

    - .. _extending.cpp: ../example/quickstart/extending.cpp -

    -

    - Relocate the Project .................... -

    -

    - You'll probably want to copy this project elsewhere so you can change it - without modifying your Boost distribution. To do that, simply -

    -

    - a. copy the entire -

    -
    libs/python/example/quickstart/
    -

    - directory into a new directory. -

    -

    - b. In the new copies of |boost-build.jam|_ and |Jamroot|_, locate the relative - path near the top of the file that is clearly marked by a comment, and edit - that path so that it refers to the same directory your Boost distribution - as it referred to when the file was in its original location in the -

    -
    libs/python/example/quickstart/
    -

    - directory. -

    -

    - For example, if you moved the project from -

    -
    /home/dave/boost_1_34_0/libs/python/example/quickstart
    -

    - to -

    -
    /home/dave/my-project
    -

    - , you could change the first path in |boost-build.jam|_ from -

    -

    - .. parsed-literal:: -

    -
    **../../../..**\ /tools/build/v2
    -
    -

    - to -

    -

    - .. parsed-literal:: -

    -
    **/home/dave/boost_1_34_0**\ /tools/build/v2
    -
    -

    - and change the first path in |Jamroot|_ from -

    -

    - .. parsed-literal:: -

    -
    **../../../..**
    -
    -

    - to -

    -

    - .. parsed-literal:: -

    -
    **/home/dave/boost_1_34_0**
    -
    -

    - Add New or Change Names of Existing Source Files ................................................ -

    -

    - The names of additional source files involved in building your extension - module or embedding application can be listed in |Jamroot|_ right alongside -

    -
    extending.cpp
    -

    - or -

    -
    embedding.cpp
    -

    - respectively. Just be sure to leave whitespace around each filename:: -

    -
     file1.cpp file2.cpp file3.cpp 
    -
    -

    - Naturally, if you want to change the name of a source file you can tell Boost.Build - about it by editing the name in |Jamroot|_. -

    -

    - Change the Name of your Extension Module ........................................ -

    -

    - The name of the extension module is determined by two things: -

    -

    - 1. the name in |Jamroot|_ immediately following -

    -
    python-extension
    -

    - , and 2. the name passed to -

    -
    BOOST_PYTHON_MODULE
    -

    - in |extending.cpp|_. -

    -

    - To change the name of the extension module from -

    -
    extending
    -

    - to -

    -
    hello
    -

    - , you'd edit |Jamroot|_, changing -

    -

    - .. parsed-literal:: -

    -
    python-extension **extending** : extending.cpp ;
    -
    -

    - to -

    -

    - .. parsed-literal:: -

    -
    python-extension **hello** : extending.cpp ;
    -
    -

    - and you'd edit extending.cpp, changing -

    -

    - .. parsed-literal:: -

    -
    BOOST_PYTHON_MODULE(\ **extending**\ )
    -
    -

    - to -

    -

    - .. parsed-literal:: -

    -
    BOOST_PYTHON_MODULE(\ **hello**\ )
    -
    -

    - Installing Boost.Python on your System ====================================== -

    -

    - Since Boost.Python is a separately-compiled (as opposed to header-only_) library, its user relies on the - services of a Boost.Python library binary. -

    -

    - .. _header-only: ....../more/getting_started/windows.html#header-only-libraries -

    -

    - If you need a regular installation of the Boost.Python library binaries on - your system, the Boost Getting - Started Guide_ - will walk you through the steps of creating one. If building binaries from - source, you might want to supply the -

    -
    --with-python
    -

    - argument to -

    -
    bjam
    -

    - (or the -

    -
    --with-libraries=python
    -

    - argument to -

    -
    configure
    -

    - ), so only the Boost.Python binary will be built, rather than all the Boost - binaries. -

    -

    - Configuring Boost.Build ======================= -

    -

    - As described in the Boost.Build reference manual__, - a file called -

    -
    user-config.jam
    -

    - in your home directory _ is used to specify the tools - and libraries available to the build system. You may need to create or edit -

    -
    user-config.jam
    -

    - to tell Boost.Build how to invoke Python, -

    -
    #include
    -

    - its headers, and link with its libraries. -

    -

    - __ http://www.boost.orgdoc/html/bbv2/advanced.html#bbv2.advanced.configuration -

    -

    - .. Admonition:: Users of Unix-Variant OSes -

    -
    If you are using a unix-variant OS and you ran Boost's
    -configure script, it may have generated a
    -user-config.jam for you. [#overwrite]_ If your configure\
    -/\ make sequence was successful and Boost.Python binaries
    -were built, your user-config.jam file is probably already
    -correct.
    -
    -

    - If you have one fairly “standard” python installation for your platform, - you might not need to do anything special to describe it. If you haven't - configured python in -

    -
    user-config.jam
    -

    - (and you don't specify -

    -
    --without-python
    -

    - on the Boost.Build command line), Boost.Build will automatically execute - the equivalent of :: -

    -
    import toolset : using ;
    -using python ;
    -
    -

    - which automatically looks for Python in the most likely places. However, - that only happens when using the Boost.Python project file (e.g. when referred - to by another project as in the quickstart_ method). If instead you are linking - against separately-compiled Boost.Python binaries, you should set up a -

    -
    user-config.jam
    -

    - file with at least the minimal incantation above. -

    -

    - Python Configuration Parameters ------------------------------- -

    -

    - If you have several versions of Python installed, or Python is installed - in an unusual way, you may want to supply any or all of the following optional - parameters to -

    -
    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 (i.e. not -

    -
    2.5.1
    -

    - ). If you have multiple Python versions installed, the version will usually - be the only configuration argument required. -

    -

    - cmd-or-prefix preferably, a command that invokes a Python interpreter. Alternatively, - the installation prefix for Python libraries and header files. Only use the - alternative formulation if there is no appropriate Python executable available. -

    -

    - includes the -

    -
    #include
    -

    - paths for Python headers. Normally the correct path(s) will be automatically - deduced from -

    -
    version
    -

    - and/or -

    -
    cmd-or-prefix
    -

    - . -

    -

    - libraries the path to Python library binaries. On MacOS/Darwin, you can also - pass the path of the Python framework. Normally the correct path(s) will - be automatically deduced from -

    -
    version
    -

    - and/or -

    -
    cmd-or-prefix
    -

    - . -

    -

    - condition if specified, should be a set of Boost.Build properties that are - matched against the build configuration when Boost.Build selects a Python - configuration to use. See examples below for details. -

    -

    - extension-suffix A string to append to the name of extension modules before - the true filename extension. You almost certainly don't need to use this. - Usually this suffix is only used when targeting a Windows debug build of - Python, and will be set automatically for you based on the value of the |python-debugging|_ - feature. However, at least one Linux distribution (Ubuntu Feisty Fawn) has - a specially configured python-dbg__ - package that claims to use such a suffix. -

    -

    - .. |python-debugging| replace:: -

    -
    <python-debugging>
    -

    - __ https://wiki.ubuntu.com/PyDbgBuilds -

    -

    - Examples -------- -

    -

    - Note that in the examples below, case and especially - whitespace are significant. -

    -

    - - If you have both python 2.5 and python 2.4 installed, -

    -
    user-config.jam
    -

    - might contain:: -

    -
      using python : 2.5 ;  # Make both versions of Python available
    -
    -  using python : 2.4 ;  # To build with python 2.4, add python=2.4
    -                        # to your command line.
    -
    -The first version configured (2.5) becomes the default.  To build
    -against python 2.4, add python=2.4 to the bjam command line.
    -
    -

    - - If you have python installed in an unusual location, you might supply the - path to the interpreter in the -

    -
    cmd-or-prefix
    -

    - parameter:: -

    -
    using python : : /usr/local/python-2.6-beta/bin/python ;
    -
    -

    - - If you have a separate build of Python for use with a particular toolset, - you might supply that toolset in the -

    -
    condition
    -

    - parameter:: -

    -
    using python ;  # use for most toolsets
    -
    -# Use with Intel C++ toolset
    -using python
    -     : # version
    -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
    -     : # includes
    -     : # libraries
    -     : <toolset>intel # condition
    -     ;
    -
    -

    - - If you have downloaded the Python sources and built both the normal and - the “python debugging_” - builds from source on Windows, you might see:: -

    -
    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
    -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
    -  : # includes
    -  : # libs
    -  : <python-debugging>on ;
    -
    -

    - - You can set up your user-config.jam so a bjam built under Windows can build/test - both Windows and Cygwin_ python extensions. Just pass -

    -
    <target-os>cygwin
    -

    - in the -

    -
    condition
    -

    - parameter for the cygwin python installation:: -

    -
      # windows installation
    -  using python ;
    -
    -  # cygwin installation
    -  using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
    -
    -when you put target-os=cygwin in your build request, it should build
    -with the cygwin version of python: [#flavor]_
    -
    -  bjam target-os=cygwin toolset=gcc
    -
    -This is supposed to work the other way, too (targeting windows
    -python with a Cygwin_ bjam) but it seems as though the support in
    -Boost.Build's toolsets for building that way is broken at the
    -time of this writing.
    -
    -

    - - Note that because of the way Boost.Build currently selects - target alternatives__, - you might have be very explicit in your build requests. For example, given:: -

    -
      using python : 2.5 ; # a regular windows build
    -  using python : 2.4 : : : : <target-os>cygwin ;
    -
    -building with ::
    -
    -  bjam target-os=cygwin
    -
    -will yield an error.  Instead, you'll need to write::
    -
    -  bjam target-os=cygwin/python=2.4
    -
    -

    - .. _Cygwin: http://cygwin.com -

    -

    - __ http://zigzag.cs.msu.su/boost.build/wiki/AlternativeSelection -

    -

    - Choosing a Boost.Python Library Binary ====================================== -

    -

    - If—instead of letting Boost.Build construct and link with the right libraries - automatically—you choose to use a pre-built Boost.Python library, you'll - need to think about which one to link with. The Boost.Python binary comes - in both static and dynamic flavors. Take care to choose the right flavor - for your application. _ -

    -

    - The Dynamic Binary ------------------ -

    -

    - The dynamic library is the safest and most-versatile choice: -

    -

    - - A single copy of the library code is used by all extension modules built - with a given toolset. _ -

    -

    - - The library contains a type conversion registry. Because one registry is - shared among all extension modules, instances of a class exposed to Python - in one dynamically-loaded extension module can be passed to functions exposed - in another such module. -

    -

    - The Static Binary ----------------- -

    -

    - It might be appropriate to use the static Boost.Python library in any of - the following cases: -

    -

    - - You are extending_ python and the types exposed in your dynamically-loaded - extension module don't need to be used by any other Boost.Python extension - modules, and you don't care if the core library code is duplicated among - them. -

    -

    - - You are embedding_ python in your application and either: -

    -
    - You are targeting a Unix variant OS other than MacOS or AIX,
    -  where the dynamically-loaded extension modules can see the
    -  Boost.Python library symbols that are part of the executable.
    -
    -- Or, you have statically linked some Boost.Python extension
    -  modules into your application and you don't care if any
    -  dynamically-loaded Boost.Python extension modules are able to
    -  use the types exposed by your statically-linked extension
    -  modules (and vice-versa).
    -
    -
    #include
    -

    - Issues =================== -

    -

    - 1. If you should ever have occasion to -

    -
    #include "python.h"
    -

    - directly in a translation unit of a program using Boost.Python, use -

    -
    #include "boost/python/detail/wrap_python.hpp"
    -

    - instead. It handles several issues necessary for use with Boost.Python, one - of which is mentioned in the next section. -

    -

    - 2. Be sure not to -

    -
    #include
    -

    - any system headers before -

    -
    wrap_python.hpp
    -

    - . This restriction is actually imposed by Python, or more properly, by Python's - interaction with your operating system. See http://docs.python.org/ext/simpleExample.html - for details. -

    -

    - .. _python-debugging: .. _python debugging: -

    -

    - Python Debugging Builds ======================= -

    -

    - Python can be built in a special “python debugging” configuration that - adds extra checks and instrumentation that can be very useful for developers - of extension modules. The data structures used by the debugging configuration - contain additional members, so **a Python executable built with python debugging - enabled cannot be used with an extension module or library compiled without - it, and vice-versa.** -

    -

    - Since pre-built “python debugging” versions of the Python executable - and libraries are not supplied with most distributions of Python, _ and we didn't want to force our users to build them, - Boost.Build does not automatically enable python debugging in its -

    -
    debug
    -

    - build variant (which is the default). Instead there is a special build property - called -

    -
    python-debugging
    -

    - that, when used as a build property, will define the right preprocessor symbols - and select the right libraries to link with. -

    -

    - On unix-variant platforms, the debugging versions of Python's data structures - will only be used if the symbol -

    -
    Py_DEBUG
    -

    - is defined. On many windows compilers, when extension modules are built with - the preprocessor symbol -

    -
    _DEBUG
    -

    - , Python defaults to force linking with a special debugging version of the - Python DLL. Since that symbol is very commonly used even when Python is not - present, Boost.Python temporarily undefines _DEBUG when Python.h is #included - from -

    -
    boost/python/detail/wrap_python.hpp
    -

    - - unless -

    -
    BOOST_DEBUG_PYTHON
    -

    - is defined. The upshot is that if you want “python debugging”and you - aren't using Boost.Build, you should make sure -

    -
    BOOST_DEBUG_PYTHON
    -

    - is defined, or python debugging will be suppressed. -

    -

    - Testing Boost.Python ==================== -

    -

    - To run the full test suite for Boost.Python, invoke -

    -
    bjam
    -

    - in the -

    -
    libs/python/test
    -

    - subdirectory of your Boost distribution. -

    -

    - Notes for MinGW (and Cygwin with -mno-cygwin) GCC Users ======================================================= -

    -

    - If you are using a version of Python prior to 2.4.1 with a MinGW prior to - 3.0.0 (with binutils-2.13.90-20030111-1), you will need to create a MinGW-compatible - version of the Python library; the one shipped with Python will only work - with a Microsoft-compatible linker. Follow the instructions in the “Non-Microsoft” - section of the “Building Extensions: Tips And Tricks” chapter in Installing Python - Modules__ to create -

    -
    libpythonXX.a
    -

    - , where -

    -
    XX
    -

    - corresponds to the major and minor version numbers of your Python installation. -

    -

    - __ http://www.python.org/doc/current/inst/index.html -

    -

    -

    - .. Note that although we tested earlier versions of Boost.Python - with Python 2.2, and we don't think we've - done anything to break compatibility, this release of Boost.Python may not - have been tested with versions of Python earlier than 2.4, so we're not 100% - sure that python 2.2 and 2.3 are supported. -

    -

    - .. Information about how to identify the static and - dynamic builds of Boost.Python: -

    -
    * `on Windows`__
    -* `on Unix variants`__
    -
    -__ ../../../more/getting_started/windows.html#library-naming
    -__ ../../../more/getting_started/unix-variants.html#library-naming
    -
    -

    - .. Because of the way most *nix platforms - share symbols among dynamically-loaded objects, I'm not certain that extension - modules built with different compiler toolsets will always use different - copies of the Boost.Python library when loaded into the same Python instance. - Not using different libraries could be a good thing if the compilers have - compatible ABIs, because extension modules built with the two libraries would - be interoperable. Otherwise, it could spell disaster, since an extension - module and the Boost.Python library would have different ideas of such things - as class layout. I would appreciate someone doing the experiment to find - out what happens. -

    -

    - .. -

    -
    configure
    -

    - overwrites the existing -

    -
    user-config.jam
    -

    - in your home directory (if any) after making a backup of the old version. -

    -

    - .. Note that the -

    -
    <target-os>cygwin
    -

    - feature is different from the -

    -
    <flavor>cygwin
    -

    - subfeature of the -

    -
    gcc
    -

    - toolset, and you might need handle both explicitly if you also have a MinGW - GCC installed. -

    -

    - .. Windows users, your home directory can be found - by typing:: -

    -
      ECHO %HOMEDRIVE%%HOMEPATH%
    -
    -into a `command prompt`_ window.
    -
    -

    - .. On Unix and similar platforms, a debugging - python and associated libraries are built by adding -

    -
    --with-pydebug
    -

    - when configuring the Python build. On Windows, the debugging version of Python - is generated by the "Win32 Debug" target of the Visual Studio project - in the PCBuild subdirectory of a full Python source code distribution. -

    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/python/building_and_testing/choosing_a_boost_python_library_.html b/doc/html/python/building_and_testing/choosing_a_boost_python_library_.html deleted file mode 100644 index c26ccc74..00000000 --- a/doc/html/python/building_and_testing/choosing_a_boost_python_library_.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Choosing a Boost.Python Library Binary - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If—instead of letting Boost.Build construct and link with the right libraries - automatically—you choose to use a pre-built Boost.Python library, you'll - need to think about which one to link with. The Boost.Python binary comes - in both static and dynamic flavors. Take care to choose the right flavor - for your application. [2] -

    -
    - -

    - The dynamic library is the safest and most-versatile choice: -

    -

    - - A single copy of the library code is used by all extension modules built - with a given toolset. _ -

    -

    - - The library contains a type conversion registry. Because one registry - is shared among all extension modules, instances of a class exposed to - Python in one dynamically-loaded extension module can be passed to functions - exposed in another such module. -

    -
    -
    -

    -

    [2] - Information about how to identify the static and dynamic builds of Boost.Python - on Windows - / Unix - variants -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/choosing_a_boost_python_library_/the_static_binary.html b/doc/html/python/building_and_testing/choosing_a_boost_python_library_/the_static_binary.html deleted file mode 100644 index 654b54f5..00000000 --- a/doc/html/python/building_and_testing/choosing_a_boost_python_library_/the_static_binary.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -The Static Binary - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - It might be appropriate to use the static Boost.Python library in any of - the following cases: -

    -

    - - You are extending_ python and the types exposed in your dynamically-loaded - extension module don't need to be used by any other Boost.Python extension - modules, and you don't care if the core library code is duplicated among - them. -

    -

    - - You are embedding_ python in your application and either: -

    -
    - You are targeting a Unix variant OS other than MacOS or AIX,
    -  where the dynamically-loaded extension modules can see the
    -  Boost.Python library symbols that are part of the executable.
    -
    -- Or, you have statically linked some Boost.Python extension
    -  modules into your application and you don't care if any
    -  dynamically-loaded Boost.Python extension modules are able to
    -  use the types exposed by your statically-linked extension
    -  modules (and vice-versa).
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/configuring_boost_build.html b/doc/html/python/building_and_testing/configuring_boost_build.html deleted file mode 100644 index 36894964..00000000 --- a/doc/html/python/building_and_testing/configuring_boost_build.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -Configuring Boost.Build - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - As described in the Boost.Build reference manual__, - a file called -

    -
    user-config.jam
    -

    - in your home directory _ is used to specify the tools - and libraries available to the build system. You may need to create or edit -

    -
    user-config.jam
    -

    - to tell Boost.Build how to invoke Python, -

    -
    #include
    -

    - its headers, and link with its libraries. -

    -

    - __ http://www.boost.orgdoc/html/bbv2/advanced.html#bbv2.advanced.configuration -

    -

    - .. Admonition:: Users of Unix-Variant OSes -

    -
    If you are using a unix-variant OS and you ran Boost's
    -configure script, it may have generated a
    -user-config.jam for you. [#overwrite]_ If your configure\
    -/\ make sequence was successful and Boost.Python binaries
    -were built, your user-config.jam file is probably already
    -correct.
    -
    -

    - If you have one fairly “standard” python installation for your platform, - you might not need to do anything special to describe it. If you haven't - configured python in -

    -
    user-config.jam
    -

    - (and you don't specify -

    -
    --without-python
    -

    - on the Boost.Build command line), Boost.Build will automatically execute - the equivalent of :: -

    -
    import toolset : using ;
    -using python ;
    -
    -

    - which automatically looks for Python in the most likely places. However, - that only happens when using the Boost.Python project file (e.g. when referred - to by another project as in the quickstart_ method). If instead you are linking - against separately-compiled Boost.Python binaries, you should set up a -

    -
    user-config.jam
    -

    - file with at least the minimal incantation above. -

    -
    - -

    - If you have several versions of Python installed, or Python is installed - in an unusual way, you may want to supply any or all of the following optional - parameters to -

    -
    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 (i.e. not -

    -
    2.5.1
    -

    - ). If you have multiple Python versions installed, the version will usually - be the only configuration argument required. -

    -

    - cmd-or-prefix preferably, a command that invokes a Python interpreter. - Alternatively, the installation prefix for Python libraries and header - files. Only use the alternative formulation if there is no appropriate - Python executable available. -

    -

    - includes the -

    -
    #include
    -

    - paths for Python headers. Normally the correct path(s) will be automatically - deduced from -

    -
    version
    -

    - and/or -

    -
    cmd-or-prefix
    -

    - . -

    -

    - libraries the path to Python library binaries. On MacOS/Darwin, you can - also pass the path of the Python framework. Normally the correct path(s) - will be automatically deduced from -

    -
    version
    -

    - and/or -

    -
    cmd-or-prefix
    -

    - . -

    -

    - condition if specified, should be a set of Boost.Build properties that - are matched against the build configuration when Boost.Build selects a - Python configuration to use. See examples below for details. -

    -

    - extension-suffix A string to append to the name of extension modules before - the true filename extension. You almost certainly don't need to use this. - Usually this suffix is only used when targeting a Windows debug build of - Python, and will be set automatically for you based on the value of the - |python-debugging|_ feature. However, at least one Linux distribution (Ubuntu - Feisty Fawn) has a specially configured python-dbg__ - package that claims to use such a suffix. -

    -

    - .. |python-debugging| replace:: -

    -
    <python-debugging>
    -

    - __ https://wiki.ubuntu.com/PyDbgBuilds -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/configuring_boost_build/examples.html b/doc/html/python/building_and_testing/configuring_boost_build/examples.html deleted file mode 100644 index d568ecd1..00000000 --- a/doc/html/python/building_and_testing/configuring_boost_build/examples.html +++ /dev/null @@ -1,153 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Note that in the examples below, case and especially - whitespace are significant. -

    -

    - - If you have both python 2.5 and python 2.4 installed, -

    -
    user-config.jam
    -

    - might contain:: -

    -
      using python : 2.5 ;  # Make both versions of Python available
    -
    -  using python : 2.4 ;  # To build with python 2.4, add python=2.4
    -                        # to your command line.
    -
    -The first version configured (2.5) becomes the default.  To build
    -against python 2.4, add python=2.4 to the bjam command line.
    -
    -

    - - If you have python installed in an unusual location, you might supply - the path to the interpreter in the -

    -
    cmd-or-prefix
    -

    - parameter:: -

    -
    using python : : /usr/local/python-2.6-beta/bin/python ;
    -
    -

    - - If you have a separate build of Python for use with a particular toolset, - you might supply that toolset in the -

    -
    condition
    -

    - parameter:: -

    -
    using python ;  # use for most toolsets
    -
    -# Use with Intel C++ toolset
    -using python
    -     : # version
    -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
    -     : # includes
    -     : # libraries
    -     : <toolset>intel # condition
    -     ;
    -
    -

    - - If you have downloaded the Python sources and built both the normal and - the “python debugging_” - builds from source on Windows, you might see:: -

    -
    using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
    -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
    -  : # includes
    -  : # libs
    -  : <python-debugging>on ;
    -
    -

    - - You can set up your user-config.jam so a bjam built under Windows can - build/test both Windows and Cygwin_ python extensions. Just pass -

    -
    <target-os>cygwin
    -

    - in the -

    -
    condition
    -

    - parameter for the cygwin python installation:: -

    -
      # windows installation
    -  using python ;
    -
    -  # cygwin installation
    -  using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
    -
    -when you put target-os=cygwin in your build request, it should build
    -with the cygwin version of python: [#flavor]_
    -
    -  bjam target-os=cygwin toolset=gcc
    -
    -This is supposed to work the other way, too (targeting windows
    -python with a Cygwin_ bjam) but it seems as though the support in
    -Boost.Build's toolsets for building that way is broken at the
    -time of this writing.
    -
    -

    - - Note that because of the way Boost.Build currently selects - target alternatives__, - you might have be very explicit in your build requests. For example, given:: -

    -
      using python : 2.5 ; # a regular windows build
    -  using python : 2.4 : : : : <target-os>cygwin ;
    -
    -building with ::
    -
    -  bjam target-os=cygwin
    -
    -will yield an error.  Instead, you'll need to write::
    -
    -  bjam target-os=cygwin/python=2.4
    -
    -

    - .. _Cygwin: http://cygwin.com -

    -

    - __ http://zigzag.cs.msu.su/boost.build/wiki/AlternativeSelection -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/include_issues.html b/doc/html/python/building_and_testing/include_issues.html deleted file mode 100644 index 24f39e46..00000000 --- a/doc/html/python/building_and_testing/include_issues.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -#include Issues - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - 1. If you should ever have occasion to -

    -
    #include "python.h"
    -

    - directly in a translation unit of a program using Boost.Python, use -

    -
    #include "boost/python/detail/wrap_python.hpp"
    -

    - instead. It handles several issues necessary for use with Boost.Python, one - of which is mentioned in the next section. -

    -

    - 2. Be sure not to -

    -
    #include
    -

    - any system headers before -

    -
    wrap_python.hpp
    -

    - . This restriction is actually imposed by Python, or more properly, by Python's - interaction with your operating system. See http://docs.python.org/ext/simpleExample.html - for details. -

    -

    - .. _python-debugging: .. _python debugging: -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/installing_boost_python_on_your_.html b/doc/html/python/building_and_testing/installing_boost_python_on_your_.html deleted file mode 100644 index 4f45d306..00000000 --- a/doc/html/python/building_and_testing/installing_boost_python_on_your_.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Installing Boost.Python on your System - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Since Boost.Python is a separately-compiled (as opposed to header-only_) library, its user relies on the - services of a Boost.Python library binary. -

    -

    - .. _header-only: ....../more/getting_started/windows.html#header-only-libraries -

    -

    - If you need a regular installation of the Boost.Python library binaries on - your system, the Boost Getting - Started Guide_ - will walk you through the steps of creating one. If building binaries from - source, you might want to supply the -

    -
    --with-python
    -

    - argument to -

    -
    bjam
    -

    - (or the -

    -
    --with-libraries=python
    -

    - argument to -

    -
    configure
    -

    - ), so only the Boost.Python binary will be built, rather than all the Boost - binaries. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart.html b/doc/html/python/building_and_testing/no_install_quickstart.html deleted file mode 100644 index ae4ad32f..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -No-Install Quickstart - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - There is no need to “install Boost” in order to get started using Boost.Python. - These instructions use http://boost.org/build - projects, which will build those binaries as soon as they're needed. Your - first tests may take a little longer while you wait for Boost.Python to build, - but doing things this way will save you from worrying about build intricacies - like which library binaries to use for a specific compiler configuration - and figuring out the right compiler options to use yourself. -

    -
    - - - - - -
    [Note]Note
    -

    - Of course it's possible to use other build systems to build Boost.Python - and its extensions, but they are not officially supported by Boost. Moreover - 99% of all “I can't build Boost.Python” problems - come from trying to use another build system without first following - these instructions. -

    -

    - If you want to use another system anyway, we suggest that you follow these - instructions, and then invoke -

    -
    bjam
    -

    - with the -

    -

    - -a - -ofilename -

    -

    - options to dump the build commands it executes to a file, so you can see - what your alternate build system needs to do. -

    -
    -
    - -

    - 1. Get Boost; see sections 1 and 2 of the Boost Getting - Started Guide. -

    -

    - 2. Get the bjam build driver. - See section 5 of the Boost Getting - Started Guide. -

    -

    - 3. cd into the example/quickstart/ directory of your Boost.Python installation, - which contains a small example project. -

    -

    - 4. Invoke bjam. Replace - the “stage“ argument - from the example invocation from section 5 of the Boost Getting - Started Guide with “test,“ - to build all the test targets. Also add the argument “--verbose-test” to see the output generated by - the tests when they are run. On Windows, your bjam - invocation might look something like: -

    -
    C:\\boost_1_34_0\\...\\quickstart> bjam toolset=msvc --verbose-test test
    -
    -

    - and on Unix variants, perhaps, -

    -
    ~/boost_1_34_0/.../quickstart$ bjam toolset=gcc --verbose-test test
    -
    -
    - - - - - -
    [Note]Note

    - For the sake of concision, the rest of this guide will use unix-style - forward slashes in pathnames instead of the backslashes with which Windows - users may be more familiar. The forward slashes should work everywhere - except in Command - Prompt windows, where you should use backslashes. -

    -

    - If you followed this procedure successfully, you will have built an extension - module called extending - and tested it by running a Python script called test_extending.py. - You will also have built and run a simple application called embedding that embeds python. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/choosing_a_boost_python_library_.html b/doc/html/python/building_and_testing/no_install_quickstart/choosing_a_boost_python_library_.html deleted file mode 100644 index fdfbce08..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/choosing_a_boost_python_library_.html +++ /dev/null @@ -1,128 +0,0 @@ - - - -Choosing a Boost.Python Library Binary - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If—instead of letting Boost.Build construct and link with the right libraries - automatically—you choose to use a pre-built Boost.Python library, you'll - need to think about which one to link with. The Boost.Python binary comes - in both static and dynamic flavors. Take care to choose the right flavor - for your application. [3] -

    -
    - -

    - The dynamic library is the safest and most-versatile choice: -

    -
      -
    • - A single copy of the library code is used by all extension modules - built with a given toolset. [4] -
    • -
    • - The library contains a type conversion registry. Because one registry - is shared among all extension modules, instances of a class exposed - to Python in one dynamically-loaded extension module can be passed - to functions exposed in another such module. -
    • -
    -
    -
    - -

    - It might be appropriate to use the static Boost.Python library in any - of the following cases: -

    -
      -
    • - You are extending python and the types exposed in your dynamically-loaded - extension module don't need to be used by any other Boost.Python - extension modules, and you don't care if the core library code is - duplicated among them. -
    • -
    • - You are embedding python in your application and either: -
        -
      • - You are targeting a Unix variant OS other than MacOS or AIX, - where the dynamically-loaded extension modules can “see” - the Boost.Python library symbols that are part of the executable. -
      • -
      • - Or, you have statically linked some Boost.Python extension - modules into your application and you don't care if any dynamically-loaded - Boost.Python extension modules are able to use the types exposed - by your statically-linked extension modules (and vice-versa). -
      • -
      -
    • -
    -
    -
    -

    -

    [3] - Information about how to identify the static and dynamic builds of Boost.Python - on Windows - / Unix - variants -

    -

    [4] - Because of the way most *nix platforms share symbols among dynamically-loaded - objects, I'm not certain that extension modules built with different - compiler toolsets will always use different copies of the Boost.Python - library when loaded into the same Python instance. Not using different - libraries could be a good thing if the compilers have compatible - ABIs, because extension modules built with the two libraries would - be interoperable. Otherwise, it could spell disaster, since an - extension module and the Boost.Python library would have different - ideas of such things as class layout. I would appreciate someone - doing the experiment to find out what happens. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/configuring_boost_build.html b/doc/html/python/building_and_testing/no_install_quickstart/configuring_boost_build.html deleted file mode 100644 index aa7bad63..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/configuring_boost_build.html +++ /dev/null @@ -1,288 +0,0 @@ - - - -Configuring Boost.Build - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - As described in the Reference Manual, - a file called user-config.jam in your home directory is used to - specify the tools and libraries available to the build system. You may - need to create or edit user-config.jam - to tell Boost.Build how to invoke Python, #include - its headers, and link with its libraries. -

    -
    - - - - - -
    [Note]Note

    - If you are using a unix-variant OS and you ran Boost's configure script, it may have generated - a user-config.jam for you. [2] If your configure/make sequence was successful and Boost.Python - binaries were built, your user-config.jam - file is probably already correct. -

    -

    - If you have one fairly “standard” python installation for your platform, - you might not need to do anything special to describe it. If you haven't - configured python in user-config.jam - (and you don't specify --without-python on the Boost.Build command line), - Boost.Build will automatically execute the equivalent of -

    -
    import toolset : using ;
    -using python ;
    -
    -

    - which automatically looks for Python in the most likely places. However, - that only happens when using the Boost.Python project file (e.g. when referred - to by another project as in the quickstart method). If instead you are - linking against separately-compiled Boost.Python binaries, you should set - up a user-config.jam file with at least the minimal incantation - above. -

    -
    - -

    - If you have several versions of Python installed, or Python is installed - in an unusual way, you may want to supply any or all of the following - optional parameters to 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 (i.e. not - 2.5.1). If you have multiple Python versions - installed, the version will usually be the only configuration argument - required. -

      -
    • -
    • -

      - cmd-or-prefix -

      -

      - preferably, a command that invokes a Python interpreter. Alternatively, - the installation prefix for Python libraries and header files. Only - use the alternative formulation if there is no appropriate Python - executable available. -

      -
    • -
    • -

      - includes -

      -

      - the #include paths - for Python headers. Normally the correct path(s) will be automatically - deduced from version - and/or cmd-or-prefix. -

      -
    • -
    • -

      - libraries -

      -

      - the path to Python library binaries. On MacOS/Darwin, you can also - pass the path of the Python framework. Normally the correct path(s) - will be automatically deduced from version - and/or cmd-or-prefix. -

      -
    • -
    • -

      - condition -

      -

      - if specified, should be a set of Boost.Build properties that are - matched against the build configuration when Boost.Build selects - a Python configuration to use. See examples below for details. -

      -
    • -
    • -

      - extension-suffix -

      -

      - A string to append to the name of extension modules before the true - filename extension. You almost certainly don't need to use this. - Usually this suffix is only used when targeting a Windows debug build - of Python, and will be set automatically for you based on the value - of the |python-debugging|_ feature. However, at least one Linux distribution - (Ubuntu Feisty Fawn) has a specially configured <python-debugging> - package that claims to use such a suffix. -

      -
    • -
    -
    -
    - -

    - Note that in the examples below, case and especially - whitespace are significant. -

    -
      -
    • -

      - If you have both python 2.5 and python 2.4 installed, user-config.jam might contain -

      -
      using python : 2.5 ;  # Make both versions of Python available
      -using python : 2.4 ;  # To build with python 2.4, add python=2.4
      -                      # to your command line.
      -
      -

      - The first version configured (2.5) becomes the default. To build - against python 2.4, add python=2.4 - to the bjam command - line. -

      -
    • -
    • -

      - If you have python installed in an unusual location, you might supply - the path to the interpreter in the cmd-or-prefix - parameter: -

      -
      using python : : /usr/local/python-2.6-beta/bin/python ;
      -
      -
    • -
    • -

      - If you have a separate build of Python for use with a particular - toolset, you might supply that toolset in the condition - parameter: -

      -
      using python ;  # use for most toolsets
      -
      -# Use with Intel C++ toolset
      -using python
      -     : # version
      -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
      -     : # includes
      -     : # libraries
      -     : <toolset>intel # condition
      -     ;
      -
      -
    • -
    • -

      - If you have downloaded the Python sources and built both the normal - and the “python debugging_” builds from source - on Windows, you might see: -

      -
      using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
      -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
      -  : # includes
      -  : # libs
      -  : <python-debugging>on ;
      -
      -
    • -
    • -

      - You can set up your user-config.jam so a bjam built under Windows - can build/test both Windows and Cygwin_ python extensions. Just pass - <target-os>cygwin - in the condition - parameter for the cygwin python installation: -

      -
      # windows installation
      -using python ;
      -
      -# cygwin installation
      -using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
      -
      -

      - when you put target-os=cygwin in your build request, it should build - with the cygwin version of python: _ -

      -
      bjam target-os=cygwin toolset=gcc
      -
      -

      - This is supposed to work the other way, too (targeting windows python - with a Cygwin bjam) but it - seems as though the support in Boost.Build's toolsets for building - that way is broken at the time of this writing. -

      -
    • -
    • -

      - Note that because of the - way Boost.Build currently selects target alternatives, you - might have be very explicit in your build requests. For example, - given: -

      -
      using python : 2.5 ; # a regular windows build
      -using python : 2.4 : : : : <target-os>cygwin ;
      -
      -

      - building with -

      -
      bjam target-os=cygwin
      -
      -

      - will yield an error. Instead, you'll need to write -

      -
      bjam target-os=cygwin/python=2.4
      -
      -
    • -
    -
    -
    -

    -

    [2] - configure overwrites - the existing user-config.jam in your home directory (if any) - after making a backup of the old version. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/in_case_everything_seemed_to_wor.html b/doc/html/python/building_and_testing/no_install_quickstart/in_case_everything_seemed_to_wor.html deleted file mode 100644 index 8ae5d60c..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/in_case_everything_seemed_to_wor.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -In Case Everything Seemed to Work - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Rejoice! If you're new to Boost.Python, at this point it might be a good - idea to ignore build issues for a while and concentrate on learning the - library by going through the Tutorial - and perhaps some of the Reference Manual, - trying out what you've learned about the API by modifying the quickstart - project. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/in_case_of_trouble.html b/doc/html/python/building_and_testing/no_install_quickstart/in_case_of_trouble.html deleted file mode 100644 index 8df2612c..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/in_case_of_trouble.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -In Case of Trouble - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If you're seeing lots of compiler and/or linker error messages, it's probably - because Boost.Build is having trouble finding your Python installation. - You might want to pass the --debug-configuration option to bjam the first few times you invoke it, - to make sure that Boost.Build is correctly locating all the parts of your - Python installation. If it isn't, consider Configuring - Boost.Build as detailed below. -

    -

    - If you're still having trouble, Someone on one of the following mailing - lists may be able to help: -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/include_issues.html b/doc/html/python/building_and_testing/no_install_quickstart/include_issues.html deleted file mode 100644 index bd2c7ca3..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/include_issues.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -#include Issues - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - 1. If you should ever have occasion to #include - "python.h" directly in - a translation unit of a program using Boost.Python, use #include - "boost/python/detail/wrap_python.hpp" - instead. It handles several issues necessary for use with Boost.Python, - one of which is mentioned in the next section. -

    -

    - 2. Be sure not to #include - any system headers before wrap_python.hpp. - This restriction is actually imposed by Python, or more properly, by Python's - interaction with your operating system. See http://docs.python.org/ext/simpleExample.html - for details. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/installing_boost_python_on_your_.html b/doc/html/python/building_and_testing/no_install_quickstart/installing_boost_python_on_your_.html deleted file mode 100644 index 86813648..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/installing_boost_python_on_your_.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Installing Boost.Python on your System - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Since Boost.Python is a separately-compiled (as opposed to header-only) library, its user relies on the - services of a Boost.Python library binary. -

    -

    - If you need a regular installation of the Boost.Python library binaries - on your system, the Boost Getting - Started Guide will walk you through the steps of creating one. - If building binaries from source, you might want to supply the --with-python - argument to bjam (or the - --with-libraries=python - argument to configure), - so only the Boost.Python binary will be built, rather than all the Boost - binaries. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/modifying_the_example_project.html b/doc/html/python/building_and_testing/no_install_quickstart/modifying_the_example_project.html deleted file mode 100644 index 56984a6b..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/modifying_the_example_project.html +++ /dev/null @@ -1,167 +0,0 @@ - - - -Modifying the Example Project - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If you're content to keep your extension module forever in one source file - called extending.cpp, inside your Boost.Python distribution, - and import it forever as extending, - then you can stop here. However, it's likely that you will want to make - a few changes. There are a few things you can do without having to learn - Boost.Build in depth. -

    -

    - The project you just built is specified in two files in the current directory: - boost-build.jam, which tells bjam - where it can find the interpreted code of the Boost build system, and - Jamroot, which describes - the targets you just built. These files are heavily commented, so they - should be easy to modify. Take care, however, to preserve whitespace. Punctuation - such as ; will not be recognized - as intended by bjam if - it is not surrounded by whitespace. -

    -
    - -

    - You'll probably want to copy this project elsewhere so you can change - it without modifying your Boost distribution. To do that, simply -

    -

    - a. copy the entire example/quickstart/ directory into a new directory. -

    -

    - b. In the new copies of boost-build.jam - and Jamroot, locate the - relative path near the top of the file that is clearly marked by a comment, - and edit that path so that it refers to the same directory your Boost - distribution as it referred to when the file was in its original location - in the example/quickstart/ - directory. -

    -

    - For example, if you moved the project from /home/dave/boost_1_34_0/libs/python/example/quickstart to /home/dave/my-project, you could change the first - path in boost-build.jam from -

    -
    ../../../../tools/build/v2
    -
    -

    - to -

    -
    /home/dave/boost_1_34_0/tools/build/v2
    -
    -

    - and change the first path in Jamroot - from -

    -
    ../../../..
    -
    -

    - to -

    -
    /home/dave/boost_1_34_0
    -
    -
    -
    - -

    - The names of additional source files involved in building your extension - module or embedding application can be listed in Jamroot - right alongside extending.cpp - or embedding.cpp respectively. Just be sure to leave - whitespace around each filename: -

    -
     file1.cpp file2.cpp file3.cpp 
    -
    -

    - Naturally, if you want to change the name of a source file you can tell - Boost.Build about it by editing the name in Jamroot. -

    -
    -
    - -

    - The name of the extension module is determined by two things: -

    -

    - 1. the name in Jamroot - immediately following python-extension, - and 2. the name passed to -

    -
    BOOST_PYTHON_MODULE
    -

    - in extending.cpp. -

    -

    - To change the name of the extension module from extending - to hello, you'd edit - Jamroot, changing -

    -
    python-extension extending : extending.cpp ;
    -
    -

    - to -

    -
    python-extension hello : extending.cpp ;
    -
    -

    - and you'd edit extending.cpp, changing -

    -
    BOOST_PYTHON_MODULE(extending)
    -
    -

    - to -

    -
    BOOST_PYTHON_MODULE(hello)
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html b/doc/html/python/building_and_testing/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html deleted file mode 100644 index 57ab127c..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Notes for MinGW (and Cygwin with -mno-cygwin) GCC Users - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - -

    - If you are using a version of Python prior to 2.4.1 with a MinGW prior - to 3.0.0 (with binutils-2.13.90-20030111-1), you will need to create a - MinGW-compatible version of the Python library; the one shipped with Python - will only work with a Microsoft-compatible linker. Follow the instructions - in the “Non-Microsoft” section of the “Building Extensions: Tips - And Tricks” chapter in Installing - Python Modules to create libpythonXX.a, where - XX corresponds to the major - and minor version numbers of your Python installation. -

    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/python_debugging_builds.html b/doc/html/python/building_and_testing/no_install_quickstart/python_debugging_builds.html deleted file mode 100644 index b5ca81f3..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/python_debugging_builds.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -Python Debugging Builds - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Python can be built in a special “python debugging” configuration that - adds extra checks and instrumentation that can be very useful for developers - of extension modules. The data structures used by the debugging configuration - contain additional members, so a Python executable - built with python debugging enabled cannot be used with an extension module - or library compiled without it, and vice-versa. -

    -

    - Since pre-built “python debugging” versions of the Python executable - and libraries are not supplied with most distributions of Python, _ and we didn't want to force our users to build - them, Boost.Build does not automatically enable python debugging in its - debug build variant (which - is the default). Instead there is a special build property called python-debugging that, when used as a build - property, will define the right preprocessor symbols and select the right - libraries to link with. -

    -

    - On unix-variant platforms, the debugging versions of Python's data structures - will only be used if the symbol Py_DEBUG - is defined. On many windows compilers, when extension modules are built - with the preprocessor symbol _DEBUG, - Python defaults to force linking with a special debugging version of the - Python DLL. Since that symbol is very commonly used even when Python is - not present, Boost.Python temporarily undefines _DEBUG when Python.h is - #included from boost/python/detail/wrap_python.hpp - unless BOOST_DEBUG_PYTHON - is defined. The upshot is that if you want “python debugging”and you - aren't using Boost.Build, you should make sure BOOST_DEBUG_PYTHON - is defined, or python debugging will be suppressed. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/relocate_the_project.html b/doc/html/python/building_and_testing/no_install_quickstart/relocate_the_project.html deleted file mode 100644 index edf2c5fc..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/relocate_the_project.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -Relocate the Project - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - You'll probably want to copy this project elsewhere so you can change it - without modifying your Boost distribution. To do that, simply -

    -

    - a. copy the entire example/quickstart/ directory into a new directory. -

    -

    - b. In the new copies of boost-build.jam - and Jamroot, locate the - relative path near the top of the file that is clearly marked by a comment, - and edit that path so that it refers to the same directory your Boost distribution - as it referred to when the file was in its original location in the example/quickstart/ - directory. -

    -

    - For example, if you moved the project from /home/dave/boost_1_34_0/libs/python/example/quickstart to /home/dave/my-project, - you could change the first path in boost-build.jam - from -

    -
    *../../../..*\ /tools/build/v2
    -
    -

    - to -

    -
    */home/dave/boost_1_34_0*\ /tools/build/v2
    -
    -

    - and change the first path in Jamroot - from -

    -
    *../../../..*
    -
    -

    - to -

    -
    */home/dave/boost_1_34_0*
    -
    -

    - Add New or Change Names of Existing Source Files ................................................ -

    -

    - The names of additional source files involved in building your extension - module or embedding application can be listed in |Jamroot|_ right alongside -

    -
    extending.cpp
    -

    - or -

    -
    embedding.cpp
    -

    - respectively. Just be sure to leave whitespace around each filename:: -

    -
     file1.cpp file2.cpp file3.cpp 
    -
    -

    - Naturally, if you want to change the name of a source file you can tell - Boost.Build about it by editing the name in |Jamroot|_. -

    -

    - Change the Name of your Extension Module ........................................ -

    -

    - The name of the extension module is determined by two things: -

    -

    - 1. the name in |Jamroot|_ immediately following -

    -
    python-extension
    -

    - , and 2. the name passed to -

    -
    BOOST_PYTHON_MODULE
    -

    - in |extending.cpp|_. -

    -

    - To change the name of the extension module from -

    -
    extending
    -

    - to -

    -
    hello
    -

    - , you'd edit |Jamroot|_, changing -

    -

    - .. parsed-literal:: -

    -
    python-extension **extending** : extending.cpp ;
    -
    -

    - to -

    -

    - .. parsed-literal:: -

    -
    python-extension **hello** : extending.cpp ;
    -
    -

    - and you'd edit extending.cpp, changing -

    -

    - .. parsed-literal:: -

    -
    BOOST_PYTHON_MODULE(\ **extending**\ )
    -
    -

    - to -

    -

    - .. parsed-literal:: -

    -
    BOOST_PYTHON_MODULE(\ **hello**\ )
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/no_install_quickstart/testing_boost_python.html b/doc/html/python/building_and_testing/no_install_quickstart/testing_boost_python.html deleted file mode 100644 index 391d243c..00000000 --- a/doc/html/python/building_and_testing/no_install_quickstart/testing_boost_python.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Testing Boost.Python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - To run the full test suite for Boost.Python, invoke bjam - in the test subdirectory - of your Boost.Python distribution. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/notes_for_mingw_and_cygwin_with_.html b/doc/html/python/building_and_testing/notes_for_mingw_and_cygwin_with_.html deleted file mode 100644 index 316c2450..00000000 --- a/doc/html/python/building_and_testing/notes_for_mingw_and_cygwin_with_.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -Notes for MinGW (and Cygwin with -mno-cygwin) GCC Users - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - -

    - If you are using a version of Python prior to 2.4.1 with a MinGW prior to - 3.0.0 (with binutils-2.13.90-20030111-1), you will need to create a MinGW-compatible - version of the Python library; the one shipped with Python will only work - with a Microsoft-compatible linker. Follow the instructions in the “Non-Microsoft” - section of the “Building Extensions: Tips And Tricks” chapter in Installing Python - Modules__ to create -

    -
    libpythonXX.a
    -

    - , where -

    -
    XX
    -

    - corresponds to the major and minor version numbers of your Python installation. -

    -

    - __ http://www.python.org/doc/current/inst/index.html -

    -

    -

    - .. Note that although we tested earlier versions of Boost.Python - with Python 2.2, and we don't think we've - done anything to break compatibility, this release of Boost.Python may not - have been tested with versions of Python earlier than 2.4, so we're not 100% - sure that python 2.2 and 2.3 are supported. -

    -

    - .. Information about how to identify the static and - dynamic builds of Boost.Python: -

    -
    * `on Windows`__
    -* `on Unix variants`__
    -
    -__ ../../../more/getting_started/windows.html#library-naming
    -__ ../../../more/getting_started/unix-variants.html#library-naming
    -
    -

    - .. Because of the way most *nix platforms - share symbols among dynamically-loaded objects, I'm not certain that extension - modules built with different compiler toolsets will always use different - copies of the Boost.Python library when loaded into the same Python instance. - Not using different libraries could be a good thing if the compilers have - compatible ABIs, because extension modules built with the two libraries would - be interoperable. Otherwise, it could spell disaster, since an extension - module and the Boost.Python library would have different ideas of such things - as class layout. I would appreciate someone doing the experiment to find - out what happens. -

    -

    - .. -

    -
    configure
    -

    - overwrites the existing -

    -
    user-config.jam
    -

    - in your home directory (if any) after making a backup of the old version. -

    -

    - .. Note that the -

    -
    <target-os>cygwin
    -

    - feature is different from the -

    -
    <flavor>cygwin
    -

    - subfeature of the -

    -
    gcc
    -

    - toolset, and you might need handle both explicitly if you also have a MinGW - GCC installed. -

    -

    - .. Windows users, your home directory can be found - by typing:: -

    -
      ECHO %HOMEDRIVE%%HOMEPATH%
    -
    -into a `command prompt`_ window.
    -
    -

    - .. On Unix and similar platforms, a debugging - python and associated libraries are built by adding -

    -
    --with-pydebug
    -

    - when configuring the Python build. On Windows, the debugging version of Python - is generated by the "Win32 Debug" target of the Visual Studio project - in the PCBuild subdirectory of a full Python source code distribution. -

    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/python/building_and_testing/python_debugging_builds.html b/doc/html/python/building_and_testing/python_debugging_builds.html deleted file mode 100644 index dd9c59bb..00000000 --- a/doc/html/python/building_and_testing/python_debugging_builds.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -Python Debugging Builds - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Python can be built in a special “python debugging” configuration that - adds extra checks and instrumentation that can be very useful for developers - of extension modules. The data structures used by the debugging configuration - contain additional members, so **a Python executable built with python debugging - enabled cannot be used with an extension module or library compiled without - it, and vice-versa.** -

    -

    - Since pre-built “python debugging” versions of the Python executable - and libraries are not supplied with most distributions of Python, _ and we didn't want to force our users to build them, - Boost.Build does not automatically enable python debugging in its -

    -
    debug
    -

    - build variant (which is the default). Instead there is a special build property - called -

    -
    python-debugging
    -

    - that, when used as a build property, will define the right preprocessor symbols - and select the right libraries to link with. -

    -

    - On unix-variant platforms, the debugging versions of Python's data structures - will only be used if the symbol -

    -
    Py_DEBUG
    -

    - is defined. On many windows compilers, when extension modules are built with - the preprocessor symbol -

    -
    _DEBUG
    -

    - , Python defaults to force linking with a special debugging version of the - Python DLL. Since that symbol is very commonly used even when Python is not - present, Boost.Python temporarily undefines _DEBUG when Python.h is #included - from -

    -
    boost/python/detail/wrap_python.hpp
    -

    - - unless -

    -
    BOOST_DEBUG_PYTHON
    -

    - is defined. The upshot is that if you want “python debugging”and you - aren't using Boost.Build, you should make sure -

    -
    BOOST_DEBUG_PYTHON
    -

    - is defined, or python debugging will be suppressed. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/testing_boost_python.html b/doc/html/python/building_and_testing/testing_boost_python.html deleted file mode 100644 index f2f962f0..00000000 --- a/doc/html/python/building_and_testing/testing_boost_python.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Testing Boost.Python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - To run the full test suite for Boost.Python, invoke -

    -
    bjam
    -

    - in the -

    -
    libs/python/test
    -

    - subdirectory of your Boost distribution. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/building_and_testing/the_static_binary.html b/doc/html/python/building_and_testing/the_static_binary.html deleted file mode 100644 index 7e053670..00000000 --- a/doc/html/python/building_and_testing/the_static_binary.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -The Static Binary - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - It might be appropriate to use the static Boost.Python library in any of - the following cases: -

    -

    - - You are extending_ python and the types exposed in your dynamically-loaded - extension module don't need to be used by any other Boost.Python extension - modules, and you don't care if the core library code is duplicated among - them. -

    -

    - - You are embedding_ python in your application and either: -

    -
    - You are targeting a Unix variant OS other than MacOS or AIX,
    -  where the dynamically-loaded extension modules can see the
    -  Boost.Python library symbols that are part of the executable.
    -
    -- Or, you have statically linked some Boost.Python extension
    -  modules into your application and you don't care if any
    -  dynamically-loaded Boost.Python extension modules are able to
    -  use the types exposed by your statically-linked extension
    -  modules (and vice-versa).
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/configuration.html b/doc/html/python/configuration.html deleted file mode 100644 index 66d5cfab..00000000 --- a/doc/html/python/configuration.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Configuration - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    • - Boost.Python* uses several configuration macros in <boost/config.hpp>, - as well as configuration macros meant to be supplied by the application. - These macros are documented here. -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/configuration/application_defined_macros.html b/doc/html/python/configuration/application_defined_macros.html deleted file mode 100644 index fe483911..00000000 --- a/doc/html/python/configuration/application_defined_macros.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Application Defined Macros - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - These are the macros that may be defined by an application using Boost.Python. - Note that if you extend a strict interpretation of the C++ standard to cover - dynamic libraries, using different values of these macros when compiling - different libraries (including extension modules and the Boost.Python library - itself) is a violation of the ODR. However, we know of no C++ implementations - on which this particular violation is detectable or causes any problems. -

    -

    - ============================ ======================== ======================== - Macro Default Meaning ============================ ======================== - ======================== BOOST_PYTHON_MAX_ARITY 15 The maximum arity of any - function, member function, or constructor to be wrapped, invocation of a - Boost.Python function wich is specified as taking arguments x1, x2,...Xn. - This includes, in particular, callback mechanisms such as object::operator()(...) - or call_method<R>(... ). -

    -

    - BOOST_PYTHON_MAX_BASES 10 The maximum number of template arguments to the - bases<...> class template, which is used to specify the bases of a - wrapped C++ class.. BOOST_PYTHON_STATIC_MODULE not defined - If defined, prevents your module initialization function from being treated - as an exported symbol on platforms which support that distinction in-code - BOOST_PYTHON_ENABLE_CDECL not defined If defined, allows - functions using the __cdecl calling convention to be wrapped. BOOST_PYTHON_ENABLE_STDCALL - not defined If defined, allows functions using the __stdcall - calling convention to be wrapped. BOOST_PYTHON_ENABLE_FASTCALL not - defined If defined, allows functions using the __fastcall calling - convention to be wrapped. ============================ ======================== - ======================== -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/configuration/library_defined_defined_macros.html b/doc/html/python/configuration/library_defined_defined_macros.html deleted file mode 100644 index 52baf494..00000000 --- a/doc/html/python/configuration/library_defined_defined_macros.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -Library Defined Defined Macros - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - -

    - ================================================ ======================== - ======================== Macro Default Meaning ================================================ - ======================== ======================== BOOST_PYTHON_TYPE_ID_NAME - not defined If defined, this indicates that the type_info - comparison across shared library boundaries does not work on this platform. - In other words, if shared-lib-1 passes typeid(T) - to a function in shared-lib-2 which compares it to typeid(T), - that comparison may return false. - If this macro is #defined, Boost.Python uses and compares typeid(T).name() - instead of using and comparing the std::type_info - objects directly. BOOST_PYTHON_NO_PY_SIGNATURES not defined - If defined for a module no pythonic signatures are generated for the docstrings - of the module functions, and no python type is associated with any of the - converters registered by the module. This also reduces the binary size of - the module by about 14% (gcc compiled). If defined for the boost_python runtime - library, the default for the docstring_options.enable_py_signatures() is set to false. - BOOST_PYTHON_SUPPORTS_PY_SIGNATURES not defined This - macro is defined to enable a smooth transition from older Boost.Python versions - which do not support pythonic signatures. For example usage see here. BOOST_PYTHON_PY_SIGNATURES_PROPER_INIT_SELF_TYPE - not defined If defined the python type of __init__ method "self" parameters - is properly generated, otherwise object is used. It is undefined by default - because it increases the binary size of the module by about 14% (gcc compiled). - ================================================ ======================== - ======================== -

    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/python/include_issues.html b/doc/html/python/include_issues.html deleted file mode 100644 index 08dd2005..00000000 --- a/doc/html/python/include_issues.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -#include Issues - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - 1. If you should ever have occasion to -

    -
    #include "python.h"
    -

    - directly in a translation unit of a program using Boost.Python, use -

    -
    #include "boost/python/detail/wrap_python.hpp"
    -

    - instead. It handles several issues necessary for use with Boost.Python, one - of which is mentioned in the next section. -

    -

    - 2. Be sure not to -

    -
    #include
    -

    - any system headers before -

    -
    wrap_python.hpp
    -

    - . This restriction is actually imposed by Python, or more properly, by Python's - interaction with your operating system. See http://docs.python.org/ext/simpleExample.html - for details. -

    -

    - .. _python-debugging: .. _python debugging: -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart.html b/doc/html/python/no_install_quickstart.html deleted file mode 100644 index b31e7c0f..00000000 --- a/doc/html/python/no_install_quickstart.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -No-Install Quickstart - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - There is no need to “install Boost” in order to get started using Boost.Python. - These instructions use http://boost.org/build - projects, which will build those binaries as soon as they're needed. Your first - tests may take a little longer while you wait for Boost.Python to build, but - doing things this way will save you from worrying about build intricacies like - which library binaries to use for a specific compiler configuration and figuring - out the right compiler options to use yourself. -

    -
    - - - - - -
    [Note]Note
    -

    - Of course it's possible to use other build systems to build Boost.Python - and its extensions, but they are not officially supported by Boost. Moreover - 99% of all “I can't build Boost.Python” problems - come from trying to use another build system without first following - these instructions. -

    -

    - If you want to use another system anyway, we suggest that you follow these - instructions, and then invoke -

    -
    bjam
    -

    - with the -

    -

    - -a - -ofilename -

    -

    - options to dump the build commands it executes to a file, so you can see - what your alternate build system needs to do. -

    -
    -
    - -

    - 1. Get Boost; see sections 1 and 2 of the Boost Getting - Started Guide. -

    -

    - 2. Get the bjam build driver. - See section 5 of the Boost Getting - Started Guide. -

    -

    - 3. cd into the example/quickstart/ - directory of your Boost.Python installation, which contains a small example - project. -

    -

    - 4. Invoke bjam. Replace the - “stage“ argument from - the example invocation from section 5 of the Boost Getting - Started Guide with “test,“ - to build all the test targets. Also add the argument “--verbose-test” to see the output generated by - the tests when they are run. On Windows, your bjam - invocation might look something like: -

    -
    C:\\boost_1_34_0\\...\\quickstart> bjam toolset=msvc --verbose-test test
    -
    -

    - and on Unix variants, perhaps, -

    -
    ~/boost_1_34_0/.../quickstart$ bjam toolset=gcc --verbose-test test
    -
    -
    - - - - - -
    [Note]Note

    - For the sake of concision, the rest of this guide will use unix-style forward - slashes in pathnames instead of the backslashes with which Windows users - may be more familiar. The forward slashes should work everywhere except - in Command - Prompt windows, where you should use backslashes. -

    -

    - If you followed this procedure successfully, you will have built an extension - module called extending and - tested it by running a Python script called test_extending.py. You - will also have built and run a simple application called embedding - that embeds python. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/choosing_a_boost_python_library_.html b/doc/html/python/no_install_quickstart/choosing_a_boost_python_library_.html deleted file mode 100644 index 8dd866d8..00000000 --- a/doc/html/python/no_install_quickstart/choosing_a_boost_python_library_.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -Choosing a Boost.Python Library Binary - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If—instead of letting Boost.Build construct and link with the right libraries - automatically—you choose to use a pre-built Boost.Python library, you'll - need to think about which one to link with. The Boost.Python binary comes - in both static and dynamic flavors. Take care to choose the right flavor - for your application. [3] -

    -
    - -

    - The dynamic library is the safest and most-versatile choice: -

    -
      -
    • - A single copy of the library code is used by all extension modules - built with a given toolset. [4] -
    • -
    • - The library contains a type conversion registry. Because one registry - is shared among all extension modules, instances of a class exposed - to Python in one dynamically-loaded extension module can be passed - to functions exposed in another such module. -
    • -
    -
    -
    -

    -

    [3] - Information about how to identify the static and dynamic builds of Boost.Python - on Windows - / Unix - variants -

    -

    [4] - Because of the way most *nix platforms share symbols among dynamically-loaded - objects, I'm not certain that extension modules built with different - compiler toolsets will always use different copies of the Boost.Python - library when loaded into the same Python instance. Not using different - libraries could be a good thing if the compilers have compatible - ABIs, because extension modules built with the two libraries would - be interoperable. Otherwise, it could spell disaster, since an extension - module and the Boost.Python library would have different ideas of - such things as class layout. I would appreciate someone doing the - experiment to find out what happens. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/choosing_a_boost_python_library_/the_static_binary.html b/doc/html/python/no_install_quickstart/choosing_a_boost_python_library_/the_static_binary.html deleted file mode 100644 index 34216160..00000000 --- a/doc/html/python/no_install_quickstart/choosing_a_boost_python_library_/the_static_binary.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -The Static Binary - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - It might be appropriate to use the static Boost.Python library in any of - the following cases: -

    -
      -
    • - You are extending python and the types exposed in your dynamically-loaded - extension module don't need to be used by any other Boost.Python extension - modules, and you don't care if the core library code is duplicated - among them. -
    • -
    • - You are embedding python in your application and either: -
        -
      • - You are targeting a Unix variant OS other than MacOS or AIX, - where the dynamically-loaded extension modules can “see” - the Boost.Python library symbols that are part of the executable. -
      • -
      • - Or, you have statically linked some Boost.Python extension modules - into your application and you don't care if any dynamically-loaded - Boost.Python extension modules are able to use the types exposed - by your statically-linked extension modules (and vice-versa). -
      • -
      -
    • -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/configuration.html b/doc/html/python/no_install_quickstart/configuration.html deleted file mode 100644 index 7b02fef9..00000000 --- a/doc/html/python/no_install_quickstart/configuration.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Configuration - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    - -
    • - Boost.Python* uses several configuration macros in <boost/config.hpp>, - as well as configuration macros meant to be supplied by the application. - These macros are documented here. -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/configuration/application_defined_macros.html b/doc/html/python/no_install_quickstart/configuration/application_defined_macros.html deleted file mode 100644 index 493d16cc..00000000 --- a/doc/html/python/no_install_quickstart/configuration/application_defined_macros.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Application Defined Macros - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - These are the macros that may be defined by an application using Boost.Python. - Note that if you extend a strict interpretation of the C++ standard to - cover dynamic libraries, using different values of these macros when compiling - different libraries (including extension modules and the Boost.Python library - itself) is a violation of the ODR. However, we know of no C++ implementations - on which this particular violation is detectable or causes any problems. -

    -

    - ============================ ======================== ======================== - Macro Default Meaning ============================ ======================== - ======================== BOOST_PYTHON_MAX_ARITY 15 The maximum arity of - any function, member function, or constructor to be wrapped, invocation - of a Boost.Python function wich is specified as taking arguments x1, x2,...Xn. - This includes, in particular, callback mechanisms such as object::operator()(...) - or call_method<R>(... ). -

    -

    - BOOST_PYTHON_MAX_BASES 10 The maximum number of template arguments to the - bases<...> class template, which is used to specify the bases of - a wrapped C++ class.. BOOST_PYTHON_STATIC_MODULE not defined - If defined, prevents your module initialization function from being treated - as an exported symbol on platforms which support that distinction in-code - BOOST_PYTHON_ENABLE_CDECL not defined If defined, - allows functions using the __cdecl calling convention to be wrapped. BOOST_PYTHON_ENABLE_STDCALL - not defined If defined, allows functions using the - __stdcall calling convention to be wrapped. BOOST_PYTHON_ENABLE_FASTCALL - not defined If defined, allows functions using the - __fastcall calling convention to be wrapped. ============================ - ======================== ======================== -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/configuration/library_defined_defined_macros.html b/doc/html/python/no_install_quickstart/configuration/library_defined_defined_macros.html deleted file mode 100644 index d9c48075..00000000 --- a/doc/html/python/no_install_quickstart/configuration/library_defined_defined_macros.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -Library Defined Defined Macros - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - -

    - ================================================ ======================== - ======================== Macro Default Meaning ================================================ - ======================== ======================== BOOST_PYTHON_TYPE_ID_NAME - not defined If defined, this indicates that the type_info - comparison across shared library boundaries does not work on this platform. - In other words, if shared-lib-1 passes typeid(T) - to a function in shared-lib-2 which compares it to typeid(T), - that comparison may return false. - If this macro is #defined, Boost.Python uses and compares typeid(T).name() instead of using and comparing the std::type_info objects directly. BOOST_PYTHON_NO_PY_SIGNATURES - not defined If defined for a module no pythonic signatures - are generated for the docstrings of the module functions, and no python - type is associated with any of the converters registered by the module. - This also reduces the binary size of the module by about 14% (gcc compiled). - If defined for the boost_python runtime library, the default for the docstring_options.enable_py_signatures() - is set to false. BOOST_PYTHON_SUPPORTS_PY_SIGNATURES - not defined This macro is defined to enable a smooth - transition from older Boost.Python versions which do not support pythonic - signatures. For example usage see here. BOOST_PYTHON_PY_SIGNATURES_PROPER_INIT_SELF_TYPE - not defined If defined the python type of __init__ method "self" parameters - is properly generated, otherwise object is used. It is undefined by default - because it increases the binary size of the module by about 14% (gcc compiled). - ================================================ ======================== - ======================== -

    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/python/no_install_quickstart/configuring_boost_build.html b/doc/html/python/no_install_quickstart/configuring_boost_build.html deleted file mode 100644 index 556834f8..00000000 --- a/doc/html/python/no_install_quickstart/configuring_boost_build.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -Configuring Boost.Build - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - As described in the Reference Manual, - a file called user-config.jam in your home directory is used to specify - the tools and libraries available to the build system. You may need to create - or edit user-config.jam to tell Boost.Build how to invoke Python, - #include its headers, and - link with its libraries. -

    -
    - - - - - -
    [Note]Note

    - If you are using a unix-variant OS and you ran Boost's configure - script, it may have generated a user-config.jam - for you. [2] If your configure/make sequence was successful and Boost.Python - binaries were built, your user-config.jam - file is probably already correct. -

    -

    - If you have one fairly “standard” python installation for your platform, - you might not need to do anything special to describe it. If you haven't - configured python in user-config.jam (and - you don't specify --without-python - on the Boost.Build command line), Boost.Build will automatically execute - the equivalent of -

    -
    import toolset : using ;
    -using python ;
    -
    -

    - which automatically looks for Python in the most likely places. However, - that only happens when using the Boost.Python project file (e.g. when referred - to by another project as in the quickstart method). If instead you are linking - against separately-compiled Boost.Python binaries, you should set up a user-config.jam file - with at least the minimal incantation above. -

    -
    - -

    - If you have several versions of Python installed, or Python is installed - in an unusual way, you may want to supply any or all of the following optional - parameters to 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 (i.e. not 2.5.1). If you have multiple Python versions - installed, the version will usually be the only configuration argument - required. -

      -
    • -
    • -

      - cmd-or-prefix -

      -

      - preferably, a command that invokes a Python interpreter. Alternatively, - the installation prefix for Python libraries and header files. Only - use the alternative formulation if there is no appropriate Python executable - available. -

      -
    • -
    • -

      - includes -

      -

      - the #include paths - for Python headers. Normally the correct path(s) will be automatically - deduced from version - and/or cmd-or-prefix. -

      -
    • -
    • -

      - libraries -

      -

      - the path to Python library binaries. On MacOS/Darwin, you can also - pass the path of the Python framework. Normally the correct path(s) - will be automatically deduced from version - and/or cmd-or-prefix. -

      -
    • -
    • -

      - condition -

      -

      - if specified, should be a set of Boost.Build properties that are matched - against the build configuration when Boost.Build selects a Python configuration - to use. See examples below for details. -

      -
    • -
    • -

      - extension-suffix -

      -

      - A string to append to the name of extension modules before the true - filename extension. You almost certainly don't need to use this. Usually - this suffix is only used when targeting a Windows debug build of Python, - and will be set automatically for you based on the value of the |python-debugging|_ - feature. However, at least one Linux distribution (Ubuntu Feisty Fawn) - has a specially configured <python-debugging> - package that claims to use such a suffix. -

      -
    • -
    -
    -
    -

    -

    [2] - configure overwrites - the existing user-config.jam in your home directory (if any) - after making a backup of the old version. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/configuring_boost_build/examples.html b/doc/html/python/no_install_quickstart/configuring_boost_build/examples.html deleted file mode 100644 index 82b87f21..00000000 --- a/doc/html/python/no_install_quickstart/configuring_boost_build/examples.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Note that in the examples below, case and especially - whitespace are significant. -

    -
      -
    • -

      - If you have both python 2.5 and python 2.4 installed, user-config.jam might contain -

      -
      using python : 2.5 ;  # Make both versions of Python available
      -using python : 2.4 ;  # To build with python 2.4, add python=2.4
      -                      # to your command line.
      -
      -

      - The first version configured (2.5) becomes the default. To build against - python 2.4, add python=2.4 - to the bjam command - line. -

      -
    • -
    • -

      - If you have python installed in an unusual location, you might supply - the path to the interpreter in the cmd-or-prefix - parameter: -

      -
      using python : : /usr/local/python-2.6-beta/bin/python ;
      -
      -
    • -
    • -

      - If you have a separate build of Python for use with a particular toolset, - you might supply that toolset in the condition - parameter: -

      -
      using python ;  # use for most toolsets
      -
      -# Use with Intel C++ toolset
      -using python
      -     : # version
      -     : c:\\Devel\\Python-2.5-IntelBuild\\PCBuild\\python # cmd-or-prefix
      -     : # includes
      -     : # libraries
      -     : <toolset>intel # condition
      -     ;
      -
      -
    • -
    • -

      - If you have downloaded the Python sources and built both the normal - and the “python debugging_” builds from source - on Windows, you might see: -

      -
      using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ;
      -using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d
      -  : # includes
      -  : # libs
      -  : <python-debugging>on ;
      -
      -
    • -
    • -

      - You can set up your user-config.jam so a bjam built under Windows can - build/test both Windows and Cygwin_ python extensions. Just pass <target-os>cygwin - in the condition parameter - for the cygwin python installation: -

      -
      # windows installation
      -using python ;
      -
      -# cygwin installation
      -using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;
      -
      -

      - when you put target-os=cygwin in your build request, it should build - with the cygwin version of python: _ -

      -
      bjam target-os=cygwin toolset=gcc
      -
      -

      - This is supposed to work the other way, too (targeting windows python - with a Cygwin bjam) but it seems - as though the support in Boost.Build's toolsets for building that way - is broken at the time of this writing. -

      -
    • -
    • -

      - Note that because of the - way Boost.Build currently selects target alternatives, you - might have be very explicit in your build requests. For example, given: -

      -
      using python : 2.5 ; # a regular windows build
      -using python : 2.4 : : : : <target-os>cygwin ;
      -
      -

      - building with -

      -
      bjam target-os=cygwin
      -
      -

      - will yield an error. Instead, you'll need to write -

      -
      bjam target-os=cygwin/python=2.4
      -
      -
    • -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/in_case_everything_seemed_to_wor.html b/doc/html/python/no_install_quickstart/in_case_everything_seemed_to_wor.html deleted file mode 100644 index 50c55049..00000000 --- a/doc/html/python/no_install_quickstart/in_case_everything_seemed_to_wor.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -In Case Everything Seemed to Work - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Rejoice! If you're new to Boost.Python, at this point it might be a good - idea to ignore build issues for a while and concentrate on learning the library - by going through the Tutorial and - perhaps some of the Reference Manual, - trying out what you've learned about the API by modifying the quickstart - project. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/in_case_of_trouble.html b/doc/html/python/no_install_quickstart/in_case_of_trouble.html deleted file mode 100644 index a2faa01c..00000000 --- a/doc/html/python/no_install_quickstart/in_case_of_trouble.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -In Case of Trouble - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If you're seeing lots of compiler and/or linker error messages, it's probably - because Boost.Build is having trouble finding your Python installation. You - might want to pass the --debug-configuration - option to bjam the first - few times you invoke it, to make sure that Boost.Build is correctly locating - all the parts of your Python installation. If it isn't, consider Configuring - Boost.Build as detailed below. -

    -

    - If you're still having trouble, Someone on one of the following mailing lists - may be able to help: -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/include_issues.html b/doc/html/python/no_install_quickstart/include_issues.html deleted file mode 100644 index 7832bb3b..00000000 --- a/doc/html/python/no_install_quickstart/include_issues.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -#include Issues - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - 1. If you should ever have occasion to #include - "python.h" directly in a - translation unit of a program using Boost.Python, use #include - "boost/python/detail/wrap_python.hpp" - instead. It handles several issues necessary for use with Boost.Python, one - of which is mentioned in the next section. -

    -

    - 2. Be sure not to #include - any system headers before wrap_python.hpp. This - restriction is actually imposed by Python, or more properly, by Python's - interaction with your operating system. See http://docs.python.org/ext/simpleExample.html - for details. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/installing_boost_python_on_your_.html b/doc/html/python/no_install_quickstart/installing_boost_python_on_your_.html deleted file mode 100644 index 486c9356..00000000 --- a/doc/html/python/no_install_quickstart/installing_boost_python_on_your_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Installing Boost.Python on your System - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Since Boost.Python is a separately-compiled (as opposed to header-only) library, its user relies on the services - of a Boost.Python library binary. -

    -

    - If you need a regular installation of the Boost.Python library binaries on - your system, the Boost Getting - Started Guide will walk you through the steps of creating one. If - building binaries from source, you might want to supply the --with-python - argument to bjam (or the - --with-libraries=python - argument to configure), so - only the Boost.Python binary will be built, rather than all the Boost binaries. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/modifying_the_example_project.html b/doc/html/python/no_install_quickstart/modifying_the_example_project.html deleted file mode 100644 index 82274121..00000000 --- a/doc/html/python/no_install_quickstart/modifying_the_example_project.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -Modifying the Example Project - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If you're content to keep your extension module forever in one source file - called extending.cpp, inside your Boost.Python distribution, - and import it forever as extending, - then you can stop here. However, it's likely that you will want to make a - few changes. There are a few things you can do without having to learn Boost.Build in depth. -

    -

    - The project you just built is specified in two files in the current directory: - boost-build.jam, which tells bjam - where it can find the interpreted code of the Boost build system, and Jamroot, which describes the targets you - just built. These files are heavily commented, so they should be easy to - modify. Take care, however, to preserve whitespace. Punctuation such as - ; will not be recognized as - intended by bjam if it is - not surrounded by whitespace. -

    -
    - -

    - You'll probably want to copy this project elsewhere so you can change it - without modifying your Boost distribution. To do that, simply -

    -

    - a. copy the entire example/quickstart/ directory into a new directory. -

    -

    - b. In the new copies of boost-build.jam - and Jamroot, locate the - relative path near the top of the file that is clearly marked by a comment, - and edit that path so that it refers to the same directory your Boost distribution - as it referred to when the file was in its original location in the example/quickstart/ - directory. -

    -

    - For example, if you moved the project from /home/dave/boost_1_34_0/libs/python/example/quickstart to /home/dave/my-project, - you could change the first path in boost-build.jam - from -

    -
    ../../../../tools/build/v2
    -
    -

    - to -

    -
    /home/dave/boost_1_34_0/tools/build/v2
    -
    -

    - and change the first path in Jamroot - from -

    -
    ../../../..
    -
    -

    - to -

    -
    /home/dave/boost_1_34_0
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/modifying_the_example_project/add_new_or_change_names_of_exist.html b/doc/html/python/no_install_quickstart/modifying_the_example_project/add_new_or_change_names_of_exist.html deleted file mode 100644 index a5a6436e..00000000 --- a/doc/html/python/no_install_quickstart/modifying_the_example_project/add_new_or_change_names_of_exist.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Add New or Change Names of Existing Source Files - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The names of additional source files involved in building your extension - module or embedding application can be listed in Jamroot - right alongside extending.cpp - or embedding.cpp respectively. Just be sure to leave - whitespace around each filename: -

    -
     file1.cpp file2.cpp file3.cpp 
    -
    -

    - Naturally, if you want to change the name of a source file you can tell - Boost.Build about it by editing the name in Jamroot. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/modifying_the_example_project/change_the_name_of_your_extensio.html b/doc/html/python/no_install_quickstart/modifying_the_example_project/change_the_name_of_your_extensio.html deleted file mode 100644 index 315b0bb9..00000000 --- a/doc/html/python/no_install_quickstart/modifying_the_example_project/change_the_name_of_your_extensio.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Change the Name of your Extension Module - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The name of the extension module is determined by two things: -

    -

    - 1. the name in Jamroot - immediately following python-extension, - and 2. the name passed to -

    -
    BOOST_PYTHON_MODULE
    -

    - in extending.cpp. -

    -

    - To change the name of the extension module from extending - to hello, you'd edit Jamroot, changing -

    -
    python-extension extending : extending.cpp ;
    -
    -

    - to -

    -
    python-extension hello : extending.cpp ;
    -
    -

    - and you'd edit extending.cpp, changing -

    -
    BOOST_PYTHON_MODULE(extending)
    -
    -

    - to -

    -
    BOOST_PYTHON_MODULE(hello)
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html b/doc/html/python/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html deleted file mode 100644 index 05eedd55..00000000 --- a/doc/html/python/no_install_quickstart/notes_for_mingw_and_cygwin_with_.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Notes for MinGW (and Cygwin with -mno-cygwin) GCC Users - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - -

    - If you are using a version of Python prior to 2.4.1 with a MinGW prior to - 3.0.0 (with binutils-2.13.90-20030111-1), you will need to create a MinGW-compatible - version of the Python library; the one shipped with Python will only work - with a Microsoft-compatible linker. Follow the instructions in the “Non-Microsoft” - section of the “Building Extensions: Tips And Tricks” chapter in Installing Python - Modules to create libpythonXX.a, where - XX corresponds to the major - and minor version numbers of your Python installation. -

    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/python/no_install_quickstart/python_debugging_builds.html b/doc/html/python/no_install_quickstart/python_debugging_builds.html deleted file mode 100644 index f714cf2f..00000000 --- a/doc/html/python/no_install_quickstart/python_debugging_builds.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Python Debugging Builds - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Python can be built in a special “python debugging” configuration that - adds extra checks and instrumentation that can be very useful for developers - of extension modules. The data structures used by the debugging configuration - contain additional members, so a Python executable - built with python debugging enabled cannot be used with an extension module - or library compiled without it, and vice-versa. -

    -

    - Since pre-built “python debugging” versions of the Python executable - and libraries are not supplied with most distributions of Python, _ and we didn't want to force our users to build them, - Boost.Build does not automatically enable python debugging in its debug build variant (which is the default). - Instead there is a special build property called python-debugging - that, when used as a build property, will define the right preprocessor symbols - and select the right libraries to link with. -

    -

    - On unix-variant platforms, the debugging versions of Python's data structures - will only be used if the symbol Py_DEBUG - is defined. On many windows compilers, when extension modules are built with - the preprocessor symbol _DEBUG, - Python defaults to force linking with a special debugging version of the - Python DLL. Since that symbol is very commonly used even when Python is not - present, Boost.Python temporarily undefines _DEBUG when Python.h is #included - from boost/python/detail/wrap_python.hpp - unless BOOST_DEBUG_PYTHON - is defined. The upshot is that if you want “python debugging”and you - aren't using Boost.Build, you should make sure BOOST_DEBUG_PYTHON - is defined, or python debugging will be suppressed. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/no_install_quickstart/testing_boost_python.html b/doc/html/python/no_install_quickstart/testing_boost_python.html deleted file mode 100644 index e4f642f4..00000000 --- a/doc/html/python/no_install_quickstart/testing_boost_python.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Testing Boost.Python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - To run the full test suite for Boost.Python, invoke bjam - in the test subdirectory - of your Boost.Python distribution. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/notes_for_mingw_and_cygwin_with_.html b/doc/html/python/notes_for_mingw_and_cygwin_with_.html deleted file mode 100644 index 37cefe49..00000000 --- a/doc/html/python/notes_for_mingw_and_cygwin_with_.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -Notes for MinGW (and Cygwin with -mno-cygwin) GCC Users - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - -

    - If you are using a version of Python prior to 2.4.1 with a MinGW prior to 3.0.0 - (with binutils-2.13.90-20030111-1), you will need to create a MinGW-compatible - version of the Python library; the one shipped with Python will only work with - a Microsoft-compatible linker. Follow the instructions in the “Non-Microsoft” - section of the “Building Extensions: Tips And Tricks” chapter in Installing Python - Modules__ to create -

    -
    libpythonXX.a
    -

    - , where -

    -
    XX
    -

    - corresponds to the major and minor version numbers of your Python installation. -

    -

    - __ http://www.python.org/doc/current/inst/index.html -

    -

    -

    - .. Note that although we tested earlier versions of Boost.Python - with Python 2.2, and we don't think we've - done anything to break compatibility, this release of Boost.Python may not - have been tested with versions of Python earlier than 2.4, so we're not 100% - sure that python 2.2 and 2.3 are supported. -

    -

    - .. Information about how to identify the static and dynamic - builds of Boost.Python: -

    -
    * `on Windows`__
    -* `on Unix variants`__
    -
    -__ ../../../more/getting_started/windows.html#library-naming
    -__ ../../../more/getting_started/unix-variants.html#library-naming
    -
    -

    - .. Because of the way most *nix platforms share - symbols among dynamically-loaded objects, I'm not certain that extension modules - built with different compiler toolsets will always use different copies of - the Boost.Python library when loaded into the same Python instance. Not using - different libraries could be a good thing if the compilers have compatible - ABIs, because extension modules built with the two libraries would be interoperable. - Otherwise, it could spell disaster, since an extension module and the Boost.Python - library would have different ideas of such things as class layout. I would - appreciate someone doing the experiment to find out what happens. -

    -

    - .. -

    -
    configure
    -

    - overwrites the existing -

    -
    user-config.jam
    -

    - in your home directory (if any) after making a backup of the old version. -

    -

    - .. Note that the -

    -
    <target-os>cygwin
    -

    - feature is different from the -

    -
    <flavor>cygwin
    -

    - subfeature of the -

    -
    gcc
    -

    - toolset, and you might need handle both explicitly if you also have a MinGW - GCC installed. -

    -

    - .. Windows users, your home directory can be found - by typing:: -

    -
      ECHO %HOMEDRIVE%%HOMEPATH%
    -
    -into a `command prompt`_ window.
    -
    -

    - .. On Unix and similar platforms, a debugging - python and associated libraries are built by adding -

    -
    --with-pydebug
    -

    - when configuring the Python build. On Windows, the debugging version of Python - is generated by the "Win32 Debug" target of the Visual Studio project - in the PCBuild subdirectory of a full Python source code distribution. -

    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/python/python_debugging_builds.html b/doc/html/python/python_debugging_builds.html deleted file mode 100644 index b076e1ad..00000000 --- a/doc/html/python/python_debugging_builds.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -Python Debugging Builds - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Python can be built in a special “python debugging” configuration that - adds extra checks and instrumentation that can be very useful for developers - of extension modules. The data structures used by the debugging configuration - contain additional members, so **a Python executable built with python debugging - enabled cannot be used with an extension module or library compiled without - it, and vice-versa.** -

    -

    - Since pre-built “python debugging” versions of the Python executable and - libraries are not supplied with most distributions of Python, _ - and we didn't want to force our users to build them, Boost.Build does not automatically - enable python debugging in its -

    -
    debug
    -

    - build variant (which is the default). Instead there is a special build property - called -

    -
    python-debugging
    -

    - that, when used as a build property, will define the right preprocessor symbols - and select the right libraries to link with. -

    -

    - On unix-variant platforms, the debugging versions of Python's data structures - will only be used if the symbol -

    -
    Py_DEBUG
    -

    - is defined. On many windows compilers, when extension modules are built with - the preprocessor symbol -

    -
    _DEBUG
    -

    - , Python defaults to force linking with a special debugging version of the - Python DLL. Since that symbol is very commonly used even when Python is not - present, Boost.Python temporarily undefines _DEBUG when Python.h is #included - from -

    -
    boost/python/detail/wrap_python.hpp
    -

    - - unless -

    -
    BOOST_DEBUG_PYTHON
    -

    - is defined. The upshot is that if you want “python debugging”and you aren't - using Boost.Build, you should make sure -

    -
    BOOST_DEBUG_PYTHON
    -

    - is defined, or python debugging will be suppressed. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/requirements.html b/doc/html/python/requirements.html deleted file mode 100644 index c29b56b0..00000000 --- a/doc/html/python/requirements.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Boost.Python requires Python 2.2 - [1] or newer. -

    -
    -

    -

    [1] - Note that although we tested earlier versions of Boost.Python with Python - 2.2, and we don't think we've done anything - to break compatibility, this release of Boost.Python may not have been tested - with versions of Python earlier than 2.4, so we're not 100% sure that python - 2.2 and 2.3 are supported. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/python/testing_boost_python.html b/doc/html/python/testing_boost_python.html deleted file mode 100644 index 88738197..00000000 --- a/doc/html/python/testing_boost_python.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Testing Boost.Python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - To run the full test suite for Boost.Python, invoke -

    -
    bjam
    -

    - in the -

    -
    libs/python/test
    -

    - subdirectory of your Boost distribution. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/reference_HTML.manifest b/doc/html/reference/HTML.manifest similarity index 100% rename from doc/html/reference/reference_HTML.manifest rename to doc/html/reference/HTML.manifest diff --git a/doc/html/reference/concepts.html b/doc/html/reference/concepts.html index 49ca292b..7a040431 100644 --- a/doc/html/reference/concepts.html +++ b/doc/html/reference/concepts.html @@ -3,14 +3,14 @@ Chapter 1. Concepts - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/concepts/dereferenceable.html b/doc/html/reference/concepts/dereferenceable.html index 78df9ff0..13ebaea6 100644 --- a/doc/html/reference/concepts/dereferenceable.html +++ b/doc/html/reference/concepts/dereferenceable.html @@ -3,14 +3,14 @@ Dereferenceable - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/concepts/dereferenceable/concept_requirements.html b/doc/html/reference/concepts/dereferenceable/concept_requirements.html deleted file mode 100644 index 273e098c..00000000 --- a/doc/html/reference/concepts/dereferenceable/concept_requirements.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In the table below, T is - a model of Dereferenceable, and x - denotes an object of type T. - In addition, all pointers are Dereferenceable. -

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

    - Expression -

    -
    -

    - Result -

    -
    -

    - Operational Semantics -

    -
    -

    - get_pointer(x) -

    -
    -

    - convertible to pointee<T>::type* -

    -
    -

    - &*x, - or a null pointer -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/extractor.html b/doc/html/reference/concepts/extractor.html index 38ebbea2..a8de1b6a 100644 --- a/doc/html/reference/concepts/extractor.html +++ b/doc/html/reference/concepts/extractor.html @@ -3,14 +3,14 @@ Extractor - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/concepts/extractor/concept_requirements.html b/doc/html/reference/concepts/extractor/concept_requirements.html deleted file mode 100644 index 129f9bef..00000000 --- a/doc/html/reference/concepts/extractor/concept_requirements.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In the table below, X denotes - a model of Extractor and - a denotes an instance of - a Python object type. -

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

    - Expression -

    -
    -

    - Type -

    -
    -

    - Semantics -

    -
    -

    - X::execute(a) -

    -
    -

    - non-void -

    -
    -

    - Returns the C++ object being extracted. The execute function - must not be overloaded. -

    -
    -

    - &a.ob_type -

    -
    -

    - PyTypeObject** -

    -
    -

    - Points to the ob_type - field of an object which is layout-compatible with PyObject -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/extractor/notes.html b/doc/html/reference/concepts/extractor/notes.html deleted file mode 100644 index d80dba42..00000000 --- a/doc/html/reference/concepts/extractor/notes.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -Notes - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Notes -

    -

    - Informally, an Extractor's execute member must be a non-overloaded static - function whose single argument is a Python object type. Acceptable Python - object types include those publicly (and unambiguously) derived from PyObject, - and POD types which are layout-compatible with PyObject. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/holdergenerator.html b/doc/html/reference/concepts/holdergenerator.html index 2e823700..97ae0544 100644 --- a/doc/html/reference/concepts/holdergenerator.html +++ b/doc/html/reference/concepts/holdergenerator.html @@ -3,14 +3,14 @@ HolderGenerator - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/concepts/holdergenerator/concept_requirements.html b/doc/html/reference/concepts/holdergenerator/concept_requirements.html deleted file mode 100644 index e1c5d6d9..00000000 --- a/doc/html/reference/concepts/holdergenerator/concept_requirements.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In the table below, G denotes - an type which models HolderGenerator, - and X denotes a class type. -

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

    - Expression -

    -
    -

    - Requirements -

    -
    -

    - G::apply<X>::type -

    -
    -

    - A concrete subclass of instance_holder - which can hold objects of type X. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/objectwrapper.html b/doc/html/reference/concepts/objectwrapper.html index 7f3c68f9..c606dd68 100644 --- a/doc/html/reference/concepts/objectwrapper.html +++ b/doc/html/reference/concepts/objectwrapper.html @@ -3,14 +3,14 @@ ObjectWrapper - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/concepts/objectwrapper/caveat.html b/doc/html/reference/concepts/objectwrapper/caveat.html deleted file mode 100644 index b0168822..00000000 --- a/doc/html/reference/concepts/objectwrapper/caveat.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -Caveat - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Caveat -

    -

    - The upshot of the special member function invocation rules when the return - type is a TypeWrapper is that it is possible for the returned object to - manage a Python object of an inappropriate type. This is not usually a - serious problem; the worst-case result is that errors will be detected - at runtime a little later than they might otherwise be. For an example - of how this can occur, note that the dict - member function items returns - an object of type list. - Now suppose the user defines this dict - subclass in Python: -

    -
    >>> class mydict(dict):
    -...     def items(self):
    -...         return tuple(dict.items(self)) # return a tuple
    -
    -

    - Since an instance of mydict - is also an instance of dict, - when used as an argument to a wrapped C++ function, boost::python::dict - can accept objects of Python type mydict. - Invoking items() - on this object can result in an instance of boost::python::list - which actually holds a Python tuple. - Subsequent attempts to use list - methods (e.g. append, or - any other mutating operation) on this object will raise the same exception - that would occur if you tried to do it from Python. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/objectwrapper/concept_requirements.html b/doc/html/reference/concepts/objectwrapper/concept_requirements.html deleted file mode 100644 index 170583ba..00000000 --- a/doc/html/reference/concepts/objectwrapper/concept_requirements.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/objectwrapper/objectwrapper_concept_requiremen.html b/doc/html/reference/concepts/objectwrapper/objectwrapper_concept_requiremen.html deleted file mode 100644 index 828fd90b..00000000 --- a/doc/html/reference/concepts/objectwrapper/objectwrapper_concept_requiremen.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ObjectWrapper Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Models of the ObjectWrapper concept have object - as a publicly-accessible base class, and are used to supply special construction - behavior and/or additional convenient functionality through (often templated) - member functions. Except when the return type R is itself an TypeWrapper, - a member function invocation of the form -

    -
    x.some_function(a1, a2,...an)
    -

    - always has semantics equivalent to: -

    -
    extract<R>(x.attr("some_function")(object(a1), object(a2),...object(an)))()
    -

    - (see caveat below). -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/objectwrapper/typewrapper_concept_requirements.html b/doc/html/reference/concepts/objectwrapper/typewrapper_concept_requirements.html deleted file mode 100644 index fe7ef3d3..00000000 --- a/doc/html/reference/concepts/objectwrapper/typewrapper_concept_requirements.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -TypeWrapper Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - TypeWrapper is a refinement of ObjectWrapper - which is associated with a particular Python type X. - For a given TypeWrapper T, - a valid constructor expression -

    -
    T(a1, a2,...an)
    -

    - builds a new T object managing the result of invoking X with arguments - corresponding to -

    -
    object(a1), object(a2),...object(an)
    -

    - . When used as arguments to wrapped C++ functions, or as the template parameter - to extract<>, - only instances of the associated Python type will be considered a match. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/resultconverter.html b/doc/html/reference/concepts/resultconverter.html index b3f1b889..049e49b8 100644 --- a/doc/html/reference/concepts/resultconverter.html +++ b/doc/html/reference/concepts/resultconverter.html @@ -3,14 +3,14 @@ ResultConverter - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/concepts/resultconverter/concept_requirements.html b/doc/html/reference/concepts/resultconverter/concept_requirements.html deleted file mode 100644 index 5dd33e0d..00000000 --- a/doc/html/reference/concepts/resultconverter/concept_requirements.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/resultconverter/resultconverter_concept_require0.html b/doc/html/reference/concepts/resultconverter/resultconverter_concept_require0.html deleted file mode 100644 index 3084a867..00000000 --- a/doc/html/reference/concepts/resultconverter/resultconverter_concept_require0.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -ResultConverter Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In the table below, G denotes a ResultConverterGenerator type and R denotes - a possible C++ function return type. -

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

    - Expression -

    -
    -

    - Requirements -

    -
    -

    - G::apply<R>::type -

    -
    -

    - A ResultConverter type for R. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/resultconverter/resultconverter_concept_requirem.html b/doc/html/reference/concepts/resultconverter/resultconverter_concept_requirem.html deleted file mode 100644 index fa2f5f4e..00000000 --- a/doc/html/reference/concepts/resultconverter/resultconverter_concept_requirem.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -ResultConverter Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In the table below, C denotes - a ResultConverter type for a type R, - c denotes an object of - type C, and r denotes an object of type R. -

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

    - Expression -

    -
    -

    - Type -

    -
    -

    - Semantics -

    -
    -

    - C c -

    -
    - -

    - Constructs a c - object. -

    -
    -

    - c.convertible() -

    -
    -

    - convertible to bool -

    -
    -

    - false iff no conversion - from any R value - to a Python object is possible. -

    -
    -

    - c(r) -

    -
    -

    - convertible to PyObject* -

    -
    -

    - A pointer to a Python object corresponding to r, - or 0 iff r could not be converted to_python, in which case PyErr_Occurred should return - non-zero. -

    -
    -

    - c.get_pytype() -

    -
    -

    - PyTypeObject const * -

    -
    -

    - A pointer to a Python Type object corresponding to result of - the conversion, or 0. - Used for documentation generation. If 0 - is returned the generated type in the documentation will be object. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/resultconverter/resultconvertergenerator_concept.html b/doc/html/reference/concepts/resultconverter/resultconvertergenerator_concept.html deleted file mode 100644 index e402ac2d..00000000 --- a/doc/html/reference/concepts/resultconverter/resultconvertergenerator_concept.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -ResultConverterGenerator Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In the table below, G denotes - a ResultConverterGenerator type and R - denotes a possible C++ function return type. -

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

    - Expression -

    -
    -

    - Requirements -

    -
    -

    - G::apply<R>::type -

    -
    -

    - A ResultConverter type for R. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/resultconvertergenerator.html b/doc/html/reference/concepts/resultconvertergenerator.html deleted file mode 100644 index ced43d89..00000000 --- a/doc/html/reference/concepts/resultconvertergenerator.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ResultConverterGenerator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/resultconvertergenerator/concept_requirements.html b/doc/html/reference/concepts/resultconvertergenerator/concept_requirements.html deleted file mode 100644 index 983cf31d..00000000 --- a/doc/html/reference/concepts/resultconvertergenerator/concept_requirements.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -Concept Requirements - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/typewrapper.html b/doc/html/reference/concepts/typewrapper.html deleted file mode 100644 index 7106b927..00000000 --- a/doc/html/reference/concepts/typewrapper.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -TypeWrapper - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/concepts/typewrapper/concept_requirements.html b/doc/html/reference/concepts/typewrapper/concept_requirements.html deleted file mode 100644 index e937252e..00000000 --- a/doc/html/reference/concepts/typewrapper/concept_requirements.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -Concept Requirements - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    - - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/reference/embedding.html b/doc/html/reference/embedding.html index 1fa7e30a..e4088c7d 100644 --- a/doc/html/reference/embedding.html +++ b/doc/html/reference/embedding.html @@ -3,14 +3,14 @@ Chapter 6. Embedding - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/embedding/boost_python_import_hpp.html b/doc/html/reference/embedding/boost_python_import_hpp.html index 2d3f97ed..a0933199 100644 --- a/doc/html/reference/embedding/boost_python_import_hpp.html +++ b/doc/html/reference/embedding/boost_python_import_hpp.html @@ -3,14 +3,14 @@ boost/python/import.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/embedding/boost_python_import_hpp/examples.html b/doc/html/reference/embedding/boost_python_import_hpp/examples.html deleted file mode 100644 index 6c95cc17..00000000 --- a/doc/html/reference/embedding/boost_python_import_hpp/examples.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following example demonstrates the use of import to access a function - in python, and later call it from within C++. -

    -
    #include <iostream>
    -#include <string>
    -
    -using namespace boost::python;
    -
    -void print_python_version()
    -{
    -  // Load the sys module.
    -  object sys = import("sys");
    -
    -  // Extract the python version.
    -  std::string version = extract<std::string>(sys.attr("version"));
    -  std::cout << version << std::endl;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/embedding/boost_python_import_hpp/function_import.html b/doc/html/reference/embedding/boost_python_import_hpp/function_import.html deleted file mode 100644 index 189d6283..00000000 --- a/doc/html/reference/embedding/boost_python_import_hpp/function_import.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Function import - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object import(str name);
    -
    -

    -
    -
    Effects
    -

    - Imports the module named by name. -

    -
    Returns
    -

    - An instance of object which holds a reference to the imported module. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/embedding/import_hpp.html b/doc/html/reference/embedding/import_hpp.html deleted file mode 100644 index 26072c4d..00000000 --- a/doc/html/reference/embedding/import_hpp.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -import.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Exposes a mechanism for importing python modules. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/embedding/import_hpp/examples.html b/doc/html/reference/embedding/import_hpp/examples.html deleted file mode 100644 index 8b2d7ce4..00000000 --- a/doc/html/reference/embedding/import_hpp/examples.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    The following example demonstrates the use of import to access a function in python, and later call it from within C++.
    -
    -
    #include <iostream>
    -#include <string>
    -
    -using namespace boost::python;
    -
    -void print_python_version()
    -{
    -  // Load the sys module.
    -  object sys = import("sys");
    -
    -  // Extract the python version.
    -  std::string version = extract<std::string>(sys.attr("version"));
    -  std::cout << version << std::endl;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/embedding/import_hpp/function_import.html b/doc/html/reference/embedding/import_hpp/function_import.html deleted file mode 100644 index d337a38d..00000000 --- a/doc/html/reference/embedding/import_hpp/function_import.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Function import - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object import(str name);
    -
    -

    -
    -
    Effects
    -

    - Imports the module named by name. -

    -
    Returns
    -

    - An instance of object which holds a reference to the imported module. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation.html b/doc/html/reference/function_invocation_and_creation.html index 04800de1..3d2e6f28 100644 --- a/doc/html/reference/function_invocation_and_creation.html +++ b/doc/html/reference/function_invocation_and_creation.html @@ -3,14 +3,14 @@ Chapter 4. Function Invocation and Creation - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp.html index ddf8b717..c5c198e0 100644 --- a/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp.html +++ b/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp.html @@ -3,14 +3,14 @@ boost/python/call.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp/example.html b/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp/example.html deleted file mode 100644 index 5f1e3fc0..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp/example.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following C++ function applies a Python callable object to its two - arguments and returns the result. If a Python exception is raised or the - result can't be converted to a double, an exception is thrown. -

    -
    double apply2(PyObject* func, double x, double y)
    -{
    -   return boost::python::call<double>(func, x, y);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp/function_call.html b/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp/function_call.html deleted file mode 100644 index b173a24d..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp/function_call.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -Function call - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class R, class A1, class A2, ... class An>
    -R call(PyObject* callable, A1 const&, A2 const&, ... An const&)
    -
    -
    -

    -
    -
    Requires
    -

    - R is a pointer type, reference type, or a complete type with an accessible - copy constructor -

    -
    Effects
    -

    - Invokes callable(a1, a2, ...an) in Python, where a1...an are the - arguments to call(), converted to Python objects. -

    -
    Returns
    -

    - The result of the Python call, converted to the C++ type R. -

    -
    Rationale
    -

    - For a complete semantic description and rationale, see this page. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp.html index 0fecfcc7..aab64dbd 100644 --- a/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp.html +++ b/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp.html @@ -3,14 +3,14 @@ boost/python/call_method.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp/example.html b/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp/example.html deleted file mode 100644 index 6864b1bd..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp/example.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following C++ illustrates the use of call_method - in wrapping a class with a virtual function that can be overridden in Python: - C++ Module Definition -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/utility.hpp>
    -#include <cstring>
    -
    -// class to be wrapped
    -class Base
    -{
    - public:
    -   virtual char const* class_name() const { return "Base"; }
    -   virtual ~Base();
    -};
    -
    -bool is_base(Base* b)
    -{
    -   return !std::strcmp(b->class_name(), "Base");
    -}
    -
    -// Wrapper code begins here
    -using namespace boost::python;
    -
    -// Callback class
    -class Base_callback : public Base
    -{
    - public:
    -   Base_callback(PyObject* self) : m_self(self) {}
    -
    -   char const* class_name() const { return call_method<char const*>(m_self, "class_name"); }
    -   char const* Base_name() const { return Base::class_name(); }
    - private:
    -   PyObject* const m_self;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    def("is_base", is_base);
    -
    -    class_<Base,Base_callback, noncopyable>("Base")
    -        .def("class_name", &Base_callback::Base_name)
    -        ;
    -
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> class Derived(Base):
    -...    def __init__(self):
    -...       Base.__init__(self)
    -...    def class_name(self):
    -...       return self.__class__.__name__
    -...
    ->>> is_base(Base()) # calls the class_name() method from C++
    -1
    ->>> is_base(Derived())
    -0
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp/function_call_method.html b/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp/function_call_method.html deleted file mode 100644 index ad5adbe3..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp/function_call_method.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -Function call_method - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class R, class A1, class A2, ... class An>
    -R call_method(PyObject* self, char const* method, A1 const&, A2 const&, ... An const&)
    -
    -
    -

    -
    -
    Requires
    -

    - R is a pointer type, - reference type, or a complete type with an accessible copy constructor -

    -
    Effects
    -

    - Invokes self.method(a1, a2, ...an) in Python, where a1...an - are the arguments to call_method(), converted to Python objects. For - a complete semantic description, see this page. -

    -
    Returns
    -

    - The result of the Python call, converted to the C++ type R. -

    -
    Rationale
    -

    - call_method is critical - to implementing C++ virtual functions which are overridable in Python, - as shown by the example below. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp.html index 8bb289f8..ec5d5077 100644 --- a/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp.html +++ b/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp.html @@ -3,14 +3,14 @@ boost/python/data_members.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp/example.html b/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp/example.html deleted file mode 100644 index 2f9aff6a..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp/example.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The code below uses make_getter and make_setter to expose a data member - as functions: -

    -
    #include <boost/python/data_members.hpp>
    -#include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -
    -struct X
    -{
    -    X(int x) : y(x) {}
    -    int y;
    -};
    -
    -using namespace boost::python;
    -
    -BOOST_PYTHON_MODULE_INIT(data_members_example)
    -{
    -    class_<X>("X", init<int>())
    -       .def("get", make_getter(&X::y))
    -       .def("set", make_setter(&X::y))
    -       ;
    -}
    -
    -

    - It can be used this way in Python: -

    -
    >>> from data_members_example import *
    ->>> x = X(1)
    ->>> x.get()
    -1
    ->>> x.set(2)
    ->>> x.get()
    -2
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp/functions.html b/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp/functions.html deleted file mode 100644 index 6bf9c2ba..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp/functions.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class C, class D>
    -object make_getter(D C::*pm);
    -
    -template <class C, class D, class Policies>
    -object make_getter(D C::*pm, Policies const& policies);
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Creates a Python callable object which accepts a single argument - that can be converted from_python to C*, and returns the corresponding - member D member of the C object, converted to_python. If policies - is supplied, it will be applied to the function as described here. - Otherwise, the library attempts to determine whether D is a user-defined - class type, and if so uses return_internal_reference<> for - Policies. Note that this test may inappropriately choose return_internal_reference<> - in some cases when D is a smart pointer type. This is a known defect. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    template <class D>
    -object make_getter(D const& d);
    -template <class D, class Policies>
    -object make_getter(D const& d, Policies const& policies);
    -
    -template <class D>
    -object make_getter(D const* p);
    -template <class D, class Policies>
    -object make_getter(D const* p, Policies const& policies);
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Creates a Python callable object which accepts no arguments and returns - d or *p, converted to_python on demand. If policies is supplied, - it will be applied to the function as described here. Otherwise, - the library attempts to determine whether D is a user-defined class - type, and if so uses reference_existing_object for Policies. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    template <class C, class D>
    -object make_setter(D C::*pm);
    -
    -template <class C, class D, class Policies>
    -object make_setter(D C::*pm, Policies const& policies);
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Creates a Python callable object which, when called from Python, - expects two arguments which can be converted from_python to C* and - D const&, respectively, and sets the corresponding D member of - the C object. If policies is supplied, it will be applied to the - function as described here. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    template <class D>
    -object make_setter(D& d);
    -template <class D, class Policies>
    -object make_setter(D& d, Policies const& policies);
    -
    -template <class D>
    -object make_setter(D* p);
    -template <class D, class Policies>
    -object make_setter(D* p, Policies const& policies);
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Creates a Python callable object which accepts one argument, which - is converted from Python to D const& and written into d or *p, - respectively. If policies is supplied, it will be applied to the - function as described here. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp.html index ef9e1b0a..493db8c6 100644 --- a/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp.html +++ b/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp.html @@ -3,14 +3,14 @@ boost/python/make_function.hpp - + -
    +

    PrevUpHomeNext @@ -69,24 +69,16 @@ from the first Python argument, and subsequent Python arguments will be used as the arguments to f.

    -
      -
    • - If policies are supplied, it will be applied to the function - as described here. -
    • -
    • - If keywords are supplied, the keywords will be applied in order - to the final arguments of the resulting function. -
    • -
    • - If Signature is supplied, it should be an instance of an MPL - front-extensible sequence representing the function's return - type followed by its argument types. Pass a Signature when wrapping - function object types whose signatures can't be deduced, or when - you wish to override the types which will be passed to the wrapped - function. -
    • -
    +

    + * If policies are supplied, it will be applied to the function as + described here. * If keywords are supplied, the keywords will be + applied in order to the final arguments of the resulting function. + * If Signature is supplied, it should be an instance of an MPL front-extensible + sequence representing the function's return type followed by its + argument types. Pass a Signature when wrapping function object types + whose signatures can't be deduced, or when you wish to override the + types which will be passed to the wrapped function. +

    Returns

    diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp/example.html b/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp/example.html deleted file mode 100644 index ea5deb1f..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp/example.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -


    -
    -PrevUpHomeNext -
    -
    - -

    - C++ function exposed below returns a callable object wrapping one of two - functions. -

    -
    #include <boost/python/make_function.hpp>
    -#include <boost/python/module.hpp>
    -
    -char const* foo() { return "foo"; }
    -char const* bar() { return "bar"; }
    -
    -using namespace boost::python;
    -object choose_function(bool selector)
    -{
    -    if (selector)
    -        return boost::python::make_function(foo);
    -    else
    -        return boost::python::make_function(bar);
    -}
    -
    -BOOST_PYTHON_MODULE(make_function_test)
    -{
    -    def("choose_function", choose_function);
    -}
    -
    -

    - It can be used this way in Python: -

    -
    >>> from make_function_test import *
    ->>> f = choose_function(1)
    ->>> g = choose_function(0)
    ->>> f()
    -'foo'
    ->>> g()
    -'bar'
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp/functions.html b/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp/functions.html deleted file mode 100644 index 56328ccd..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp/functions.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class F>
    -object make_function(F f)
    -
    -template <class F, class Policies>
    -object make_function(F f, Policies const& policies)
    -
    -template <class F, class Policies, class KeywordsOrSignature>
    -object make_function(F f, Policies const& policies, KeywordsOrSignature const& ks)
    -
    -template <class F, class Policies, class Keywords, class Signature>
    -object make_function(F f, Policies const& policies, Keywords const& kw, Signature const& sig)
    -
    -
    -

    -
    -
    Requires
    -

    - F is a function pointer or member function pointer type. If policies - are supplied, it must be a model of CallPolicies. If kewords are - supplied, it must be the result of a keyword-expression specifying - no more arguments than the arity of f. -

    -
    Effects
    -
    -

    - Creates a Python callable object which, when called from Python, - converts its arguments to C++ and calls f. If F is a pointer-to-member-function - type, the target object of the function call (*this) will be taken - from the first Python argument, and subsequent Python arguments will - be used as the arguments to f. -

    -
      -
    • - If policies are supplied, it will be applied to the function - as described here. -
    • -
    • - If keywords are supplied, the keywords will be applied in order - to the final arguments of the resulting function. -
    • -
    • - If Signature is supplied, it should be an instance of an MPL - front-extensible sequence representing the function's return - type followed by its argument types. Pass a Signature when wrapping - function object types whose signatures can't be deduced, or when - you wish to override the types which will be passed to the wrapped - function. -
    • -
    -
    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    Caveats
    -

    - An argument of pointer type may be 0 if None is passed from Python. - An argument type which is a constant reference may refer to a temporary - which was created from the Python object for just the duration of - the call to the wrapped function, for example a std::vector conjured - up by the conversion process from a Python list. Use a non-const - reference argument when a persistent lvalue is required. -

    -
    -
    -
    template <class F>
    -object make_constructor(F f)
    -
    -template <class F, class Policies>
    -object make_constructor(F f, Policies const& policies)
    -
    -template <class F, class Policies, class KeywordsOrSignature>
    -object make_constructor(F f, Policies const& policies, KeywordsOrSignature const& ks)
    -
    -template <class F, class Policies, class Keywords, class Signature>
    -object make_constructor(F f, Policies const& policies, Keywords const& kw, Signature const& sig)
    -
    -
    -

    -
    -
    Requires
    -

    - F is a function pointer type. If policies are supplied, it must be - a model of CallPolicies. If kewords are supplied, it must be the - result of a keyword-expression specifying no more arguments than - the arity of f. -

    -
    Effects
    -

    - Creates a Python callable object which, when called from Python, - converts its arguments to C++ and calls f. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp.html index d2bdaf9a..5c426b16 100644 --- a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp.html +++ b/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp.html @@ -3,14 +3,14 @@ boost/python/overloads.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/example.html b/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/example.html deleted file mode 100644 index 2e97d7e4..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/example.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/args.hpp>
    -#include <boost/python/tuple.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/overloads.hpp>
    -#include <boost/python/return_internal_reference.hpp>
    -
    -using namespace boost::python;
    -
    -tuple f(int x = 1, double y = 4.25, char const* z = "wow")
    -{
    -    return make_tuple(x, y, z);
    -}
    -
    -BOOST_PYTHON_FUNCTION_OVERLOADS(f_overloads, f, 0, 3)
    -
    -struct Y {};
    -struct X
    -{
    -    Y& f(int x, double y = 4.25, char const* z = "wow")
    -    {
    -        return inner;
    -    }
    -    Y inner;
    -};
    -
    -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_member_overloads, f, 1, 3)
    -
    -BOOST_PYTHON_MODULE(args_ext)
    -{
    -    def("f", f,
    -        f_overloads(
    -            args("x", "y", "z"), "This is f's docstring"
    -        ));
    -
    -
    -    class_<Y>("Y")
    -        ;
    -
    -    class_<X>("X", "This is X's docstring")
    -        .def("f1", &X::f,
    -                f_member_overloads(
    -                    args("x", "y", "z"), "f's docstring"
    -                )[return_internal_reference<>()]
    -        )
    -        ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/macros.html b/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/macros.html deleted file mode 100644 index 56d6baa6..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/macros.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Macros - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Macros -

    -
    BOOST_PYTHON_FUNCTION_OVERLOADS(name, func_id, min_args, max_args)
    -
    -

    - Expands to the definition of an OverloadDispatcher called name in the current - scope which can be used to generate the following function invocation: -

    -
    func_id(a1, a2,...ai);
    -

    - for all min_args <= - i <= - max_args. -

    -
    BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(name, member_name, min_args, max_args)
    -
    -

    - Expands to the definition of an OverloadDispatcher called name in the current - scope which can be used to generate the following function invocation: -

    -
    x.member_name(a1, a2,...ai);
    -

    - for all min_args <= i <= max_args, where x is a reference to an object - of class type. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/overloaddispatcher_concept.html b/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/overloaddispatcher_concept.html deleted file mode 100644 index 6edd2722..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp/overloaddispatcher_concept.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -OverloadDispatcher Concept - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - An OverloadDispatcher X is a class which has a minimum arity and a maximum - arity, and for which the following following are valid overload-dispatch-expressions, - with the same minimum and maximum arity as the OverloadDispatcher. -

    -
    X()
    -X(docstring)
    -X(docstring, keywords)
    -X(keywords, docstring)
    -X()[policies]
    -X(docstring)[policies]
    -X(docstring, keywords)[policies]
    -X(keywords, docstring)[policies]
    -
    -

    - * If policies are supplied, it must be an instance of a type which models - CallPolicies, and will be - used as the result's call policies. Otherwise the result's call policies - will be an instance of default_call_policies. * If docstring - is supplied it must be an ntbs, and will be - used as the result's docstring. Otherwise the result has an empty docstring. - * If keywords is supplied it must be the result of a keyword-expression - whose length is no greater than X's maximum arity, and will be used as - the result's keywords. Otherwise the result's keywords will be empty. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp.html index 706774c1..4a4a606e 100644 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp.html +++ b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp.html @@ -3,14 +3,14 @@ boost/python/ptr.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper.html deleted file mode 100644 index f3f1506c..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Class template pointer_wrapper - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A "type envelope" which is returned by ptr(), used to indicate reference semantics - for pointers passed to Python callbacks. -

    -
    namespace boost { namespace python
    -{
    -    template<class Ptr> class pointer_wrapper
    -    {
    -     public:
    -        typedef Ptr type;
    -
    -        explicit pointer_wrapper(Ptr x);
    -        operator Ptr() const;
    -        Ptr get() const;
    -    };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_c.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_c.html deleted file mode 100644 index d9d4e681..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_c.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Class template pointer_wrapper constructors and destructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    explicit pointer_wrapper(Ptr x);
    -
    -
    -

    -
    -
    Requires
    -

    - Ptr is a pointer - type -

    -
    Effects
    -

    - Stores x in a the - pointer_wrapper<>. -

    -
    Throws
    -

    - nothing. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_o.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_o.html deleted file mode 100644 index da703aa2..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_o.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class template pointer_wrapper observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    operator Ptr() const;
    -Ptr get() const;
    -
    -
    -

    -
    -
    Returns
    -

    - a copy of the stored pointer. -

    -
    Rationale
    -

    - pointer_wrapper is intended to be a stand-in for the actual pointer - type, but sometimes it's better to have an explicit way to retrieve - the pointer. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_t.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_t.html deleted file mode 100644 index a1c1c576..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/class_template_pointer_wrapper_t.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Class template pointer_wrapper types - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    typedef Ptr type;
    -
    -

    - The type of the pointer being wrapped. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/example.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/example.html deleted file mode 100644 index b22a9a01..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/example.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This example illustrates the use of ptr() to prevent an object from being - copied: -

    -
    #include <boost/python/call.hpp>
    -#include <boost/python/ptr.hpp>
    -
    -class expensive_to_copy
    -{
    -   ...
    -};
    -
    -void pass_as_arg(expensive_to_copy* x, PyObject* f)
    -{
    -   // call the Python function f, passing a Python object built around
    -   // which refers to *x by-pointer.
    -   //
    -   // *** Note: ensuring that *x outlives the argument to f() is    ***
    -   // *** up to the user! Failure to do so could result in a crash! ***
    -
    -   boost::python::call<void>(f, ptr(x));
    -}
    -...
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/functions.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/functions.html deleted file mode 100644 index 101361b1..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/functions.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -pointer_wrapper<T> ptr(T x);
    -
    -
    -

    -
    -
    Requires
    -

    - T is a pointer type. -

    -
    Returns
    -

    - pointer_wrapper<T>(x) -

    -
    Throws
    -

    - nothing. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/metafunctions.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/metafunctions.html deleted file mode 100644 index 2edc5497..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/metafunctions.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - A unary metafunction whose value is true iff its argument is a pointer_wrapper<>. -

    -
    namespace boost { namespace python
    -{
    -    template<class T> class is_pointer_wrapper
    -    {
    -        static unspecified value = ...;
    -    };
    -}}
    -
    -
    -

    -
    -
    Returns
    -

    - true iff T is a specialization of pointer_wrapper<>. - value is an integral constant convertible to bool of unspecified - type -

    -
    -
    -
    -
    - -

    - A unary metafunction which extracts the wrapped pointer type from a specialization - of pointer_wrapper<>. -

    -
    namespace boost { namespace python
    -{
    -    template<class T> class unwrap_pointer
    -    {
    -        typedef unspecified type;
    -    };
    -}}
    -
    -
    -

    -
    -
    Returns
    -

    - T::type if T - is a specialization of pointer_wrapper<>, T - otherwise -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/metafunctions/class_template_unwrap_pointer.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/metafunctions/class_template_unwrap_pointer.html deleted file mode 100644 index f24c828e..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp/metafunctions/class_template_unwrap_pointer.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Class template unwrap_pointer - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A unary metafunction which extracts the wrapped pointer type from a specialization - of pointer_wrapper<>. -

    -
    namespace boost { namespace python
    -{
    -    template<class T> class unwrap_pointer
    -    {
    -        typedef unspecified type;
    -    };
    -}}
    -
    -
    -

    -
    -
    Returns
    -

    - T::type if T - is a specialization of pointer_wrapper<>, T - otherwise -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp.html index fe3cde74..96ade980 100644 --- a/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp.html +++ b/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp.html @@ -3,14 +3,14 @@ boost/python/raw_function.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp/example.html b/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp/example.html deleted file mode 100644 index 13cd04db..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp/example.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++: -

    -
    #include <boost/python/def.hpp>
    -#include <boost/python/tuple.hpp>
    -#include <boost/python/dict.hpp>
    -#include <boost/python/module.hpp>
    -#include <boost/python/raw_function.hpp>
    -
    -using namespace boost::python;
    -
    -tuple raw(tuple args, dict kw)
    -{
    -    return make_tuple(args, kw);
    -}
    -
    -BOOST_PYTHON_MODULE(raw_test)
    -{
    -    def("raw", raw_function(raw));
    -}
    -
    -

    - Python: -

    -
    >>> from raw_test import *
    -
    ->>> raw(3, 4, foo = 'bar', baz = 42)
    -((3, 4), {'foo': 'bar', 'baz': 42})
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp/function_raw_function.html b/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp/function_raw_function.html deleted file mode 100644 index f78091d0..00000000 --- a/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp/function_raw_function.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Function raw_function - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class F>
    -object raw_function(F f, std::size_t min_args = 0);
    -
    -
    -

    -
    -
    Requires
    -

    - f(tuple(), dict()) is well-formed. -

    -
    Returns
    -

    - a callable object which requires at least min_args arguments. When - called, the actual non-keyword arguments will be passed in a tuple - as the first argument to f, and the keyword arguments will be passed - in a dict as the second argument to f. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/call_hpp.html b/doc/html/reference/function_invocation_and_creation/call_hpp.html deleted file mode 100644 index f09781a8..00000000 --- a/doc/html/reference/function_invocation_and_creation/call_hpp.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -call.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    <boost/python/call.hpp> defines the call family of overloaded function templates, used to invoke Python callable objects from C++.
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/call_hpp/example.html b/doc/html/reference/function_invocation_and_creation/call_hpp/example.html deleted file mode 100644 index 9f3bacc8..00000000 --- a/doc/html/reference/function_invocation_and_creation/call_hpp/example.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following C++ function applies a Python callable object to its two - arguments and returns the result. If a Python exception is raised or the - result can't be converted to a double, an exception is thrown. -

    -
    double apply2(PyObject* func, double x, double y)
    -{
    -   return boost::python::call<double>(func, x, y);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/call_hpp/function_call.html b/doc/html/reference/function_invocation_and_creation/call_hpp/function_call.html deleted file mode 100644 index 4cd93a7f..00000000 --- a/doc/html/reference/function_invocation_and_creation/call_hpp/function_call.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -Function call - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class R, class A1, class A2, ... class An>
    -R call(PyObject* callable, A1 const&, A2 const&, ... An const&)
    -
    -
    -

    -
    -
    Requires
    -

    - R is a pointer type, reference type, or a complete type with an accessible - copy constructor -

    -
    Effects
    -

    - Invokes callable(a1, a2, ...an) in Python, where a1...an are the - arguments to call(), converted to Python objects. -

    -
    Returns
    -

    - The result of the Python call, converted to the C++ type R. -

    -
    Rationale
    -

    - For a complete semantic description and rationale, see this page. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/call_method_hpp.html b/doc/html/reference/function_invocation_and_creation/call_method_hpp.html deleted file mode 100644 index 5030d2c4..00000000 --- a/doc/html/reference/function_invocation_and_creation/call_method_hpp.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -call_method.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/call_method.hpp> defines the call_method family of - overloaded function templates, used to invoke callable attributes of Python - objects from C++. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/call_method_hpp/example.html b/doc/html/reference/function_invocation_and_creation/call_method_hpp/example.html deleted file mode 100644 index 72c72a35..00000000 --- a/doc/html/reference/function_invocation_and_creation/call_method_hpp/example.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following C++ illustrates the use of call_method in wrapping a class - with a virtual function that can be overridden in Python: C++ Module Definition -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/utility.hpp>
    -#include <cstring>
    -
    -// class to be wrapped
    -class Base
    -{
    - public:
    -   virtual char const* class_name() const { return "Base"; }
    -   virtual ~Base();
    -};
    -
    -bool is_base(Base* b)
    -{
    -   return !std::strcmp(b->class_name(), "Base");
    -}
    -
    -// Wrapper code begins here
    -using namespace boost::python;
    -
    -// Callback class
    -class Base_callback : public Base
    -{
    - public:
    -   Base_callback(PyObject* self) : m_self(self) {}
    -
    -   char const* class_name() const { return call_method<char const*>(m_self, "class_name"); }
    -   char const* Base_name() const { return Base::class_name(); }
    - private:
    -   PyObject* const m_self;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    def("is_base", is_base);
    -
    -    class_<Base,Base_callback, noncopyable>("Base")
    -        .def("class_name", &Base_callback::Base_name)
    -        ;
    -
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> class Derived(Base):
    -...    def __init__(self):
    -...       Base.__init__(self)
    -...    def class_name(self):
    -...       return self.__class__.__name__
    -...
    ->>> is_base(Base()) # calls the class_name() method from C++
    -1
    ->>> is_base(Derived())
    -0
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/call_method_hpp/function_call_method.html b/doc/html/reference/function_invocation_and_creation/call_method_hpp/function_call_method.html deleted file mode 100644 index 805ec6a3..00000000 --- a/doc/html/reference/function_invocation_and_creation/call_method_hpp/function_call_method.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -Function call_method - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class R, class A1, class A2, ... class An>
    -R call_method(PyObject* self, char const* method, A1 const&, A2 const&, ... An const&)
    -
    -
    -

    -
    -
    Requires
    -

    - R is a pointer type, reference type, or a complete type with an accessible - copy constructor -

    -
    Effects
    -

    - Invokes self.method(a1, a2, ...an) in Python, where a1...an are the - arguments to call_method(), converted to Python objects. For a complete - semantic description, see this page. -

    -
    Returns
    -

    - The result of the Python call, converted to the C++ type R. -

    -
    Rationale
    -

    - call_method is critical to implementing C++ virtual functions which - are overridable in Python, as shown by the example below. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/data_members_hpp.html b/doc/html/reference/function_invocation_and_creation/data_members_hpp.html deleted file mode 100644 index 43d54d85..00000000 --- a/doc/html/reference/function_invocation_and_creation/data_members_hpp.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -data_members.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - make_getter() and make_setter() are the functions used internally by class_<>::def_readonly - and class_<>::def_readwrite to produce Python callable objects which - wrap C++ data members. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/data_members_hpp/example.html b/doc/html/reference/function_invocation_and_creation/data_members_hpp/example.html deleted file mode 100644 index 7924b5c2..00000000 --- a/doc/html/reference/function_invocation_and_creation/data_members_hpp/example.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The code below uses make_getter and make_setter to expose a data member - as functions: -

    -
    #include <boost/python/data_members.hpp>
    -#include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -
    -struct X
    -{
    -    X(int x) : y(x) {}
    -    int y;
    -};
    -
    -using namespace boost::python;
    -
    -BOOST_PYTHON_MODULE_INIT(data_members_example)
    -{
    -    class_<X>("X", init<int>())
    -       .def("get", make_getter(&X::y))
    -       .def("set", make_setter(&X::y))
    -       ;
    -}
    -
    -

    - It can be used this way in Python: -

    -
    >>> from data_members_example import *
    ->>> x = X(1)
    ->>> x.get()
    -1
    ->>> x.set(2)
    ->>> x.get()
    -2
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/data_members_hpp/functions.html b/doc/html/reference/function_invocation_and_creation/data_members_hpp/functions.html deleted file mode 100644 index b1e20385..00000000 --- a/doc/html/reference/function_invocation_and_creation/data_members_hpp/functions.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class C, class D>
    -object make_getter(D C::*pm);
    -
    -template <class C, class D, class Policies>
    -object make_getter(D C::*pm, Policies const& policies);
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Creates a Python callable object which accepts a single argument - that can be converted from_python to C*, and returns the corresponding - member D member of the C object, converted to_python. If policies - is supplied, it will be applied to the function as described here. - Otherwise, the library attempts to determine whether D is a user-defined - class type, and if so uses return_internal_reference<> for - Policies. Note that this test may inappropriately choose return_internal_reference<> - in some cases when D is a smart pointer type. This is a known defect. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    template <class D>
    -object make_getter(D const& d);
    -template <class D, class Policies>
    -object make_getter(D const& d, Policies const& policies);
    -
    -template <class D>
    -object make_getter(D const* p);
    -template <class D, class Policies>
    -object make_getter(D const* p, Policies const& policies);
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Creates a Python callable object which accepts no arguments and returns - d or *p, converted to_python on demand. If policies is supplied, - it will be applied to the function as described here. Otherwise, - the library attempts to determine whether D is a user-defined class - type, and if so uses reference_existing_object for Policies. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    template <class C, class D>
    -object make_setter(D C::*pm);
    -
    -template <class C, class D, class Policies>
    -object make_setter(D C::*pm, Policies const& policies);
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Creates a Python callable object which, when called from Python, - expects two arguments which can be converted from_python to C* and - D const&, respectively, and sets the corresponding D member of - the C object. If policies is supplied, it will be applied to the - function as described here. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    template <class D>
    -object make_setter(D& d);
    -template <class D, class Policies>
    -object make_setter(D& d, Policies const& policies);
    -
    -template <class D>
    -object make_setter(D* p);
    -template <class D, class Policies>
    -object make_setter(D* p, Policies const& policies);
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Creates a Python callable object which accepts one argument, which - is converted from Python to D const& and written into d or *p, - respectively. If policies is supplied, it will be applied to the - function as described here. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation.html b/doc/html/reference/function_invocation_and_creation/function_documentation.html index 772ac1b2..6ec03322 100644 --- a/doc/html/reference/function_invocation_and_creation/function_documentation.html +++ b/doc/html/reference/function_invocation_and_creation/function_documentation.html @@ -3,14 +3,14 @@ Function documentation - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp.html b/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp.html deleted file mode 100644 index 101a64d1..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp.html +++ /dev/null @@ -1,299 +0,0 @@ - - - -boost/python/pytype_function.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - To support Pythonic signatures the converters should supply a get_pytype function returning a pointer - to the associated PyTypeObject. - See for example ResultConverter or to_python_converter. The classes - in this header file are meant to be used when implmenting get_pytype. There are also _direct versions of the templates of - class T - which should be used with undecorated type parameter, expected to be - in the conversion registry when the module loads. -

    -
    -
    - -

    - This template generates a static get_pytype - member returning the template parameter. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < PyTypeObject const *pytype >
    -    class wrap_pytype
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype(){return pytype; }
    -    };
    -
    -}}}
    -
    -
    -
    - -

    - This template should be used with template parameters which are (possibly - decorated) types exported to python using class_. The generated a static - get_pytype member returns - the corresponding python type. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class registered_pytype
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    -
    - -

    - This template generates a static get_pytype - member which inspects the registered from_python - converters for the type T - and returns a matching python type. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class expected_from_python_type
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    -
    - -

    - This template generates a static get_pytype - member returning the python type to which T - can be converted. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class to_python_target_type
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    -
    - -

    - This example presumes that someone has implemented the standard noddy - example module from the Python documentation, and placed the corresponding - declarations in "noddy.h". Because noddy_NoddyObject - is the ultimate trivial extension type, the example is a bit contrived: - it wraps a function for which all information is contained in the type - of its return value. -

    -

    - C++ module definition: -

    -
    #include <boost/python/reference.hpp>
    -#include <boost/python/module.hpp>
    -#include "noddy.h"
    -
    -struct tag {};
    -tag make_tag() { return tag(); }
    -
    -using namespace boost::python;
    -
    -struct tag_to_noddy
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //unnecessary overhead if py signatures are not supported
    -: wrap_pytype<&noddy_NoddyType> //inherits get_pytype from wrap_pytype
    -#endif
    -{
    -    static PyObject* convert(tag const& x)
    -    {
    -        return PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
    -    }
    -};
    -
    -BOOST_PYTHON_MODULE(to_python_converter)
    -{
    -    def("make_tag", make_tag);
    -    to_python_converter<tag, tag_to_noddy
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -          , true
    -#endif
    -          >(); //"true" because tag_to_noddy has member get_pytype
    -}
    -
    -

    - The following example registers to and from python converters using the - templates expected_from_python_type and to_pyhton_target_type. -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/extract.hpp>
    -#include <boost/python/to_python_converter.hpp>
    -#include <boost/python/class.hpp>
    -
    -using namespace boost::python;
    -
    -struct A
    -{
    -};
    -
    -struct B
    -{
    -  A a;
    -  B(const A& a_):a(a_){}
    -};
    -
    -// Converter from A to python int
    -struct BToPython
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //unnecessary overhead if py signatures are not supported
    -   : converter::to_python_target_type<A>  //inherits get_pytype
    -#endif
    -{
    -  static PyObject* convert(const B& b)
    -  {
    -    return incref(object(b.a).ptr());
    -  }
    -};
    -
    -// Conversion from python int to A
    -struct BFromPython
    -{
    -  BFromPython()
    -  {
    -    boost::python::converter::registry::push_back
    -        ( &convertible
    -        , &construct
    -        , type_id< B >()
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -        , &converter::expected_from_python_type<A>::get_pytype//convertible to A can be converted to B
    -#endif
    -        );
    -  }
    -
    -  static void* convertible(PyObject* obj_ptr)
    -  {
    -      extract<const A&> ex(obj_ptr);
    -      if (!ex.check()) return 0;
    -      return obj_ptr;
    -  }
    -
    -  static void construct(
    -      PyObject* obj_ptr,
    -      converter::rvalue_from_python_stage1_data* data)
    -  {
    -    void* storage = (
    -        (converter::rvalue_from_python_storage< B >*)data)-> storage.bytes;
    -
    -    extract<const A&> ex(obj_ptr);
    -    new (storage) B(ex());
    -    data->convertible = storage;
    -  }
    -};
    -
    -
    -B func(const B& b) { return b ; }
    -
    -BOOST_PYTHON_MODULE(pytype_function_ext)
    -{
    -  to_python_converter< B , BToPython
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -             ,true
    -#endif
    -             >(); //has get_pytype
    -  BFromPython();
    -
    -  class_<A>("A") ;
    -
    -  def("func", &func);
    -
    -}
    -
    -
    -
    ->>> from pytype_function_ext import *
    ->>> print func.__doc__
    -func( (A)arg1) -> A :
    -    C++ signature:
    -         struct B func(struct B)
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_expected_from_python_type.html b/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_expected_from_python_type.html deleted file mode 100644 index 0920164c..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_expected_from_python_type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Class expected_from_python_type - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This template generates a static get_pytype - member which inspects the registered from_python - converters for the type T - and returns a matching python type. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class expected_from_python_type
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_registered_pytype.html b/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_registered_pytype.html deleted file mode 100644 index 85045105..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_registered_pytype.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Class registered_pytype - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This template should be used with template parameters which are (possibly - decorated) types exported to python using class_. The generated a static - get_pytype member returns - the corresponding python type. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class registered_pytype
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_to_python_target_type.html b/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_to_python_target_type.html deleted file mode 100644 index 1336204e..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_to_python_target_type.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class to_python_target_type - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This template generates a static get_pytype - member returning the python type to which T - can be converted. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class to_python_target_type
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_wrap_pytype.html b/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_wrap_pytype.html deleted file mode 100644 index 49aa00fe..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/class_wrap_pytype.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class wrap_pytype - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This template generates a static get_pytype - member returning the template parameter. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < PyTypeObject const *pytype >
    -    class wrap_pytype
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype(){return pytype; }
    -    };
    -
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/example.html b/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/example.html deleted file mode 100644 index 73723808..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/boost_python_pytype_function_hpp/example.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This example presumes that someone has implemented the standard noddy - example module from the Python documentation, and placed the corresponding - declarations in "noddy.h". Because noddy_NoddyObject - is the ultimate trivial extension type, the example is a bit contrived: - it wraps a function for which all information is contained in the type - of its return value. -

    -

    - C++ module definition: -

    -
    #include <boost/python/reference.hpp>
    -#include <boost/python/module.hpp>
    -#include "noddy.h"
    -
    -struct tag {};
    -tag make_tag() { return tag(); }
    -
    -using namespace boost::python;
    -
    -struct tag_to_noddy
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //unnecessary overhead if py signatures are not supported
    -: wrap_pytype<&noddy_NoddyType> //inherits get_pytype from wrap_pytype
    -#endif
    -{
    -    static PyObject* convert(tag const& x)
    -    {
    -        return PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
    -    }
    -};
    -
    -BOOST_PYTHON_MODULE(to_python_converter)
    -{
    -    def("make_tag", make_tag);
    -    to_python_converter<tag, tag_to_noddy
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -          , true
    -#endif
    -          >(); //"true" because tag_to_noddy has member get_pytype
    -}
    -
    -

    - The following example registers to and from python converters using the - templates expected_from_python_type and to_pyhton_target_type. -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/extract.hpp>
    -#include <boost/python/to_python_converter.hpp>
    -#include <boost/python/class.hpp>
    -
    -using namespace boost::python;
    -
    -struct A
    -{
    -};
    -
    -struct B
    -{
    -  A a;
    -  B(const A& a_):a(a_){}
    -};
    -
    -// Converter from A to python int
    -struct BToPython
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //unnecessary overhead if py signatures are not supported
    -   : converter::to_python_target_type<A>  //inherits get_pytype
    -#endif
    -{
    -  static PyObject* convert(const B& b)
    -  {
    -    return incref(object(b.a).ptr());
    -  }
    -};
    -
    -// Conversion from python int to A
    -struct BFromPython
    -{
    -  BFromPython()
    -  {
    -    boost::python::converter::registry::push_back
    -        ( &convertible
    -        , &construct
    -        , type_id< B >()
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -        , &converter::expected_from_python_type<A>::get_pytype//convertible to A can be converted to B
    -#endif
    -        );
    -  }
    -
    -  static void* convertible(PyObject* obj_ptr)
    -  {
    -      extract<const A&> ex(obj_ptr);
    -      if (!ex.check()) return 0;
    -      return obj_ptr;
    -  }
    -
    -  static void construct(
    -      PyObject* obj_ptr,
    -      converter::rvalue_from_python_stage1_data* data)
    -  {
    -    void* storage = (
    -        (converter::rvalue_from_python_storage< B >*)data)-> storage.bytes;
    -
    -    extract<const A&> ex(obj_ptr);
    -    new (storage) B(ex());
    -    data->convertible = storage;
    -  }
    -};
    -
    -
    -B func(const B& b) { return b ; }
    -
    -BOOST_PYTHON_MODULE(pytype_function_ext)
    -{
    -  to_python_converter< B , BToPython
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -             ,true
    -#endif
    -             >(); //has get_pytype
    -  BFromPython();
    -
    -  class_<A>("A") ;
    -
    -  def("func", &func);
    -
    -}
    -
    -
    -
    ->>> from pytype_function_ext import *
    ->>> print func.__doc__
    -func( (A)arg1) -> A :
    -    C++ signature:
    -         struct B func(struct B)
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp.html b/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp.html deleted file mode 100644 index 648de218..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -pytype_function.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - To support Pythonic signatures the converters should supply a get_pytype - function returning a pointer to the associated PyTypeObject. See for - example ResultConverter or to_python_converter. The classes in this header - file are meant to be used when implmenting get_pytype. There are also - _direct versions of the templates of class T which should be used with - undecorated type parameter, expected to be in the conversion registry - when the module loads. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_expected_from_python_type.html b/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_expected_from_python_type.html deleted file mode 100644 index e572ccda..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_expected_from_python_type.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class expected_from_python_type - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This template generates a static get_pytype member which inspects the - registered from_python converters for the type T and returns a matching - python type. -

    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class expected_from_python_type
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_registered_pytype.html b/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_registered_pytype.html deleted file mode 100644 index a211d345..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_registered_pytype.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class registered_pytype - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    This template should be used with template parameters which are (possibly decorated) types exported to python using class_. The generated a static get_pytype member returns the corresponding python type.
    -
    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class registered_pytype
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_to_python_target_type.html b/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_to_python_target_type.html deleted file mode 100644 index e5650d89..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_to_python_target_type.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class to_python_target_type - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    This template generates a static get_pytype member returning the python type to which T can be converted.
    -
    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < class T >
    -    class to_python_target_type
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype();
    -    };
    -
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_wrap_pytype.html b/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_wrap_pytype.html deleted file mode 100644 index 1a7e7bdb..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/class_wrap_pytype.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class wrap_pytype - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    This template generates a static get_pytype member returning the template parameter.
    -
    -
    namespace boost { namespace python { namespace converter{
    -
    -    template < PyTypeObject const *pytype >
    -    class wrap_pytype
    -    {
    -      public:
    -          static PyTypeObject const *get_pytype(){return pytype; }
    -    };
    -
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/example.html b/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/example.html deleted file mode 100644 index 69b0504e..00000000 --- a/doc/html/reference/function_invocation_and_creation/function_documentation/pytype_function_hpp/example.html +++ /dev/null @@ -1,173 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    This example presumes that someone has implemented the standard noddy example module from the Python documentation, and placed the corresponding declarations in "noddy.h". Because noddy_NoddyObject is the ultimate trivial extension type, the example is a bit contrived: it wraps a function for which all information is contained in the type of its return value.
    -
    -

    - C++ module definition: -

    -
    #include <boost/python/reference.hpp>
    -#include <boost/python/module.hpp>
    -#include "noddy.h"
    -
    -struct tag {};
    -tag make_tag() { return tag(); }
    -
    -using namespace boost::python;
    -
    -struct tag_to_noddy
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //unnecessary overhead if py signatures are not supported
    -: wrap_pytype<&noddy_NoddyType> //inherits get_pytype from wrap_pytype
    -#endif
    -{
    -    static PyObject* convert(tag const& x)
    -    {
    -        return PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
    -    }
    -};
    -
    -BOOST_PYTHON_MODULE(to_python_converter)
    -{
    -    def("make_tag", make_tag);
    -    to_python_converter<tag, tag_to_noddy
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -          , true
    -#endif
    -          >(); //"true" because tag_to_noddy has member get_pytype
    -}
    -
    -

    - The following example registers to and from python converters using the - templates expected_from_python_type and to_pyhton_target_type. -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/extract.hpp>
    -#include <boost/python/to_python_converter.hpp>
    -#include <boost/python/class.hpp>
    -
    -using namespace boost::python;
    -
    -struct A
    -{
    -};
    -
    -struct B
    -{
    -  A a;
    -  B(const A& a_):a(a_){}
    -};
    -
    -// Converter from A to python int
    -struct BToPython
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //unnecessary overhead if py signatures are not supported
    -   : converter::to_python_target_type<A>  //inherits get_pytype
    -#endif
    -{
    -  static PyObject* convert(const B& b)
    -  {
    -    return incref(object(b.a).ptr());
    -  }
    -};
    -
    -// Conversion from python int to A
    -struct BFromPython
    -{
    -  BFromPython()
    -  {
    -    boost::python::converter::registry::push_back
    -        ( &convertible
    -        , &construct
    -        , type_id< B >()
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -        , &converter::expected_from_python_type<A>::get_pytype//convertible to A can be converted to B
    -#endif
    -        );
    -  }
    -
    -  static void* convertible(PyObject* obj_ptr)
    -  {
    -      extract<const A&> ex(obj_ptr);
    -      if (!ex.check()) return 0;
    -      return obj_ptr;
    -  }
    -
    -  static void construct(
    -      PyObject* obj_ptr,
    -      converter::rvalue_from_python_stage1_data* data)
    -  {
    -    void* storage = (
    -        (converter::rvalue_from_python_storage< B >*)data)-> storage.bytes;
    -
    -    extract<const A&> ex(obj_ptr);
    -    new (storage) B(ex());
    -    data->convertible = storage;
    -  }
    -};
    -
    -
    -B func(const B& b) { return b ; }
    -
    -BOOST_PYTHON_MODULE(pytype_function_ext)
    -{
    -  to_python_converter< B , BToPython
    -#if defined BOOST_PYTHON_SUPPORTS_PY_SIGNATURES //invalid if py signatures are not supported
    -             ,true
    -#endif
    -             >(); //has get_pytype
    -  BFromPython();
    -
    -  class_<A>("A") ;
    -
    -  def("func", &func);
    -
    -}
    -
    -
    -
    ->>> from pytype_function_ext import *
    ->>> print func.__doc__
    -func( (A)arg1) -> A :
    -    C++ signature:
    -         struct B func(struct B)
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/make_function_hpp.html b/doc/html/reference/function_invocation_and_creation/make_function_hpp.html deleted file mode 100644 index 01627279..00000000 --- a/doc/html/reference/function_invocation_and_creation/make_function_hpp.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -make_function.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - make_function() and make_constructor() are the functions used internally - by def() and class_<>::def() to produce Python callable objects which - wrap C++ functions and member functions. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/make_function_hpp/example.html b/doc/html/reference/function_invocation_and_creation/make_function_hpp/example.html deleted file mode 100644 index 3993e62e..00000000 --- a/doc/html/reference/function_invocation_and_creation/make_function_hpp/example.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ function exposed below returns a callable object wrapping one of two - functions. -

    -
    #include <boost/python/make_function.hpp>
    -#include <boost/python/module.hpp>
    -
    -char const* foo() { return "foo"; }
    -char const* bar() { return "bar"; }
    -
    -using namespace boost::python;
    -object choose_function(bool selector)
    -{
    -    if (selector)
    -        return boost::python::make_function(foo);
    -    else
    -        return boost::python::make_function(bar);
    -}
    -
    -BOOST_PYTHON_MODULE(make_function_test)
    -{
    -    def("choose_function", choose_function);
    -}
    -
    -

    - It can be used this way in Python: -

    -
    >>> from make_function_test import *
    ->>> f = choose_function(1)
    ->>> g = choose_function(0)
    ->>> f()
    -'foo'
    ->>> g()
    -'bar'
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/make_function_hpp/functions.html b/doc/html/reference/function_invocation_and_creation/make_function_hpp/functions.html deleted file mode 100644 index 872a8cd1..00000000 --- a/doc/html/reference/function_invocation_and_creation/make_function_hpp/functions.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class F>
    -object make_function(F f)
    -
    -template <class F, class Policies>
    -object make_function(F f, Policies const& policies)
    -
    -template <class F, class Policies, class KeywordsOrSignature>
    -object make_function(F f, Policies const& policies, KeywordsOrSignature const& ks)
    -
    -template <class F, class Policies, class Keywords, class Signature>
    -object make_function(F f, Policies const& policies, Keywords const& kw, Signature const& sig)
    -
    -
    -

    -
    -
    Requires
    -

    - F is a function pointer or member function pointer type. If policies - are supplied, it must be a model of CallPolicies. If kewords are - supplied, it must be the result of a keyword-expression specifying - no more arguments than the arity of f. -

    -
    Effects
    -
    -

    - Creates a Python callable object which, when called from Python, - converts its arguments to C++ and calls f. If F is a pointer-to-member-function - type, the target object of the function call (*this) will be taken - from the first Python argument, and subsequent Python arguments will - be used as the arguments to f. -

    -
      -
    • - If policies are supplied, it will be applied to the function - as described here. -
    • -
    • - If keywords are supplied, the keywords will be applied in order - to the final arguments of the resulting function. -
    • -
    • - If Signature is supplied, it should be an instance of an MPL - front-extensible sequence representing the function's return - type followed by its argument types. Pass a Signature when wrapping - function object types whose signatures can't be deduced, or when - you wish to override the types which will be passed to the wrapped - function. -
    • -
    -
    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    Caveats
    -

    - An argument of pointer type may be 0 if None is passed from Python. - An argument type which is a constant reference may refer to a temporary - which was created from the Python object for just the duration of - the call to the wrapped function, for example a std::vector conjured - up by the conversion process from a Python list. Use a non-const - reference argument when a persistent lvalue is required. -

    -
    -
    -
    template <class F>
    -object make_constructor(F f)
    -
    -template <class F, class Policies>
    -object make_constructor(F f, Policies const& policies)
    -
    -template <class F, class Policies, class KeywordsOrSignature>
    -object make_constructor(F f, Policies const& policies, KeywordsOrSignature const& ks)
    -
    -template <class F, class Policies, class Keywords, class Signature>
    -object make_constructor(F f, Policies const& policies, Keywords const& kw, Signature const& sig)
    -
    -
    -

    -
    -
    Requires
    -

    - F is a function pointer type. If policies are supplied, it must be - a model of CallPolicies. If kewords are supplied, it must be the - result of a keyword-expression specifying no more arguments than - the arity of f. -

    -
    Effects
    -

    - Creates a Python callable object which, when called from Python, - converts its arguments to C++ and calls f. -

    -
    Returns
    -

    - An instance of object which holds the new Python callable object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies.html index 385e2c15..696dd2c4 100644 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies.html +++ b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies.html @@ -3,14 +3,14 @@ Models of CallPolicies - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp.html deleted file mode 100644 index 9ad78b35..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp.html +++ /dev/null @@ -1,251 +0,0 @@ - - - -boost/python/return_arg.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - return_arg and return_self instantiations are models - of CallPolicies - which return the specified argument parameter (usually *this) - of a wrapped (member) function. -

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

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - arg_pos -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - the position of the argument to be returned. -

    -
    -

    - 1 -

    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. Any result_converter - it supplies will be overridden by return_arg, - but its precall - and postcall - policies are composed as described here CallPolicies. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <size_t arg_pos=1, class Base = default_call_policies>
    -   struct return_arg : Base
    -   {
    -      static PyObject* postcall(PyObject*, PyObject* result);
    -      struct result_converter{ template <class T> struct apply; };
    -      template <class Sig> struct extract_return_type : mpl::at_c<Sig, arg_pos>{};
    -
    -   };
    -}}
    -
    -
    -
    - -
    PyObject* postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 - and PyTuple_Size(args) != 0 -

    -
    Returns
    -

    - PyTuple_GetItem(args,arg_pos-1) -

    -
    -
    -
    -
    - -
    namespace boost { namespace python
    -{
    -   template <class Base = default_call_policies>
    -   struct return_self
    -     : return_arg<1,Base>
    -   {};
    -}}
    -
    -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_arg.hpp>
    -
    -struct Widget
    -{
    -   Widget() :sensitive_(true){}
    -   bool get_sensitive() const { return sensitive_; }
    -   void set_sensitive(bool s) { this->sensitive_ = s; }
    - private:
    -   bool sensitive_;
    -};
    -
    -struct Label : Widget
    -{
    -   Label() {}
    -
    -   std::string  get_label() const { return label_; }
    -   void set_label(const std::string &l){ label_ = l; }
    -
    - private:
    -   std::string label_;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(return_self_ext)
    -{
    -   class_<widget>("Widget")
    -      .def("sensitive", &Widget::get_sensitive)
    -      .def("sensitive", &Widget::set_sensitive, return_self<>())
    -      ;
    -
    -   class_<Label, bases<Widget> >("Label")
    -      .def("label", &Label::get_label)
    -      .def("label", &Label::set_label, return_self<>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from return_self_ext import *
    ->>> l1 = Label().label("foo").sensitive(false)
    ->>> l2 = Label().sensitive(false).label("foo")
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_return_arg.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_return_arg.html deleted file mode 100644 index fb53e369..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_return_arg.html +++ /dev/null @@ -1,136 +0,0 @@ - - - -Class return_arg - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - arg_pos -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - the position of the argument to be returned. -

    -
    -

    - 1 -

    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. Any result_converter - it supplies will be overridden by return_arg, - but its precall - and postcall - policies are composed as described here CallPolicies. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <size_t arg_pos=1, class Base = default_call_policies>
    -   struct return_arg : Base
    -   {
    -      static PyObject* postcall(PyObject*, PyObject* result);
    -      struct result_converter{ template <class T> struct apply; };
    -      template <class Sig> struct extract_return_type : mpl::at_c<Sig, arg_pos>{};
    -
    -   };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_return_arg_static_function.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_return_arg_static_function.html deleted file mode 100644 index 5dc26a35..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_return_arg_static_function.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class return_arg static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    PyObject* postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 - and PyTuple_Size(args) != 0 -

    -
    Returns
    -

    - PyTuple_GetItem(args,arg_pos-1) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_template_return_self.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_template_return_self.html deleted file mode 100644 index 5d43d2ed..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/class_template_return_self.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Class template return_self - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace boost { namespace python
    -{
    -   template <class Base = default_call_policies>
    -   struct return_self
    -     : return_arg<1,Base>
    -   {};
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/example.html deleted file mode 100644 index 7ad3092a..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_arg_hpp/example.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_arg.hpp>
    -
    -struct Widget
    -{
    -   Widget() :sensitive_(true){}
    -   bool get_sensitive() const { return sensitive_; }
    -   void set_sensitive(bool s) { this->sensitive_ = s; }
    - private:
    -   bool sensitive_;
    -};
    -
    -struct Label : Widget
    -{
    -   Label() {}
    -
    -   std::string  get_label() const { return label_; }
    -   void set_label(const std::string &l){ label_ = l; }
    -
    - private:
    -   std::string label_;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(return_self_ext)
    -{
    -   class_<widget>("Widget")
    -      .def("sensitive", &Widget::get_sensitive)
    -      .def("sensitive", &Widget::set_sensitive, return_self<>())
    -      ;
    -
    -   class_<Label, bases<Widget> >("Label")
    -      .def("label", &Label::get_label)
    -      .def("label", &Label::set_label, return_self<>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from return_self_ext import *
    ->>> l1 = Label().label("foo").sensitive(false)
    ->>> l2 = Label().sensitive(false).label("foo")
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref.html deleted file mode 100644 index 4423da58..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref.html +++ /dev/null @@ -1,250 +0,0 @@ - - - -boost/python/return_internal_reference.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - return_internal_reference - instantiations are models of CallPolicies which allow pointers - and references to objects held internally by a free or member function - argument or from the target of a member function to be returned safely - without making a copy of the referent. The default for its first template - argument handles the common case where the containing object is the target - (*this) - of a wrapped member function. -

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

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - owner_arg -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which contains the object to which - the reference or pointer is being returned. If used to wrap - a member function, parameter 1 is the target object (*this). - Note that if the target Python object type doesn't support - weak references, a Python TypeError exception will be raised - when the function being wrapped is called. -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. Any result_converter - it supplies will be overridden by return_internal_reference, - but its precall - and postcall - policies are composed as described here CallPolicies. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t owner_arg = 1, class Base = default_call_policies>
    -   struct return_internal_reference : Base
    -   {
    -      static PyObject* postcall(PyObject*, PyObject* result);
    -      typedef reference_existing_object result_converter;
    -   };
    -}}
    -
    -
    -
    - -
    PyObject* postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 -

    -
    Returns
    -

    - with_custodian_and_ward_postcall::postcall(args, result) -

    -
    -
    -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_internal_reference.hpp>
    -
    -class Bar
    -{
    - public:
    -   Bar(int x) : x(x) {}
    -   int get_x() const { return x; }
    -   void set_x(int x) { this->x = x; }
    - private:
    -   int x;
    -};
    -
    -class Foo
    -{
    - public:
    -   Foo(int x) : b(x) {}
    -
    -   // Returns an internal reference
    -   Bar const& get_bar() const { return b; }
    -
    - private:
    -   Bar b;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(internal_refs)
    -{
    -   class_<Bar>("Bar", init<int>())
    -      .def("get_x", &Bar::get_x)
    -      .def("set_x", &Bar::set_x)
    -      ;
    -
    -   class_<Foo>("Foo", init<int>())
    -      .def("get_bar", &Foo::get_bar
    -          , return_internal_reference<>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from internal_refs import *
    ->>> f = Foo(3)
    ->>> b1 = f.get_bar()
    ->>> b2 = f.get_bar()
    ->>> b1.get_x()
    -3
    ->>> b2.get_x()
    -3
    ->>> b1.set_x(42)
    ->>> b2.get_x()
    -42
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/class_return_internal_reference_.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/class_return_internal_reference_.html deleted file mode 100644 index dad66dc9..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/class_return_internal_reference_.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class return_internal_reference static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    PyObject* postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 -

    -
    Returns
    -

    - with_custodian_and_ward_postcall::postcall(args, result) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/class_template_return_internal_r.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/class_template_return_internal_r.html deleted file mode 100644 index ea040178..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/class_template_return_internal_r.html +++ /dev/null @@ -1,136 +0,0 @@ - - - -Class template return_internal_reference - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - owner_arg -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which contains the object to which - the reference or pointer is being returned. If used to wrap - a member function, parameter 1 is the target object (*this). - Note that if the target Python object type doesn't support - weak references, a Python TypeError exception will be raised - when the function being wrapped is called. -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. Any result_converter - it supplies will be overridden by return_internal_reference, - but its precall - and postcall - policies are composed as described here CallPolicies. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t owner_arg = 1, class Base = default_call_policies>
    -   struct return_internal_reference : Base
    -   {
    -      static PyObject* postcall(PyObject*, PyObject* result);
    -      typedef reference_existing_object result_converter;
    -   };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/example.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/example.html deleted file mode 100644 index 39b11bee..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_internal_ref/example.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_internal_reference.hpp>
    -
    -class Bar
    -{
    - public:
    -   Bar(int x) : x(x) {}
    -   int get_x() const { return x; }
    -   void set_x(int x) { this->x = x; }
    - private:
    -   int x;
    -};
    -
    -class Foo
    -{
    - public:
    -   Foo(int x) : b(x) {}
    -
    -   // Returns an internal reference
    -   Bar const& get_bar() const { return b; }
    -
    - private:
    -   Bar b;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(internal_refs)
    -{
    -   class_<Bar>("Bar", init<int>())
    -      .def("get_x", &Bar::get_x)
    -      .def("set_x", &Bar::set_x)
    -      ;
    -
    -   class_<Foo>("Foo", init<int>())
    -      .def("get_bar", &Foo::get_bar
    -          , return_internal_reference<>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from internal_refs import *
    ->>> f = Foo(3)
    ->>> b1 = f.get_bar()
    ->>> b2 = f.get_bar()
    ->>> b1.get_x()
    -3
    ->>> b2.get_x()
    -3
    ->>> b1.set_x(42)
    ->>> b2.get_x()
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy.html deleted file mode 100644 index 049bac81..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy.html +++ /dev/null @@ -1,173 +0,0 @@ - - - -boost/python/return_value_policy.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - return_value_policy instantiations are simply models of CallPolicies which are composed - of a ResultConverterGenerator and - optional Base CallPolicies. -

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

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Default -

    -
    -

    - ResultConverterGenerator -

    -
    -

    - A model of ResultConverterGenerator -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -  template <class ResultConverterGenerator, class Base = default_call_policies>
    -  struct return_value_policy : Base
    -  {
    -      typedef ResultConverterGenerator result_converter;
    -  };
    -}}
    -
    -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/copy_const_reference.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { int x; }
    -
    -struct Foo {
    -   Foo(int x) : { b.x = x; }
    -   Bar const& get_bar() const { return b; }
    - private:
    -   Bar b;
    -};
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -   class_<Bar>("Bar");
    -
    -   class_<Foo>("Foo", init<int>())
    -      .def("get_bar", &Foo::get_bar
    -          , return_value_policy<copy_const_reference>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = Foo(3)         # create a Foo object
    ->>> b = f.get_bar()    # make a copy of the internal Bar object
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy/class_template_return_value_poli.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy/class_template_return_value_poli.html deleted file mode 100644 index 8ebe46eb..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy/class_template_return_value_poli.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -Class template return_value_policy - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ----- - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Default -

    -
    -

    - ResultConverterGenerator -

    -
    -

    - A model of ResultConverterGenerator -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -  template <class ResultConverterGenerator, class Base = default_call_policies>
    -  struct return_value_policy : Base
    -  {
    -      typedef ResultConverterGenerator result_converter;
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy/example.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy/example.html deleted file mode 100644 index df522dab..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_return_value_policy/example.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/copy_const_reference.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { int x; }
    -
    -struct Foo {
    -   Foo(int x) : { b.x = x; }
    -   Bar const& get_bar() const { return b; }
    - private:
    -   Bar b;
    -};
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -   class_<Bar>("Bar");
    -
    -   class_<Foo>("Foo", init<int>())
    -      .def("get_bar", &Foo::get_bar
    -          , return_value_policy<copy_const_reference>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = Foo(3)         # create a Foo object
    ->>> b = f.get_bar()    # make a copy of the internal Bar object
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_.html deleted file mode 100644 index 618e679d..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_.html +++ /dev/null @@ -1,396 +0,0 @@ - - - -boost/python/with_custodian_and_ward.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - This header provides facilities for establishing a lifetime dependency - between two of a function's Python argument or result objects. The ward - object will not be destroyed until after the custodian as long as the - custodian object supports weak - references (Boost.Python extension classes all support weak references). - If the custodian object does not support weak references and is not - None, an appropriate - exception will be thrown. The two class templates with_custodian_and_ward - and with_custodian_and_ward_postcall - differ in the point at which they take effect. -

    -

    - In order to reduce the chance of inadvertently creating dangling pointers, - the default is to do lifetime binding before the underlying C++ object - is invoked. However, before invocation the result object is not available, - so with_custodian_and_ward_postcall - is provided to bind lifetimes after invocation. Also, if a C++ exception - is thrown after with_custodian_and_ward<>::precall - but before the underlying C++ object actually stores a pointer, the lifetime - of the custodian and ward objects will be artificially bound together, - so one might choose with_custodian_and_ward_postcall - instead, depending on the semantics of the function being wrapped. -

    -

    - Please note that this is not the appropriate tool to use when wrapping - functions which transfer ownership of a raw pointer across the function-call - boundary. Please see the FAQ if you want to do that. -

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

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - custodian -

    -
    -

    - A positive compile-time constant of type - std::size_t. -

    -
    -

    - The 1-based index of the parameter which is the dependency - in the lifetime relationship to be established. If used to - wrap a member function, parameter 1 is the target object (*this). - Note that if the target Python object type doesn't support - weak references, a Python TypeError exception will be raised - when the C++ object being wrapped is called. -

    -
    -
    -

    - ward -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The 1-based index of the parameter which is the dependent in - the lifetime relationship to be established. If used to wrap - a member function, parameter 1 is the target object (*this). -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t custodian, std::size_t ward, class Base = default_call_policies>
    -   struct with_custodian_and_ward : Base
    -   {
    -      static bool precall(PyObject* args);
    -   };
    -}}
    -
    -
    - -
    bool precall(PyObject* args);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 -

    -
    Effects
    -

    - Makes the lifetime of the argument indicated by ward dependent - on the lifetime of the argument indicated by custodian. -

    -
    Returns
    -

    - false and PyErr_Occurred() != 0 upon failure, true otherwise. -

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

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - custodian -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which is the dependency in the lifetime - relationship to be established. Zero indicates the result object; - 1 indicates the first argument. If used to wrap a member function, - parameter 1 is the target object (*this). Note that if the target - Python object type doesn't support weak references, a Python - TypeError exception will be raised when the C++ object being - wrapped is called. -

    -
    -
    -

    - ward -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which is the dependent in the lifetime - relationship to be established. Zero indicates the result object; - 1 indicates the first argument. If used to wrap a member function, - parameter 1 is the target object (*this). -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t custodian, std::size_t ward, class Base = default_call_policies>
    -   struct with_custodian_and_ward_postcall : Base
    -   {
    -      static PyObject* postcall(PyObject* args, PyObject* result);
    -   };
    -}}
    -
    -
    -
    - -
    PyObject *postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0, - result != - 0 -

    -
    Effects
    -

    - Makes the lifetime of the object indicated by ward dependent on - the lifetime of the object indicated by custodian. -

    -
    Returns
    -

    - 0 and PyErr_Occurred() - != 0 - upon failure, true - otherwise. -

    -
    -
    -
    -
    - -

    - The following example shows how with_custodian_and_ward_postcall - is used by the library to implement return_internal_reference -

    -
    template <std::size_t owner_arg = 1, class Base = default_call_policies>
    -struct return_internal_reference
    -    : with_custodian_and_ward_postcall<0, owner_arg, Base>
    -{
    -   typedef reference_existing_object result_converter;
    -};
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward.html deleted file mode 100644 index 4ced7cb5..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward.html +++ /dev/null @@ -1,152 +0,0 @@ - - - -Class with_custodian_and_ward - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - custodian -

    -
    -

    - A positive compile-time constant of type - std::size_t. -

    -
    -

    - The 1-based index of the parameter which is the dependency - in the lifetime relationship to be established. If used to - wrap a member function, parameter 1 is the target object (*this). - Note that if the target Python object type doesn't support - weak references, a Python TypeError exception will be raised - when the C++ object being wrapped is called. -

    -
    -
    -

    - ward -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The 1-based index of the parameter which is the dependent in - the lifetime relationship to be established. If used to wrap - a member function, parameter 1 is the target object (*this). -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t custodian, std::size_t ward, class Base = default_call_policies>
    -   struct with_custodian_and_ward : Base
    -   {
    -      static bool precall(PyObject* args);
    -   };
    -}}
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_p0.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_p0.html deleted file mode 100644 index 882912b0..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_p0.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -Class with_custodian_and_ward_postcall static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    PyObject *postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0, - result != - 0 -

    -
    Effects
    -

    - Makes the lifetime of the object indicated by ward dependent on - the lifetime of the object indicated by custodian. -

    -
    Returns
    -

    - 0 and PyErr_Occurred() - != 0 - upon failure, true - otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_po.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_po.html deleted file mode 100644 index 91de40d7..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_po.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -Class with_custodian_and_ward_postcall - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - custodian -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which is the dependency in the lifetime - relationship to be established. Zero indicates the result object; - 1 indicates the first argument. If used to wrap a member function, - parameter 1 is the target object (*this). Note that if the target - Python object type doesn't support weak references, a Python - TypeError exception will be raised when the C++ object being - wrapped is called. -

    -
    -
    -

    - ward -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which is the dependent in the lifetime - relationship to be established. Zero indicates the result object; - 1 indicates the first argument. If used to wrap a member function, - parameter 1 is the target object (*this). -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t custodian, std::size_t ward, class Base = default_call_policies>
    -   struct with_custodian_and_ward_postcall : Base
    -   {
    -      static PyObject* postcall(PyObject* args, PyObject* result);
    -   };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_st.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_st.html deleted file mode 100644 index f45bee2f..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/class_with_custodian_and_ward_st.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Class with_custodian_and_ward static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    bool precall(PyObject* args);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 -

    -
    Effects
    -

    - Makes the lifetime of the argument indicated by ward dependent - on the lifetime of the argument indicated by custodian. -

    -
    Returns
    -

    - false and PyErr_Occurred() != 0 upon failure, true otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/example.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/example.html deleted file mode 100644 index c690d205..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/boost_python_with_custodian_and_/example.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following example shows how with_custodian_and_ward_postcall - is used by the library to implement return_internal_reference -

    -
    template <std::size_t owner_arg = 1, class Base = default_call_policies>
    -struct return_internal_reference
    -    : with_custodian_and_ward_postcall<0, owner_arg, Base>
    -{
    -   typedef reference_existing_object result_converter;
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp.html deleted file mode 100644 index 41532bb6..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -return_arg.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - return_arg and return_self instantiations are models of CallPolicies - which return the specified argument parameter (usually *this) of a wrapped - (member) function. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_return_arg.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_return_arg.html deleted file mode 100644 index 0fa504dd..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_return_arg.html +++ /dev/null @@ -1,134 +0,0 @@ - - - -Class return_arg - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - arg_pos -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - the position of the argument to be returned. -

    -
    -

    - 1 -

    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. Any result_converter it supplies - will be overridden by return_arg, but its precall and postcall - policies are composed as described here CallPolicies. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <size_t arg_pos=1, class Base = default_call_policies>
    -   struct return_arg : Base
    -   {
    -      static PyObject* postcall(PyObject*, PyObject* result);
    -      struct result_converter{ template <class T> struct apply; };
    -      template <class Sig> struct extract_return_type : mpl::at_c<Sig, arg_pos>{};
    -
    -   };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_return_arg_static_function.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_return_arg_static_function.html deleted file mode 100644 index f631225d..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_return_arg_static_function.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class return_arg static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    PyObject* postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 - and PyTuple_Size(args) != 0 -

    -
    Returns
    -

    - PyTuple_GetItem(args,arg_pos-1) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_template_return_self.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_template_return_self.html deleted file mode 100644 index 5855f175..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/class_template_return_self.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Class template return_self - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace boost { namespace python
    -{
    -   template <class Base = default_call_policies>
    -   struct return_self
    -     : return_arg<1,Base>
    -   {};
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/example.html deleted file mode 100644 index c53d35bc..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_arg_hpp/example.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_arg.hpp>
    -
    -struct Widget
    -{
    -   Widget() :sensitive_(true){}
    -   bool get_sensitive() const { return sensitive_; }
    -   void set_sensitive(bool s) { this->sensitive_ = s; }
    - private:
    -   bool sensitive_;
    -};
    -
    -struct Label : Widget
    -{
    -   Label() {}
    -
    -   std::string  get_label() const { return label_; }
    -   void set_label(const std::string &l){ label_ = l; }
    -
    - private:
    -   std::string label_;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(return_self_ext)
    -{
    -   class_<widget>("Widget")
    -      .def("sensitive", &Widget::get_sensitive)
    -      .def("sensitive", &Widget::set_sensitive, return_self<>())
    -      ;
    -
    -   class_<Label, bases<Widget> >("Label")
    -      .def("label", &Label::get_label)
    -      .def("label", &Label::set_label, return_self<>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from return_self_ext import *
    ->>> l1 = Label().label("foo").sensitive(false)
    ->>> l2 = Label().sensitive(false).label("foo")
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp.html deleted file mode 100644 index 03e16d17..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -return_internal_reference.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    return_internal_reference instantiations are models of CallPolicies which allow pointers and references to objects held internally by a free or member function argument or from the target of a member function to be returned safely without making a copy of the referent. The default for its first template argument handles the common case where the containing object is the target (*this) of a wrapped member function.
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/class_return_internal_reference_.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/class_return_internal_reference_.html deleted file mode 100644 index 1f277c9c..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/class_return_internal_reference_.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class return_internal_reference static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    PyObject* postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 -

    -
    Returns
    -

    - with_custodian_and_ward_postcall::postcall(args, result) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/class_template_return_internal_r.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/class_template_return_internal_r.html deleted file mode 100644 index 38fdbbd7..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/class_template_return_internal_r.html +++ /dev/null @@ -1,134 +0,0 @@ - - - -Class template return_internal_reference - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - owner_arg -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which contains the object to which - the reference or pointer is being returned. If used to wrap - a member function, parameter 1 is the target object (*this). - Note that if the target Python object type doesn't support - weak references, a Python TypeError exception will be raised - when the function being wrapped is called. -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. Any result_converter it supplies - will be overridden by return_internal_reference, but its precall - and postcall policies are composed as described here CallPolicies. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t owner_arg = 1, class Base = default_call_policies>
    -   struct return_internal_reference : Base
    -   {
    -      static PyObject* postcall(PyObject*, PyObject* result);
    -      typedef reference_existing_object result_converter;
    -   };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/example.html deleted file mode 100644 index fb029ff7..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_internal_reference_hpp/example.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_internal_reference.hpp>
    -
    -class Bar
    -{
    - public:
    -   Bar(int x) : x(x) {}
    -   int get_x() const { return x; }
    -   void set_x(int x) { this->x = x; }
    - private:
    -   int x;
    -};
    -
    -class Foo
    -{
    - public:
    -   Foo(int x) : b(x) {}
    -
    -   // Returns an internal reference
    -   Bar const& get_bar() const { return b; }
    -
    - private:
    -   Bar b;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(internal_refs)
    -{
    -   class_<Bar>("Bar", init<int>())
    -      .def("get_x", &Bar::get_x)
    -      .def("set_x", &Bar::set_x)
    -      ;
    -
    -   class_<Foo>("Foo", init<int>())
    -      .def("get_bar", &Foo::get_bar
    -          , return_internal_reference<>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from internal_refs import *
    ->>> f = Foo(3)
    ->>> b1 = f.get_bar()
    ->>> b2 = f.get_bar()
    ->>> b1.get_x()
    -3
    ->>> b2.get_x()
    -3
    ->>> b1.set_x(42)
    ->>> b2.get_x()
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp.html deleted file mode 100644 index 7f594a45..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -return_value_policy.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    return_value_policy instantiations are simply models of CallPolicies which are composed of a ResultConverterGenerator and optional Base CallPolicies.
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp/class_template_return_value_poli.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp/class_template_return_value_poli.html deleted file mode 100644 index e24eb020..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp/class_template_return_value_poli.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -Class template return_value_policy - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ----- - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Default -

    -
    -

    - ResultConverterGenerator -

    -
    -

    - A model of ResultConverterGenerator -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -  template <class ResultConverterGenerator, class Base = default_call_policies>
    -  struct return_value_policy : Base
    -  {
    -      typedef ResultConverterGenerator result_converter;
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp/example.html deleted file mode 100644 index 5396bb8c..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/return_value_policy_hpp/example.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/copy_const_reference.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { int x; }
    -
    -struct Foo {
    -   Foo(int x) : { b.x = x; }
    -   Bar const& get_bar() const { return b; }
    - private:
    -   Bar b;
    -};
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -   class_<Bar>("Bar");
    -
    -   class_<Foo>("Foo", init<int>())
    -      .def("get_bar", &Foo::get_bar
    -          , return_value_policy<copy_const_reference>())
    -      ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = Foo(3)         # create a Foo object
    ->>> b = f.get_bar()    # make a copy of the internal Bar object
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp.html deleted file mode 100644 index 5d875ba6..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -with_custodian_and_ward.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - This header provides facilities for establishing a lifetime dependency - between two of a function's Python argument or result objects. The ward - object will not be destroyed until after the custodian as long as the - custodian object supports weak references (Boost.Python extension classes - all support weak references). If the custodian object does not support - weak references and is not None, an appropriate exception will be thrown. - The two class templates with_custodian_and_ward and with_custodian_and_ward_postcall - differ in the point at which they take effect. -

    -

    - In order to reduce the chance of inadvertently creating dangling pointers, - the default is to do lifetime binding before the underlying C++ object - is invoked. However, before invocation the result object is not available, - so with_custodian_and_ward_postcall is provided to bind lifetimes after - invocation. Also, if a C++ exception is thrown after with_custodian_and_ward<>::precall - but before the underlying C++ object actually stores a pointer, the lifetime - of the custodian and ward objects will be artificially bound together, - so one might choose with_custodian_and_ward_postcall instead, depending - on the semantics of the function being wrapped. -

    -

    - Please note that this is not the appropriate tool to use when wrapping - functions which transfer ownership of a raw pointer across the function-call - boundary. Please see the FAQ if you want to do that. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward.html deleted file mode 100644 index 55b07be4..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -Class with_custodian_and_ward - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - custodian -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The 1-based index of the parameter which is the dependency - in the lifetime relationship to be established. If used to - wrap a member function, parameter 1 is the target object (*this). - Note that if the target Python object type doesn't support - weak references, a Python TypeError exception will be raised - when the C++ object being wrapped is called. -

    -
    -
    -

    - ward -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The 1-based index of the parameter which is the dependent in - the lifetime relationship to be established. If used to wrap - a member function, parameter 1 is the target object (*this). -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t custodian, std::size_t ward, class Base = default_call_policies>
    -   struct with_custodian_and_ward : Base
    -   {
    -      static bool precall(PyObject* args);
    -   };
    -}}
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_p0.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_p0.html deleted file mode 100644 index 9f46836a..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_p0.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Class with_custodian_and_ward_postcall static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    PyObject *postcall(PyObject* args, PyObject* result);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0, - result != - 0 -

    -
    Effects
    -

    - Makes the lifetime of the object indicated by ward dependent on - the lifetime of the object indicated by custodian. -

    -
    Returns
    -

    - 0 and PyErr_Occurred() != 0 upon failure, true otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_po.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_po.html deleted file mode 100644 index f501313b..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_po.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -Class with_custodian_and_ward_postcall - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - Default -

    -
    -

    - custodian -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which is the dependency in the lifetime - relationship to be established. Zero indicates the result object; - 1 indicates the first argument. If used to wrap a member function, - parameter 1 is the target object (*this). Note that if the - target Python object type doesn't support weak references, - a Python TypeError exception will be raised when the C++ object - being wrapped is called. -

    -
    -
    -

    - ward -

    -
    -

    - A positive compile-time constant of type std::size_t. -

    -
    -

    - The index of the parameter which is the dependent in the lifetime - relationship to be established. Zero indicates the result object; - 1 indicates the first argument. If used to wrap a member function, - parameter 1 is the target object (*this). -

    -
    -
    -

    - Base -

    -
    -

    - A model of CallPolicies -

    -
    -

    - Used for policy composition. -

    -
    -

    - default_call_policies -

    -
    -
    namespace boost { namespace python
    -{
    -   template <std::size_t custodian, std::size_t ward, class Base = default_call_policies>
    -   struct with_custodian_and_ward_postcall : Base
    -   {
    -      static PyObject* postcall(PyObject* args, PyObject* result);
    -   };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_st.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_st.html deleted file mode 100644 index 5c7e4cb1..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/class_with_custodian_and_ward_st.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Class with_custodian_and_ward static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    bool precall(PyObject* args);
    -
    -

    -
    -
    Requires
    -

    - PyTuple_Check(args) - != 0 -

    -
    Effects
    -

    - Makes the lifetime of the argument indicated by ward dependent - on the lifetime of the argument indicated by custodian. -

    -
    Returns
    -

    - false and PyErr_Occurred() != 0 upon failure, true otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/example.html deleted file mode 100644 index 7ab2964e..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies/with_custodian_and_ward_hpp/example.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following example shows how with_custodian_and_ward_postcall is used - by the library to implement return_internal_reference -

    -
    template <std::size_t owner_arg = 1, class Base = default_call_policies>
    -struct return_internal_reference
    -    : with_custodian_and_ward_postcall<0, owner_arg, Base>
    -{
    -   typedef reference_existing_object result_converter;
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter.html index d5a96bce..0231afa7 100644 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter.html +++ b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter.html @@ -3,14 +3,14 @@ Models of ResultConverter - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp.html deleted file mode 100644 index 32ee1998..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -boost/python/to_python_value.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - to_python_value is a - model of ResultConverter - which copies its argument into a new Python object. -

    -
    -
    - -
    namespace boost { namespace python
    -{
    -   template <class T>
    -   struct to_python_value
    -   {
    -      typedef typename add_reference<
    -         typename add_const<T>::type
    -      >::type argument_type;
    -
    -      static bool convertible();
    -      PyObject* operator()(argument_type) const;
    -   };
    -}}
    -
    -
    -
    - -
    static bool convertible();
    -
    -

    -
    -
    Returns
    -

    - true iff a converter - has been registered which can convert T - to python by-value. -

    -
    -
    -
    PyObject* operator()(argument_type x) const;
    -
    -

    -
    -
    Requires
    -

    - convertible() - == true -

    -
    Effects
    -

    - converts x to python -

    -
    Returns
    -

    - the resulting Python object iff a converter for T - has been registered, 0 - otherwise. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp/class_template_to_python_value.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp/class_template_to_python_value.html deleted file mode 100644 index be411349..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp/class_template_to_python_value.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Class template to_python_value - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace boost { namespace python
    -{
    -   template <class T>
    -   struct to_python_value
    -   {
    -      typedef typename add_reference<
    -         typename add_const<T>::type
    -      >::type argument_type;
    -
    -      static bool convertible();
    -      PyObject* operator()(argument_type) const;
    -   };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp/class_to_python_value_observers.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp/class_to_python_value_observers.html deleted file mode 100644 index 96e30bed..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/boost_python_to_python_value_hpp/class_to_python_value_observers.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -Class to_python_value observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static bool convertible();
    -
    -

    -
    -
    Returns
    -

    - true iff a converter - has been registered which can convert T - to python by-value. -

    -
    -
    -
    PyObject* operator()(argument_type x) const;
    -
    -

    -
    -
    Requires
    -

    - convertible() - == true -

    -
    Effects
    -

    - converts x to python -

    -
    Returns
    -

    - the resulting Python object iff a converter for T - has been registered, 0 - otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp.html deleted file mode 100644 index 777ae48b..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -to_python_value.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - to_python_value is a model of ResultConverter which copies its argument - into a new Python object. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp/class_template_to_python_value.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp/class_template_to_python_value.html deleted file mode 100644 index c2dc40bd..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp/class_template_to_python_value.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Class template to_python_value - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace boost { namespace python
    -{
    -   template <class T>
    -   struct to_python_value
    -   {
    -      typedef typename add_reference<
    -         typename add_const<T>::type
    -      >::type argument_type;
    -
    -      static bool convertible();
    -      PyObject* operator()(argument_type) const;
    -   };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp/class_to_python_value_observers.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp/class_to_python_value_observers.html deleted file mode 100644 index 047064ad..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter/to_python_value_hpp/class_to_python_value_observers.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -Class to_python_value observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static bool convertible();
    -
    -

    -
    -
    Returns
    -

    - true iff a converter has been registered which can convert T to - python by-value. -

    -
    -
    -
    PyObject* operator()(argument_type x) const;
    -
    -

    -
    -
    Requires
    -

    - convertible() - == true -

    -
    Effects
    -

    - converts x to python -

    -
    Returns
    -

    - the resulting Python object iff a converter for T has been registered, - 0 otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat.html index 622c61ac..a9167452 100644 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat.html +++ b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat.html @@ -3,14 +3,14 @@ Models of ResultConverterGenerator - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe.html deleted file mode 100644 index 2c929aa4..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -boost/python/copy_non_const_reference.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - copy_non_const_reference - is a model of ResultConverterGenerator - which can be used to wrap C++ functions returning a reference-to-non-const - type such that the referenced value is copied into a new Python object. -

    -
    namespace boost { namespace python
    -{
    -    struct copy_non_const_reference
    -    {
    -        template <class T> struct apply;
    -    };
    -}}
    -
    -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U & - for some non-const U. -

    -
    Returns
    -

    - typedef to_python_value<T> type; -

    -
    -
    -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/copy_non_const_reference.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { int x; }
    -
    -struct Foo {
    -   Foo(int x) : { b.x = x; }
    -   Bar& get_bar() { return b; }
    - private:
    -   Bar b;
    -};
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    class_<Bar>("Bar");
    -
    -     class_<Foo>("Foo", init<int>())
    -        .def("get_bar", &Foo::get_bar
    -            , return_value_policy<copy_non_const_reference>())
    -       ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = Foo(3)         # create a Foo object
    ->>> b = f.get_bar()    # make a copy of the internal Bar object
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe/class_copy_non_const_reference_m.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe/class_copy_non_const_reference_m.html deleted file mode 100644 index 622f55c0..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe/class_copy_non_const_reference_m.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class copy_non_const_reference metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U & - for some non-const U. -

    -
    Returns
    -

    - typedef to_python_value<T> type; -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe/example.html deleted file mode 100644 index 67305b6f..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_copy_non_const_refe/example.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/copy_non_const_reference.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { int x; }
    -
    -struct Foo {
    -   Foo(int x) : { b.x = x; }
    -   Bar& get_bar() { return b; }
    - private:
    -   Bar b;
    -};
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    class_<Bar>("Bar");
    -
    -     class_<Foo>("Foo", init<int>())
    -        .def("get_bar", &Foo::get_bar
    -            , return_value_policy<copy_non_const_reference>())
    -       ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = Foo(3)         # create a Foo object
    ->>> b = f.get_bar()    # make a copy of the internal Bar object
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h.html deleted file mode 100644 index 35ddb05e..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h.html +++ /dev/null @@ -1,132 +0,0 @@ - - - -boost/python/manage_new_object.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - manage_new_object is - a model of ResultConverterGenerator - which can be used to wrap C++ functions which return a pointer to an - object allocated with a new-expression, and expect the caller to take - responsibility for deleting that object. -

    -
    namespace boost { namespace python
    -{
    -    struct manage_new_object
    -    {
    -        template <class T> struct apply;
    -    };
    -}}
    -
    -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U* - for some U. -

    -
    Returns
    -

    - typedef to_python_indirect<T> type; -

    -
    -
    -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/manage_new_object.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -
    -struct Foo {
    -   Foo(int x) : x(x){}
    -   int get_x() { return x; }
    -   int x;
    -};
    -
    -Foo* make_foo(int x) { return new Foo(x); }
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    def("make_foo", make_foo, return_value_policy<manage_new_object>())
    -    class_<Foo>("Foo")
    -        .def("get_x", &Foo::get_x)
    -        ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = make_foo(3)     # create a Foo object
    ->>> f.get_x()
    -3
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h/class_manage_new_object_metafunc.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h/class_manage_new_object_metafunc.html deleted file mode 100644 index f7c712e1..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h/class_manage_new_object_metafunc.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class manage_new_object metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U* - for some U. -

    -
    Returns
    -

    - typedef to_python_indirect<T> type; -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h/example.html deleted file mode 100644 index 139dba83..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_manage_new_object_h/example.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/manage_new_object.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -
    -struct Foo {
    -   Foo(int x) : x(x){}
    -   int get_x() { return x; }
    -   int x;
    -};
    -
    -Foo* make_foo(int x) { return new Foo(x); }
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    def("make_foo", make_foo, return_value_policy<manage_new_object>())
    -    class_<Foo>("Foo")
    -        .def("get_x", &Foo::get_x)
    -        ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = make_foo(3)     # create a Foo object
    ->>> f.get_x()
    -3
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_.html deleted file mode 100644 index 70d936cb..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_.html +++ /dev/null @@ -1,164 +0,0 @@ - - - -boost/python/reference_existing_object.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - reference_existing_object - is a model of ResultConverterGenerator - which can be used to wrap C++ functions which return a reference or pointer - to a C++ object. When the wrapped function is called, the value referenced - by its return value is not copied. A new Python object is created which - contains a pointer to the referent, and no attempt is made to ensure - that the lifetime of the referent is at least as long as that of the - corresponding Python object. Thus, it can be highly - dangerous to use reference_existing_object - without additional lifetime management from such models of CallPolicies - as with_custodian_and_ward. This - class is used in the implementation of return_internal_reference. -

    -
    namespace boost { namespace python
    -{
    -    struct reference_existing_object
    -    {
    -        template <class T> struct apply;
    -    };
    -}}
    -
    -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U& - or U* - for some U. -

    -
    Returns
    -

    - typedef to_python_indirect<T, V> type;, where V is a class whose static - execute function constructs an instance holder containing an unowned - U* - pointing to the referent of the wrapped function's return value. -

    -
    -
    -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/reference_existing_object.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -#include <utility>
    -
    -// classes to wrap
    -struct Singleton
    -{
    -   Singleton() : x(0) {}
    -
    -   int exchange(int n)  // set x and return the old value
    -   {
    -        std::swap(n, x);
    -        return n;
    -   }
    -
    -   int x;
    -};
    -
    -Singleton& get_it()
    -{
    -   static Singleton just_one;
    -   return just_one;
    -}
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(singleton)
    -{
    -    def("get_it", get_it,
    -        return_value_policy<reference_existing_object>());
    -
    -    class_<Singleton>("Singleton")
    -       .def("exchange", &Singleton::exchange)
    -       ;
    -}
    -
    -

    - Python code: -

    -
    >>> import singleton
    ->>> s1 = singleton.get_it()
    ->>> s2 = singleton.get_it()
    ->>> id(s1) == id(s2)  # s1 and s2 are not the same object
    -0
    ->>> s1.exchange(42)   # but they reference the same C++ Singleton
    -0
    ->>> s2.exchange(99)
    -42
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_/class_reference_existing_object_.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_/class_reference_existing_object_.html deleted file mode 100644 index 4c60de56..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_/class_reference_existing_object_.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class reference_existing_object metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U& - or U* - for some U. -

    -
    Returns
    -

    - typedef to_python_indirect<T, V> type;, where V is a class whose static - execute function constructs an instance holder containing an unowned - U* - pointing to the referent of the wrapped function's return value. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_/example.html deleted file mode 100644 index ac386948..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_reference_existing_/example.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/reference_existing_object.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -#include <utility>
    -
    -// classes to wrap
    -struct Singleton
    -{
    -   Singleton() : x(0) {}
    -
    -   int exchange(int n)  // set x and return the old value
    -   {
    -        std::swap(n, x);
    -        return n;
    -   }
    -
    -   int x;
    -};
    -
    -Singleton& get_it()
    -{
    -   static Singleton just_one;
    -   return just_one;
    -}
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(singleton)
    -{
    -    def("get_it", get_it,
    -        return_value_policy<reference_existing_object>());
    -
    -    class_<Singleton>("Singleton")
    -       .def("exchange", &Singleton::exchange)
    -       ;
    -}
    -
    -

    - Python code: -

    -
    >>> import singleton
    ->>> s1 = singleton.get_it()
    ->>> s2 = singleton.get_it()
    ->>> id(s1) == id(s2)  # s1 and s2 are not the same object
    -0
    ->>> s1.exchange(42)   # but they reference the same C++ Singleton
    -0
    ->>> s2.exchange(99)
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp.html deleted file mode 100644 index b8c969cc..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -boost/python/return_by_value.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - return_by_value is a - model of ResultConverterGenerator - which can be used to wrap C++ functions returning any reference or value - type such that the return value is copied into a new Python object. -

    -
    namespace boost { namespace python
    -{
    -    struct return_by_value
    -    {
    -        template <class T> struct apply;
    -    };
    -}}
    -
    -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Returns
    -

    - typedef to_python_value<T> type; -

    -
    -
    -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_by_value.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { };
    -
    -Bar global_bar;
    -
    -// functions to wrap:
    -Bar b1();
    -Bar& b2();
    -Bar const& b3();
    -
    -// Wrapper code
    -using namespace boost::python;
    -template <class R>
    -void def_void_function(char const* name, R (*f)())
    -{
    -   def(name, f, return_value_policy<return_by_value>());
    -}
    -
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    class_<Bar>("Bar");
    -    def_void_function("b1", b1);
    -    def_void_function("b2", b2);
    -    def_void_function("b3", b3);
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> b = b1() # each of these calls
    ->>> b = b2() # creates a brand
    ->>> b = b3() # new Bar object
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp/class_return_by_value_metafuncti.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp/class_return_by_value_metafuncti.html deleted file mode 100644 index c1765443..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp/class_return_by_value_metafuncti.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Class return_by_value metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Returns
    -

    - typedef to_python_value<T> type; -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp/example.html deleted file mode 100644 index 3695d500..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_by_value_hpp/example.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_by_value.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { };
    -
    -Bar global_bar;
    -
    -// functions to wrap:
    -Bar b1();
    -Bar& b2();
    -Bar const& b3();
    -
    -// Wrapper code
    -using namespace boost::python;
    -template <class R>
    -void def_void_function(char const* name, R (*f)())
    -{
    -   def(name, f, return_value_policy<return_by_value>());
    -}
    -
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    class_<Bar>("Bar");
    -    def_void_function("b1", b1);
    -    def_void_function("b2", b2);
    -    def_void_function("b3", b3);
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> b = b1() # each of these calls
    ->>> b = b2() # creates a brand
    ->>> b = b3() # new Bar object
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point.html deleted file mode 100644 index 2021e4ff..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point.html +++ /dev/null @@ -1,170 +0,0 @@ - - - -boost/python/return_opaque_pointer.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - return_opaque_pointer is a model of ResultConverterGenerator - which can be used to wrap C++ functions returning pointers to undefined - types such that the return value is copied into a new Python object. -

    -

    - In addition to specifying the return_opaque_pointer - policy the BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID - macro must be used to define specializations for the type_id function on the type - pointed to by returned pointer. -

    -
    namespace boost { namespace python
    -{
    -    struct return_opaque_pointer
    -    {
    -        template <class R> struct apply;
    -    };
    -}}
    -
    -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Returns
    -

    - detail::opaque_conversion_holder<R> - type; -

    -
    -
    -
    -
    - -

    - In C++: -

    -
    # include <boost/python/return_opaque_pointer.hpp>
    -# include <boost/python/def.hpp>
    -# include <boost/python/module.hpp>
    -# include <boost/python/return_value_policy.hpp>
    -
    -typedef struct opaque_ *opaque;
    -
    -opaque the_op   = ((opaque) 0x47110815);
    -
    -opaque get () { return the_op; }
    -void use (opaque op) {
    -    if (op != the_op)
    -	throw std::runtime_error (std::string ("failed"));
    -}
    -
    -void failuse (opaque op) {
    -    if (op == the_op)
    -	throw std::runtime_error (std::string ("success"));
    -}
    -
    -BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(opaque_)
    -
    -namespace bpl = boost::python;
    -
    -BOOST_PYTHON_MODULE(opaque_ext)
    -{
    -    bpl::def (
    -        "get", &::get, bpl::return_value_policy<bpl::return_opaque_pointer>());
    -    bpl::def ("use", &::use);
    -    bpl::def ("failuse", &::failuse);
    -}
    -
    -

    - Python code: -

    -
    """
    ->>> from opaque_ext import *
    ->>> #
    ->>> # Check for correct conversion
    ->>> use(get())
    ->>> failuse(get())
    -Traceback (most recent call last):
    -        ...
    -RuntimeError: success
    ->>> #
    ->>> # Check that there is no conversion from integers ...
    ->>> use(0)
    -Traceback (most recent call last):
    -        ...
    -TypeError: bad argument type for built-in operation
    ->>> #
    ->>> # ... and from strings to opaque objects
    ->>> use("")
    -Traceback (most recent call last):
    -        ...
    -TypeError: bad argument type for built-in operation
    -"""
    -def run(args = None):
    -    import sys
    -    import doctest
    -
    -    if args is not None:
    -        sys.argv = args
    -    return doctest.testmod(sys.modules.get(__name__))
    -
    -if __name__ == '__main__':
    -    print "running..."
    -    import sys
    -    sys.exit(run()[0])
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point/class_return_opaque_pointer_meta.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point/class_return_opaque_pointer_meta.html deleted file mode 100644 index 2e4991d4..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point/class_return_opaque_pointer_meta.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Class return_opaque_pointer metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Returns
    -

    - detail::opaque_conversion_holder<R> - type; -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point/example.html deleted file mode 100644 index 822afba2..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/boost_python_return_opaque_point/example.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    # include <boost/python/return_opaque_pointer.hpp>
    -# include <boost/python/def.hpp>
    -# include <boost/python/module.hpp>
    -# include <boost/python/return_value_policy.hpp>
    -
    -typedef struct opaque_ *opaque;
    -
    -opaque the_op   = ((opaque) 0x47110815);
    -
    -opaque get () { return the_op; }
    -void use (opaque op) {
    -    if (op != the_op)
    -	throw std::runtime_error (std::string ("failed"));
    -}
    -
    -void failuse (opaque op) {
    -    if (op == the_op)
    -	throw std::runtime_error (std::string ("success"));
    -}
    -
    -BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(opaque_)
    -
    -namespace bpl = boost::python;
    -
    -BOOST_PYTHON_MODULE(opaque_ext)
    -{
    -    bpl::def (
    -        "get", &::get, bpl::return_value_policy<bpl::return_opaque_pointer>());
    -    bpl::def ("use", &::use);
    -    bpl::def ("failuse", &::failuse);
    -}
    -
    -

    - Python code: -

    -
    """
    ->>> from opaque_ext import *
    ->>> #
    ->>> # Check for correct conversion
    ->>> use(get())
    ->>> failuse(get())
    -Traceback (most recent call last):
    -        ...
    -RuntimeError: success
    ->>> #
    ->>> # Check that there is no conversion from integers ...
    ->>> use(0)
    -Traceback (most recent call last):
    -        ...
    -TypeError: bad argument type for built-in operation
    ->>> #
    ->>> # ... and from strings to opaque objects
    ->>> use("")
    -Traceback (most recent call last):
    -        ...
    -TypeError: bad argument type for built-in operation
    -"""
    -def run(args = None):
    -    import sys
    -    import doctest
    -
    -    if args is not None:
    -        sys.argv = args
    -    return doctest.testmod(sys.modules.get(__name__))
    -
    -if __name__ == '__main__':
    -    print "running..."
    -    import sys
    -    sys.exit(run()[0])
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp.html deleted file mode 100644 index 6811e2f4..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -copy_non_const_reference.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - copy_non_const_reference is a model of ResultConverterGenerator which - can be used to wrap C++ functions returning a reference-to-non-const - type such that the referenced value is copied into a new Python object. -

    -
    namespace boost { namespace python
    -{
    -    struct copy_non_const_reference
    -    {
    -        template <class T> struct apply;
    -    };
    -}}
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp/class_copy_non_const_reference_m.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp/class_copy_non_const_reference_m.html deleted file mode 100644 index fd21167f..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp/class_copy_non_const_reference_m.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class copy_non_const_reference metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U & - for some non-const U. -

    -
    Returns
    -

    - typedef to_python_value<T> type; -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp/example.html deleted file mode 100644 index ab4a3705..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/copy_non_const_reference_hpp/example.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/copy_non_const_reference.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { int x; }
    -
    -struct Foo {
    -   Foo(int x) : { b.x = x; }
    -   Bar& get_bar() { return b; }
    - private:
    -   Bar b;
    -};
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    class_<Bar>("Bar");
    -
    -     class_<Foo>("Foo", init<int>())
    -        .def("get_bar", &Foo::get_bar
    -            , return_value_policy<copy_non_const_reference>())
    -       ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = Foo(3)         # create a Foo object
    ->>> b = f.get_bar()    # make a copy of the internal Bar object
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp.html deleted file mode 100644 index 9dc686a9..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -manage_new_object.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - manage_new_object is a model of ResultConverterGenerator which can be - used to wrap C++ functions which return a pointer to an object allocated - with a new-expression, and expect the caller to take responsibility for - deleting that object. -

    -
    namespace boost { namespace python
    -{
    -    struct manage_new_object
    -    {
    -        template <class T> struct apply;
    -    };
    -}}
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp/class_manage_new_object_metafunc.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp/class_manage_new_object_metafunc.html deleted file mode 100644 index 8616930c..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp/class_manage_new_object_metafunc.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class manage_new_object metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U* - for some U. -

    -
    Returns
    -

    - typedef to_python_indirect<T> type; -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp/example.html deleted file mode 100644 index ad5e4140..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/manage_new_object_hpp/example.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/manage_new_object.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -
    -struct Foo {
    -   Foo(int x) : x(x){}
    -   int get_x() { return x; }
    -   int x;
    -};
    -
    -Foo* make_foo(int x) { return new Foo(x); }
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    def("make_foo", make_foo, return_value_policy<manage_new_object>())
    -    class_<Foo>("Foo")
    -        .def("get_x", &Foo::get_x)
    -        ;
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> f = make_foo(3)     # create a Foo object
    ->>> f.get_x()
    -3
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp.html deleted file mode 100644 index 3240ee2c..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -reference_existing_object.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - reference_existing_object is a model of ResultConverterGenerator which - can be used to wrap C++ functions which return a reference or pointer - to a C++ object. When the wrapped function is called, the value referenced - by its return value is not copied. A new Python object is created which - contains a pointer to the referent, and no attempt is made to ensure - that the lifetime of the referent is at least as long as that of the - corresponding Python object. Thus, it can be highly dangerous to use - reference_existing_object without additional lifetime management from - such models of CallPolicies as with_custodian_and_ward. This class is - used in the implementation of return_internal_reference. -

    -
    namespace boost { namespace python
    -{
    -    struct reference_existing_object
    -    {
    -        template <class T> struct apply;
    -    };
    -}}
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp/class_reference_existing_object_.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp/class_reference_existing_object_.html deleted file mode 100644 index e5cec196..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp/class_reference_existing_object_.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class reference_existing_object metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Requires
    -

    - T is U& - or U* - for some U. -

    -
    Returns
    -

    - typedef to_python_indirect<T, V> type;, where V is a class whose static - execute function constructs an instance holder containing an unowned - U* pointing to the referent of the wrapped function's return value. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp/example.html deleted file mode 100644 index 7ab4fe17..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/reference_existing_object_hpp/example.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/reference_existing_object.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -#include <utility>
    -
    -// classes to wrap
    -struct Singleton
    -{
    -   Singleton() : x(0) {}
    -
    -   int exchange(int n)  // set x and return the old value
    -   {
    -        std::swap(n, x);
    -        return n;
    -   }
    -
    -   int x;
    -};
    -
    -Singleton& get_it()
    -{
    -   static Singleton just_one;
    -   return just_one;
    -}
    -
    -// Wrapper code
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(singleton)
    -{
    -    def("get_it", get_it,
    -        return_value_policy<reference_existing_object>());
    -
    -    class_<Singleton>("Singleton")
    -       .def("exchange", &Singleton::exchange)
    -       ;
    -}
    -
    -

    - Python code: -

    -
    >>> import singleton
    ->>> s1 = singleton.get_it()
    ->>> s2 = singleton.get_it()
    ->>> id(s1) == id(s2)  # s1 and s2 are not the same object
    -0
    ->>> s1.exchange(42)   # but they reference the same C++ Singleton
    -0
    ->>> s2.exchange(99)
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp.html deleted file mode 100644 index 6b02acdc..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -return_by_value.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - return_by_value is a model of ResultConverterGenerator which can be used - to wrap C++ functions returning any reference or value type such that - the return value is copied into a new Python object. -

    -
    namespace boost { namespace python
    -{
    -    struct return_by_value
    -    {
    -        template <class T> struct apply;
    -    };
    -}}
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp/class_return_by_value_metafuncti.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp/class_return_by_value_metafuncti.html deleted file mode 100644 index 76681e51..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp/class_return_by_value_metafuncti.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Class return_by_value metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Returns
    -

    - typedef to_python_value<T> type; -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp/example.html deleted file mode 100644 index be3b8059..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_by_value_hpp/example.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/return_by_value.hpp>
    -#include <boost/python/return_value_policy.hpp>
    -
    -// classes to wrap
    -struct Bar { };
    -
    -Bar global_bar;
    -
    -// functions to wrap:
    -Bar b1();
    -Bar& b2();
    -Bar const& b3();
    -
    -// Wrapper code
    -using namespace boost::python;
    -template <class R>
    -void def_void_function(char const* name, R (*f)())
    -{
    -   def(name, f, return_value_policy<return_by_value>());
    -}
    -
    -BOOST_PYTHON_MODULE(my_module)
    -{
    -    class_<Bar>("Bar");
    -    def_void_function("b1", b1);
    -    def_void_function("b2", b2);
    -    def_void_function("b3", b3);
    -}
    -
    -

    - Python code: -

    -
    >>> from my_module import *
    ->>> b = b1() # each of these calls
    ->>> b = b2() # creates a brand
    ->>> b = b3() # new Bar object
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp.html deleted file mode 100644 index 2d10535e..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -return_opaque_pointer.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - return_opaque_pointer is a model of ResultConverterGenerator which can - be used to wrap C++ functions returning pointers to undefined types such - that the return value is copied into a new Python object. -

    -

    - In addition to specifying the return_opaque_pointer policy the BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID - macro must be used to define specializations for the type_id function - on the type pointed to by returned pointer. -

    -
    namespace boost { namespace python
    -{
    -    struct return_opaque_pointer
    -    {
    -        template <class R> struct apply;
    -    };
    -}}
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp/class_return_opaque_pointer_meta.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp/class_return_opaque_pointer_meta.html deleted file mode 100644 index e924a708..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp/class_return_opaque_pointer_meta.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Class return_opaque_pointer metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> struct apply
    -
    -

    -
    -
    Returns
    -

    - detail::opaque_conversion_holder<R> - type; -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp/example.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp/example.html deleted file mode 100644 index 4938acc6..00000000 --- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat/return_opaque_pointer_hpp/example.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    # include <boost/python/return_opaque_pointer.hpp>
    -# include <boost/python/def.hpp>
    -# include <boost/python/module.hpp>
    -# include <boost/python/return_value_policy.hpp>
    -
    -typedef struct opaque_ *opaque;
    -
    -opaque the_op   = ((opaque) 0x47110815);
    -
    -opaque get () { return the_op; }
    -void use (opaque op) {
    -    if (op != the_op)
    -	throw std::runtime_error (std::string ("failed"));
    -}
    -
    -void failuse (opaque op) {
    -    if (op == the_op)
    -	throw std::runtime_error (std::string ("success"));
    -}
    -
    -BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(opaque_)
    -
    -namespace bpl = boost::python;
    -
    -BOOST_PYTHON_MODULE(opaque_ext)
    -{
    -    bpl::def (
    -        "get", &::get, bpl::return_value_policy<bpl::return_opaque_pointer>());
    -    bpl::def ("use", &::use);
    -    bpl::def ("failuse", &::failuse);
    -}
    -
    -

    - Python code: -

    -
    """
    ->>> from opaque_ext import *
    ->>> #
    ->>> # Check for correct conversion
    ->>> use(get())
    ->>> failuse(get())
    -Traceback (most recent call last):
    -        ...
    -RuntimeError: success
    ->>> #
    ->>> # Check that there is no conversion from integers ...
    ->>> use(0)
    -Traceback (most recent call last):
    -        ...
    -TypeError: bad argument type for built-in operation
    ->>> #
    ->>> # ... and from strings to opaque objects
    ->>> use("")
    -Traceback (most recent call last):
    -        ...
    -TypeError: bad argument type for built-in operation
    -"""
    -def run(args = None):
    -    import sys
    -    import doctest
    -
    -    if args is not None:
    -        sys.argv = args
    -    return doctest.testmod(sys.modules.get(__name__))
    -
    -if __name__ == '__main__':
    -    print "running..."
    -    import sys
    -    sys.exit(run()[0])
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/overloads_hpp.html b/doc/html/reference/function_invocation_and_creation/overloads_hpp.html deleted file mode 100644 index 25205718..00000000 --- a/doc/html/reference/function_invocation_and_creation/overloads_hpp.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -overloads.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - - -

    - Defines facilities for generating families of overloaded Python functions - and extension class methods from C++ functions and member functions with - default arguments, or from similar families of C++ overloads -

    -
    - -

    - An overload-dispatch-expression is used to describe a family of overloaded - methods to be generated for an extension class. It has the following - properties: -

    -
    -

    -
    -
    docstring
    -

    - An ntbs whose value will bound to the methods' __doc__ attribute -

    -
    keywords
    -

    - A keyword-expression which will be used to name (a trailing subsequence - of) the arguments to the generated methods. -

    -
    call policies
    -

    - An instance of some type which models CallPolicies. -

    -
    minimum arity
    -

    - The minimum number of arguments to be accepted by a generated method - overload. -

    -
    maximum arity
    -

    - The maximum number of arguments to be accepted by a generated method - overload. -

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/overloads_hpp/example.html b/doc/html/reference/function_invocation_and_creation/overloads_hpp/example.html deleted file mode 100644 index 56001d8f..00000000 --- a/doc/html/reference/function_invocation_and_creation/overloads_hpp/example.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/args.hpp>
    -#include <boost/python/tuple.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/overloads.hpp>
    -#include <boost/python/return_internal_reference.hpp>
    -
    -using namespace boost::python;
    -
    -tuple f(int x = 1, double y = 4.25, char const* z = "wow")
    -{
    -    return make_tuple(x, y, z);
    -}
    -
    -BOOST_PYTHON_FUNCTION_OVERLOADS(f_overloads, f, 0, 3)
    -
    -struct Y {};
    -struct X
    -{
    -    Y& f(int x, double y = 4.25, char const* z = "wow")
    -    {
    -        return inner;
    -    }
    -    Y inner;
    -};
    -
    -BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_member_overloads, f, 1, 3)
    -
    -BOOST_PYTHON_MODULE(args_ext)
    -{
    -    def("f", f,
    -        f_overloads(
    -            args("x", "y", "z"), "This is f's docstring"
    -        ));
    -
    -
    -    class_<Y>("Y")
    -        ;
    -
    -    class_<X>("X", "This is X's docstring")
    -        .def("f1", &X::f,
    -                f_member_overloads(
    -                    args("x", "y", "z"), "f's docstring"
    -                )[return_internal_reference<>()]
    -        )
    -        ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/overloads_hpp/macros.html b/doc/html/reference/function_invocation_and_creation/overloads_hpp/macros.html deleted file mode 100644 index 63c670dc..00000000 --- a/doc/html/reference/function_invocation_and_creation/overloads_hpp/macros.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Macros - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Macros -

    -
    BOOST_PYTHON_FUNCTION_OVERLOADS(name, func_id, min_args, max_args)
    -
    -

    - Expands to the definition of an OverloadDispatcher called name in the current - scope which can be used to generate the following function invocation: -

    -
    func_id(a1, a2,...ai);
    -

    - for all min_args <= - i <= - max_args. -

    -
    BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(name, member_name, min_args, max_args)
    -
    -

    - Expands to the definition of an OverloadDispatcher called name in the current - scope which can be used to generate the following function invocation: -

    -
    x.member_name(a1, a2,...ai);
    -

    - for all min_args <= i <= max_args, where x is a reference to an object - of class type. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/overloads_hpp/overloaddispatcher_concept.html b/doc/html/reference/function_invocation_and_creation/overloads_hpp/overloaddispatcher_concept.html deleted file mode 100644 index ac462582..00000000 --- a/doc/html/reference/function_invocation_and_creation/overloads_hpp/overloaddispatcher_concept.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -OverloadDispatcher Concept - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - An OverloadDispatcher X is a class which has a minimum arity and a maximum - arity, and for which the following following are valid overload-dispatch-expressions, - with the same minimum and maximum arity as the OverloadDispatcher. -

    -
    X()
    -X(docstring)
    -X(docstring, keywords)
    -X(keywords, docstring)
    -X()[policies]
    -X(docstring)[policies]
    -X(docstring, keywords)[policies]
    -X(keywords, docstring)[policies]
    -
    -

    - * If policies are supplied, it must be an instance of a type which models - CallPolicies, and will be used as the result's call policies. Otherwise - the result's call policies will be an instance of default_call_policies. - * If docstring is supplied it must be an ntbs, and will be used as the - result's docstring. Otherwise the result has an empty docstring. * If keywords - is supplied it must be the result of a keyword-expression whose length - is no greater than X's maximum arity, and will be used as the result's - keywords. Otherwise the result's keywords will be empty. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp.html deleted file mode 100644 index 467b46e9..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -ptr.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/ptr.hpp> defines the ptr() function template, which - allows users to specify how to convert C++ pointer values to python in - the context of implementing overridable virtual functions, invoking Python - callable objects, or explicitly converting C++ objects to Python. Normally, - when passing pointers to Python callbacks, the pointee is copied to ensure - that the Python object never holds a dangling reference. To specify that - the new Python object should merely contain a copy of a pointer p, the - user can pass ptr(p) instead of passing p directly. This interface is meant - to mirror the use of boost::ref(), which can be similarly used to prevent - copying of referents. -

    -

    - ptr(p) returns an instance of pointer_wrapper<>, which can be detected - using the is_pointer_wrapper<> metafunction; unwrap_pointer<> - is a metafunction which extracts the original pointer type from a pointer_wrapper<>. - These classes can be thought of as implementation details. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper.html deleted file mode 100644 index 637d031f..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Class template pointer_wrapper - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A "type envelope" which is returned by ptr(), used to indicate - reference semantics for pointers passed to Python callbacks. -

    -
    namespace boost { namespace python
    -{
    -    template<class Ptr> class pointer_wrapper
    -    {
    -     public:
    -        typedef Ptr type;
    -
    -        explicit pointer_wrapper(Ptr x);
    -        operator Ptr() const;
    -        Ptr get() const;
    -    };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_c.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_c.html deleted file mode 100644 index d0fc9c9f..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_c.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class template pointer_wrapper constructors and destructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    explicit pointer_wrapper(Ptr x);
    -
    -
    -

    -
    -
    Requires
    -

    - Ptr is a pointer type -

    -
    Effects
    -

    - Stores x in a the pointer_wrapper<>. -

    -
    Throws
    -

    - nothing. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_o.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_o.html deleted file mode 100644 index 555dbef2..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_o.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class template pointer_wrapper observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    operator Ptr() const;
    -Ptr get() const;
    -
    -
    -

    -
    -
    Returns
    -

    - a copy of the stored pointer. -

    -
    Rationale
    -

    - pointer_wrapper is intended to be a stand-in for the actual pointer - type, but sometimes it's better to have an explicit way to retrieve - the pointer. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_t.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_t.html deleted file mode 100644 index a7079791..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp/class_template_pointer_wrapper_t.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Class template pointer_wrapper types - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    typedef Ptr type;
    -
    -

    - The type of the pointer being wrapped. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp/example.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp/example.html deleted file mode 100644 index 7bb964f4..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp/example.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This example illustrates the use of ptr() to prevent an object from being - copied: -

    -
    #include <boost/python/call.hpp>
    -#include <boost/python/ptr.hpp>
    -
    -class expensive_to_copy
    -{
    -   ...
    -};
    -
    -void pass_as_arg(expensive_to_copy* x, PyObject* f)
    -{
    -   // call the Python function f, passing a Python object built around
    -   // which refers to *x by-pointer.
    -   //
    -   // *** Note: ensuring that *x outlives the argument to f() is    ***
    -   // *** up to the user! Failure to do so could result in a crash! ***
    -
    -   boost::python::call<void>(f, ptr(x));
    -}
    -...
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp/functions.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp/functions.html deleted file mode 100644 index ad3504d8..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp/functions.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -pointer_wrapper<T> ptr(T x);
    -
    -
    -

    -
    -
    Requires
    -

    - T is a pointer type. -

    -
    Returns
    -

    - pointer_wrapper<T>(x) -

    -
    Throws
    -

    - nothing. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp/metafunctions.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp/metafunctions.html deleted file mode 100644 index 4f5e1b85..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp/metafunctions.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Metafunctions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - A unary metafunction whose value is true iff its argument is a pointer_wrapper<>. -

    -
    namespace boost { namespace python
    -{
    -    template<class T> class is_pointer_wrapper
    -    {
    -        static unspecified value = ...;
    -    };
    -}}
    -
    -
    -

    -
    -
    Returns
    -

    - true iff T is a specialization of pointer_wrapper<>. value - is an integral constant convertible to bool of unspecified type -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/ptr_hpp/metafunctions/class_template_unwrap_pointer.html b/doc/html/reference/function_invocation_and_creation/ptr_hpp/metafunctions/class_template_unwrap_pointer.html deleted file mode 100644 index 35cb4141..00000000 --- a/doc/html/reference/function_invocation_and_creation/ptr_hpp/metafunctions/class_template_unwrap_pointer.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Class template unwrap_pointer - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A unary metafunction which extracts the wrapped pointer type from a specialization - of pointer_wrapper<>. -

    -
    namespace boost { namespace python
    -{
    -    template<class T> class unwrap_pointer
    -    {
    -        typedef unspecified type;
    -    };
    -}}
    -
    -
    -

    -
    -
    Returns
    -

    - T::type if T is a specialization of pointer_wrapper<>, T - otherwise -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/raw_function_hpp.html b/doc/html/reference/function_invocation_and_creation/raw_function_hpp.html deleted file mode 100644 index c55a5a99..00000000 --- a/doc/html/reference/function_invocation_and_creation/raw_function_hpp.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -raw_function.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - raw_function(...) is used to convert a function taking a tuple and a dict - into a Python callable object which accepts a variable number of arguments - and arbitrary keyword arguments. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/raw_function_hpp/example.html b/doc/html/reference/function_invocation_and_creation/raw_function_hpp/example.html deleted file mode 100644 index a885062a..00000000 --- a/doc/html/reference/function_invocation_and_creation/raw_function_hpp/example.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++: -

    -
    #include <boost/python/def.hpp>
    -#include <boost/python/tuple.hpp>
    -#include <boost/python/dict.hpp>
    -#include <boost/python/module.hpp>
    -#include <boost/python/raw_function.hpp>
    -
    -using namespace boost::python;
    -
    -tuple raw(tuple args, dict kw)
    -{
    -    return make_tuple(args, kw);
    -}
    -
    -BOOST_PYTHON_MODULE(raw_test)
    -{
    -    def("raw", raw_function(raw));
    -}
    -
    -

    - Python: -

    -
    >>> from raw_test import *
    -
    ->>> raw(3, 4, foo = 'bar', baz = 42)
    -((3, 4), {'foo': 'bar', 'baz': 42})
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/function_invocation_and_creation/raw_function_hpp/function_raw_function.html b/doc/html/reference/function_invocation_and_creation/raw_function_hpp/function_raw_function.html deleted file mode 100644 index f6e33193..00000000 --- a/doc/html/reference/function_invocation_and_creation/raw_function_hpp/function_raw_function.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Function raw_function - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class F>
    -object raw_function(F f, std::size_t min_args = 0);
    -
    -
    -

    -
    -
    Requires
    -

    - f(tuple(), dict()) is well-formed. -

    -
    Returns
    -

    - a callable object which requires at least min_args arguments. When - called, the actual non-keyword arguments will be passed in a tuple - as the first argument to f, and the keyword arguments will be passed - in a dict as the second argument to f. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/glossary.html b/doc/html/reference/glossary.html index d58a7967..5ee64879 100644 --- a/doc/html/reference/glossary.html +++ b/doc/html/reference/glossary.html @@ -3,13 +3,13 @@ Chapter 9. Glossary - + -
    +

    PrevUpHome diff --git a/doc/html/reference/high_level_components.html b/doc/html/reference/high_level_components.html index f73397b3..e0b78b2e 100644 --- a/doc/html/reference/high_level_components.html +++ b/doc/html/reference/high_level_components.html @@ -3,14 +3,14 @@ Chapter 2. High Level Components - + -
    +

    PrevUpHomeNext @@ -516,23 +516,16 @@ attribute of the current scope is bound to the new extension class.

    -
      -
    • - If supplied, the value of docstring is bound to the __doc__ attribute of the - extension class. -
    • -
    • - If init_spec - is no_init, - a special __init__ - function is generated which always raises a Python exception. - Otherwise, this->def(init_spec) is called. -
    • -
    • - If init_spec - is not supplied, this->def(init<>()) is called. -
    • -
    +

    + * If supplied, the value of docstring is bound to the __doc__ attribute of the extension + class. * If init_spec + is no_init, a special + __init__ function + is generated which always raises a Python exception. Otherwise, + this->def(init_spec) + is called. * If init_spec + is not supplied, this->def(init<>()) is called. +

    Rationale

    @@ -628,29 +621,21 @@ but the first N - M arguments of each overload.

    -
    • - Otherwise, a single method overload is built around fn, which - must not be null: -
        -
      • - If fn is a function pointer, its first argument must - be of the form U, U cv&, U cv*, or U cv* const&, - where T* is convertible to U*, and a1-a3, if supplied, - may be selected in any order from the table below. -
      • -
      • - Otherwise, if fn is a member function pointer, its target - must be T or one of its public base classes, and a1-a3, - if supplied, may be selected in any order from the table - below. -
      • -
      • -

        - Otherwise, Fn must be [derived from] object, - and a1-a2, if supplied, may be selcted in any order from - the first two rows of the table below. To be useful, - fn should be callable. -

        +

        + * Otherwise, a single method overload is built around fn, which + must not be null: +

        +

        + * If fn is a function pointer, its first argument must be of the + form U, U cv&, U cv*, or U cv* const&, where T* is convertible + to U*, and a1-a3, if supplied, may be selected in any order from + the table below. * Otherwise, if fn is a member function pointer, + its target must be T or one of its public base classes, and a1-a3, + if supplied, may be selected in any order from the table below. + * Otherwise, Fn must be [derived from] object, + and a1-a2, if supplied, may be selcted in any order from the first + two rows of the table below. To be useful, fn should be callable. +

        @@ -659,85 +644,82 @@ +

        + Mnemonic Name +

        + +

        + Requirements/Type properties +

        + +

        + Effects +

        + +

        + docstring +

        + +

        + Any ntbs +

        + +

        + Value will be bound to the __doc__ attribute of the resulting + method overload. If an earlier overload supplied a docstring, + two newline characters and the new docstring are appended + to it. +

        + +

        + policies +

        + +

        + A model of CallPolicies +

        + +

        + A copy will be used as the call policies of the resulting + method overload. +

        + +

        + keywords +

        + +

        + The result of a keyword-expression + specifying no more arguments than the arity + of fn. +

        + +

        + A copy will be used as the call policies of the resulting + method overload. +

        +
        -

        - Mnemonic Name -

        -
        -

        - Requirements/Type properties -

        -
        -

        - Effects -

        -
        -

        - docstring -

        -
        -

        - Any ntbs -

        -
        -

        - Value will be bound to the __doc__ attribute - of the resulting method overload. If an earlier - overload supplied a docstring, two newline - characters and the new docstring are appended - to it. -

        -
        -

        - policies -

        -
        -

        - A model of CallPolicies -

        -
        -

        - A copy will be used as the call policies of - the resulting method overload. -

        -
        -

        - keywords -

        -
        -

        - The result of a keyword-expression - specifying no more arguments than the arity of fn. -

        -
        -

        - A copy will be used as the call policies of - the resulting method overload. -

        -
        -
      • -
      -
    Returns

    diff --git a/doc/html/reference/high_level_components/boost_python_def_hpp.html b/doc/html/reference/high_level_components/boost_python_def_hpp.html index ce99e9ad..9da71d6c 100644 --- a/doc/html/reference/high_level_components/boost_python_def_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_def_hpp.html @@ -3,14 +3,14 @@ boost/python/def.hpp - + -
    +


    PrevUpHomeNext @@ -61,42 +61,36 @@ identifier naming rules.

    -
      -
    • - If Fn is [derived - from] object, - it will be added to the current - scope as a single overload. To be useful, fn should be callable. -
    • -
    • -

      - If a1 is the - result of an overload-dispatch-expression, - only the second form is allowed and fn - must be a pointer to function or pointer to member function whose - arity is the same as A1's maximum - arity. -

      -

      - Effects: For each prefix P of Fn's - sequence of argument types, beginning with the one whose length - is A1's minimum - arity, adds a name(...) function overload to the - current - scope. Each overload generated invokes a1's call-expression - with P, using a copy of a1's call policies. If the longest valid - prefix of A1 contains N types and a1 holds M keywords, an initial - sequence of the keywords are used for all but the first N - M - arguments of each overload. -

      -
    • -
    • -

      - Otherwise, fn must be a non-null function or member function - pointer, and a single function overload built around fn is added - to the current scope. If any of a1-a3 are supplied, they may - be selected in any order from the table below. -

      +

      + * If Fn is [derived + from] object, + it will be added to the current + scope as a single overload. To be useful, fn + should be callable. + * If a1 is the result + of an overload-dispatch-expression, + only the second form is allowed and fn + must be a pointer to function or pointer to member function whose + arity is the same as A1's maximum + arity. +

      +

      + Effects: For each prefix P of Fn's + sequence of argument types, beginning with the one whose length is + A1's minimum + arity, adds a name(...) function overload to the current + scope. Each overload generated invokes a1's call-expression + with P, using a copy of a1's call policies. If the longest valid + prefix of A1 contains N types and a1 holds M keywords, an initial + sequence of the keywords are used for all but the first N - M arguments + of each overload. +

      +

      + * Otherwise, fn must be a non-null function or member function pointer, + and a single function overload built around fn is added to the current + scope. If any of a1-a3 are supplied, they may be selected in any + order from the table below. +

      @@ -105,82 +99,80 @@ +

      + Mnemonic Name +

      + +

      + Requirements/Type properties +

      + +

      + Effects +

      + +

      + docstring +

      + +

      + Any ntbs +

      + +

      + Value will be bound to the __doc__ + attribute of the resulting method overload. +

      + +

      + policies +

      + +

      + A model of CallPolicies +

      + +

      + A copy will be used as the call policies of the resulting + method overload. +

      + +

      + keywords +

      + +

      + The result of a keyword-expression + specifying no more arguments than the arity + of fn. +

      + +

      + A copy will be used as the call policies of the resulting + method overload. +

      +
      -

      - Mnemonic Name -

      -
      -

      - Requirements/Type properties -

      -
      -

      - Effects -

      -
      -

      - docstring -

      -
      -

      - Any ntbs -

      -
      -

      - Value will be bound to the __doc__ - attribute of the resulting method overload. -

      -
      -

      - policies -

      -
      -

      - A model of CallPolicies -

      -
      -

      - A copy will be used as the call policies of the resulting - method overload. -

      -
      -

      - keywords -

      -
      -

      - The result of a keyword-expression - specifying no more arguments than the arity - of fn. -

      -
      -

      - A copy will be used as the call policies of the resulting - method overload. -

      -
      -
    • -
    diff --git a/doc/html/reference/high_level_components/boost_python_def_hpp/example.html b/doc/html/reference/high_level_components/boost_python_def_hpp/example.html deleted file mode 100644 index dd803a75..00000000 --- a/doc/html/reference/high_level_components/boost_python_def_hpp/example.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/def.hpp>
    -#include <boost/python/module.hpp>
    -#include <boost/python/args.hpp>
    -
    -using namespace boost::python;
    -
    -char const* foo(int x, int y) { return "foo"; }
    -
    -BOOST_PYTHON_MODULE(def_test)
    -{
    -    def("foo", foo, args("x", "y"), "foo's docstring");
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_def_hpp/functions.html b/doc/html/reference/high_level_components/boost_python_def_hpp/functions.html deleted file mode 100644 index dfa5a9b1..00000000 --- a/doc/html/reference/high_level_components/boost_python_def_hpp/functions.html +++ /dev/null @@ -1,188 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class F>
    -void def(char const* name, F f);
    -
    -template <class Fn, class A1>
    -void def(char const* name, Fn fn, A1 const&);
    -
    -template <class Fn, class A1, class A2>
    -void def(char const* name, Fn fn, A1 const&, A2 const&);
    -
    -template <class Fn, class A1, class A2, class A3>
    -void def(char const* name, Fn fn, A1 const&, A2 const&, A3 const&);
    -
    -
    -

    -
    -
    Requires
    -
    -

    - name is an ntbs which conforms to Python's - identifier - naming rules. -

    -
      -
    • - If Fn is [derived - from] object, - it will be added to the current - scope as a single overload. To be useful, fn should be callable. -
    • -
    • -

      - If a1 is the - result of an overload-dispatch-expression, - only the second form is allowed and fn - must be a pointer to function or pointer to member function whose - arity is the same as A1's maximum - arity. -

      -

      - Effects: For each prefix P of Fn's - sequence of argument types, beginning with the one whose length - is A1's minimum - arity, adds a name(...) function overload to the - current - scope. Each overload generated invokes a1's call-expression - with P, using a copy of a1's call policies. If the longest valid - prefix of A1 contains N types and a1 holds M keywords, an initial - sequence of the keywords are used for all but the first N - M - arguments of each overload. -

      -
    • -
    • -

      - Otherwise, fn must be a non-null function or member function - pointer, and a single function overload built around fn is added - to the current scope. If any of a1-a3 are supplied, they may - be selected in any order from the table below. -

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

      - Mnemonic Name -

      -
      -

      - Requirements/Type properties -

      -
      -

      - Effects -

      -
      -

      - docstring -

      -
      -

      - Any ntbs -

      -
      -

      - Value will be bound to the __doc__ - attribute of the resulting method overload. -

      -
      -

      - policies -

      -
      -

      - A model of CallPolicies -

      -
      -

      - A copy will be used as the call policies of the resulting - method overload. -

      -
      -

      - keywords -

      -
      -

      - The result of a keyword-expression - specifying no more arguments than the arity - of fn. -

      -
      -

      - A copy will be used as the call policies of the resulting - method overload. -

      -
      -
    • -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_def_visitor_hpp.html b/doc/html/reference/high_level_components/boost_python_def_visitor_hpp.html index 1d030d37..641cc73d 100644 --- a/doc/html/reference/high_level_components/boost_python_def_visitor_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_def_visitor_hpp.html @@ -3,14 +3,14 @@ boost/python/def_visitor.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_def_visitor_hpp/class_def_visitor.html b/doc/html/reference/high_level_components/boost_python_def_visitor_hpp/class_def_visitor.html deleted file mode 100644 index eeacb1d3..00000000 --- a/doc/html/reference/high_level_components/boost_python_def_visitor_hpp/class_def_visitor.html +++ /dev/null @@ -1,160 +0,0 @@ - - - -Class def_visitor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The class def_visitor is - a base class paramaterized by its derived class. The def_visitor - class is a protocol class. Its derived class, DerivedVisitor, is expected - to have a member function visit. - The def_visitor class is - never instantiated directly. Instead, an instance of its subclass, DerivedVisitor, - is passed on as an argument to the class_ - def member function. -

    -
    namespace boost { namespace python {
    -
    -    template <class DerivedVisitor>
    -    class def_visitor {};
    -}
    -
    -
    -

    -
    -
    Requires
    -
    -

    - The client supplied class DerivedVisitor template parameter is expected - to: * be privately derived from def_visitor * grant friend access - to class def_visitor_access * define either or both visit member - functions listed in the table below: -

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

    - Expression -

    -
    -

    - Return Type -

    -
    -

    - Requirements -

    -
    -

    - Effects -

    -
    -

    - visitor.visit(cls) -

    -
    -

    - void -

    -
    -

    - cls is - an instance of a class_ - being wrapped to Python. visitor - is a def_visitor - derived class. -

    -
    -

    - A call to cls.def(visitor) forwards to this member - function. -

    -
    -

    - visitor.visit(cls, name, options) -

    -
    -

    - void -

    -
    -

    - cls is - a class_ - instance, name is a C string. visitor - is a def_visitor - derived class. options is a context specific optional argument. -

    -
    -

    - A call to cls.def(name, visitor) or cls.def(name, visitor, options) forwards to this member - function. -

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_def_visitor_hpp/example.html b/doc/html/reference/high_level_components/boost_python_def_visitor_hpp/example.html deleted file mode 100644 index 8dd0c45a..00000000 --- a/doc/html/reference/high_level_components/boost_python_def_visitor_hpp/example.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    class X {/*...*/};
    -
    -class my_def_visitor : boost::python::def_visitor<my_def_visitor>
    -{
    -  friend class def_visitor_access;
    -
    -  template <class classT>
    -  void visit(classT& c) const
    -  {
    -    c.def("foo", &my_def_visitor::foo);
    -    c.def("bar", &my_def_visitor::bar);
    -  }
    -
    -  static void foo(X& self);
    -  static void bar(X& self);
    -};
    -
    -BOOST_PYTHON_MODULE(my_ext)
    -{
    -  class_<X>("X")
    -    .def(my_def_visitor());
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h.html index 2d7f7d7f..40458a05 100644 --- a/doc/html/reference/high_level_components/boost_python_docstring_options_h.html +++ b/doc/html/reference/high_level_components/boost_python_docstring_options_h.html @@ -3,14 +3,14 @@ boost/python/docstring_options.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options.html deleted file mode 100644 index 07ad978f..00000000 --- a/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -Class docstring_options - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Controls the appearance of docstrings of wrapped functions and member functions - for the life-time of the instance. The instances are noncopyable to eliminate - the possibility of surprising side effects. -

    -
    namespace boost { namespace python {
    -
    -  class docstring_options : boost::noncopyable
    -  {
    -  public:
    -    docstring_options(bool show_all=true);
    -    docstring_options(bool show_user_defined, bool show_signatures);
    -    docstring_options(bool show_user_defined, bool show_py_signatures, bool show_cpp_signatures);
    -    ~docstring_options();
    -    void disable_user_defined();
    -    void enable_user_defined();
    -    void disable_signatures();
    -    void enable_signatures();
    -    void disable_py_signatures();
    -    void enable_py_signatures();
    -    void disable_cpp_signatures();
    -    void enable_cpp_signatures();
    -    void disable_all();
    -    void enable_all();
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options_destruct.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options_destruct.html deleted file mode 100644 index 5186438b..00000000 --- a/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options_destruct.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class docstring_options destructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ~docstring_options();
    -
    -

    -
    -
    Effects
    -

    - Restores the previous state of the docstring options. In particular, - if docstring_options - instances are in nested C++ scopes the settings effective in the - enclosing scope are restored. If the last docstring_options - instance goes out of scope the default "all on" settings - are restored. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options_modifier.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options_modifier.html deleted file mode 100644 index 1dd01a4e..00000000 --- a/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_docstring_options_modifier.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class docstring_options modifier functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    void disable_user_defined();
    -void enable_user_defined();
    -void disable_signatures();
    -void enable_signatures();
    -void disable_py_signatures();
    -void enable_py_signatures();
    -void disable_cpp_signatures();
    -void enable_cpp_signatures();
    -void disable_all();
    -void enable_all();
    -
    -

    - These member functions dynamically change the appearance of docstrings - in the code that follows. The *_user_defined() - and *_signatures() member functions are provided for fine-grained - control. The *_all() member functions are convenient shortcuts - to manipulate all settings simultaneously. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_dostring_options_construct.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_dostring_options_construct.html deleted file mode 100644 index 372de6ed..00000000 --- a/doc/html/reference/high_level_components/boost_python_docstring_options_h/class_dostring_options_construct.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -Class dostring_options constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    docstring_options(bool show_all=true);
    -
    -
    -

    -
    -
    Effects
    -

    - Constructs a docstring_options object which controls the appearance - of function and member-function docstrings defined in the code that - follows. If show_all is true, both the user-defined docstrings and - the automatically generated Python and C++ signatures are shown. - If show_all is false the __doc__ - attributes are None. -

    -
    -
    -
    docstring_options(bool show_user_defined, bool show_signatures);
    -
    -
    -

    -
    -
    Effects
    -

    - Constructs a docstring_options - object which controls the appearance of function and member-function - docstrings defined in the code that follows. Iff show_user_defined - is true, the user-defined - docstrings are shown. Iff show_signatures - is true, Python and - C++ signatures are automatically added. If both show_user_defined - and show_signatures - are false, the __doc__ attributes are None. -

    -
    -
    -
    docstring_options(bool show_user_defined, bool show_py_signatures, bool show_cpp_signatures);
    -
    -
    -

    -
    -
    Effects
    -

    - Constructs a docstring_options - object which controls the appearance of function and member-function - docstrings defined in the code that follows. Iff show_user_defined - is true, the user-defined - docstrings are shown. Iff show_py_signatures - is true, Python signatures - are automatically added. Iff show_cpp_signatures - is true, C++ signatures are automatically added. If all parameters - are false, the __doc__ attributes are None. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h/example.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h/example.html deleted file mode 100644 index 027b9606..00000000 --- a/doc/html/reference/high_level_components/boost_python_docstring_options_h/example.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/docstring_options.hpp>
    -
    -void foo() {}
    -
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    using namespace boost::python;
    -    docstring_options doc_options(DEMO_DOCSTRING_SHOW_ALL);
    -    def("foo", foo, "foo doc");
    -}
    -
    -

    - If compiled with -DDEMO_DOCSTRING_SHOW_ALL=true: -

    -
    >>> import demo
    ->>> print demo.foo.__doc__
    -foo() -> None : foo doc
    -C++ signature:
    -    foo(void) -> void
    -
    -

    - If compiled with -DDEMO_DOCSTRING_SHOW_ALL=false: -

    -
    >>> import demo
    ->>> print demo.foo.__doc__
    -None
    -
    -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/args.hpp>
    -#include <boost/python/docstring_options.hpp>
    -
    -int foo1(int i) { return i; }
    -int foo2(long l) { return static_cast<int>(l); }
    -int foo3(float f) { return static_cast<int>(f); }
    -int foo4(double d) { return static_cast<int>(d); }
    -
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    using namespace boost::python;
    -    docstring_options doc_options;
    -    def("foo1", foo1, arg("i"), "foo1 doc");
    -    doc_options.disable_user_defined();
    -    def("foo2", foo2, arg("l"), "foo2 doc");
    -    doc_options.disable_signatures();
    -    def("foo3", foo3, arg("f"), "foo3 doc");
    -    doc_options.enable_user_defined();
    -    def("foo4", foo4, arg("d"), "foo4 doc");
    -    doc_options.enable_py_signatures();
    -    def("foo5", foo4, arg("d"), "foo5 doc");
    -    doc_options.disable_py_signatures();
    -    doc_options.enable_cpp_signatures();
    -    def("foo6", foo4, arg("d"), "foo6 doc");
    -}
    -
    -

    - Python code: -

    -
    >>> import demo
    ->>> print demo.foo1.__doc__
    -foo1( (int)i) -> int : foo1 doc
    -C++ signature:
    -    foo1(int i) -> int
    ->>> print demo.foo2.__doc__
    -foo2( (int)l) -> int :
    -C++ signature:
    -    foo2(long l) -> int
    ->>> print demo.foo3.__doc__
    -None
    ->>> print demo.foo4.__doc__
    -foo4 doc
    ->>> print demo.foo5.__doc__
    -foo5( (float)d) -> int : foo5 doc
    ->>> print demo.foo6.__doc__
    -foo6 doc
    -C++ signature:
    -    foo6(double d) -> int
    -
    -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/args.hpp>
    -#include <boost/python/docstring_options.hpp>
    -
    -int foo1(int i) { return i; }
    -int foo2(long l) { return static_cast<int>(l); }
    -
    -int bar1(int i) { return i; }
    -int bar2(long l) { return static_cast<int>(l); }
    -
    -namespace {
    -
    -    void wrap_foos()
    -    {
    -        using namespace boost::python;
    -        // no docstring_options here
    -        //   -> settings from outer C++ scope are in effect
    -        def("foo1", foo1, arg("i"), "foo1 doc");
    -        def("foo2", foo2, arg("l"), "foo2 doc");
    -    }
    -
    -    void wrap_bars()
    -    {
    -        using namespace boost::python;
    -        bool show_user_defined = true;
    -        bool show_signatures = false;
    -        docstring_options doc_options(show_user_defined, show_signatures);
    -        def("bar1", bar1, arg("i"), "bar1 doc");
    -        def("bar2", bar2, arg("l"), "bar2 doc");
    -    }
    -}
    -
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    boost::python::docstring_options doc_options(false);
    -    wrap_foos();
    -    wrap_bars();
    -}
    -
    -

    - Python code: -

    -
    >>> import demo
    ->>> print demo.foo1.__doc__
    -None
    ->>> print demo.foo2.__doc__
    -None
    ->>> print demo.bar1.__doc__
    -bar1 doc
    ->>> print demo.bar2.__doc__
    -bar2 doc
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h/example/selective_suppressions.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h/example/selective_suppressions.html deleted file mode 100644 index 84a90ed4..00000000 --- a/doc/html/reference/high_level_components/boost_python_docstring_options_h/example/selective_suppressions.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -Selective suppressions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/args.hpp>
    -#include <boost/python/docstring_options.hpp>
    -
    -int foo1(int i) { return i; }
    -int foo2(long l) { return static_cast<int>(l); }
    -int foo3(float f) { return static_cast<int>(f); }
    -int foo4(double d) { return static_cast<int>(d); }
    -
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    using namespace boost::python;
    -    docstring_options doc_options;
    -    def("foo1", foo1, arg("i"), "foo1 doc");
    -    doc_options.disable_user_defined();
    -    def("foo2", foo2, arg("l"), "foo2 doc");
    -    doc_options.disable_signatures();
    -    def("foo3", foo3, arg("f"), "foo3 doc");
    -    doc_options.enable_user_defined();
    -    def("foo4", foo4, arg("d"), "foo4 doc");
    -    doc_options.enable_py_signatures();
    -    def("foo5", foo4, arg("d"), "foo5 doc");
    -    doc_options.disable_py_signatures();
    -    doc_options.enable_cpp_signatures();
    -    def("foo6", foo4, arg("d"), "foo6 doc");
    -}
    -
    -

    - Python code: -

    -
    >>> import demo
    ->>> print demo.foo1.__doc__
    -foo1( (int)i) -> int : foo1 doc
    -C++ signature:
    -    foo1(int i) -> int
    ->>> print demo.foo2.__doc__
    -foo2( (int)l) -> int :
    -C++ signature:
    -    foo2(long l) -> int
    ->>> print demo.foo3.__doc__
    -None
    ->>> print demo.foo4.__doc__
    -foo4 doc
    ->>> print demo.foo5.__doc__
    -foo5( (float)d) -> int : foo5 doc
    ->>> print demo.foo6.__doc__
    -foo6 doc
    -C++ signature:
    -    foo6(double d) -> int
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h/example/wrapping_from_multiple_c_scopes.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h/example/wrapping_from_multiple_c_scopes.html deleted file mode 100644 index bb37217e..00000000 --- a/doc/html/reference/high_level_components/boost_python_docstring_options_h/example/wrapping_from_multiple_c_scopes.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -Wrapping from multiple C++ scopes - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/args.hpp>
    -#include <boost/python/docstring_options.hpp>
    -
    -int foo1(int i) { return i; }
    -int foo2(long l) { return static_cast<int>(l); }
    -
    -int bar1(int i) { return i; }
    -int bar2(long l) { return static_cast<int>(l); }
    -
    -namespace {
    -
    -    void wrap_foos()
    -    {
    -        using namespace boost::python;
    -        // no docstring_options here
    -        //   -> settings from outer C++ scope are in effect
    -        def("foo1", foo1, arg("i"), "foo1 doc");
    -        def("foo2", foo2, arg("l"), "foo2 doc");
    -    }
    -
    -    void wrap_bars()
    -    {
    -        using namespace boost::python;
    -        bool show_user_defined = true;
    -        bool show_signatures = false;
    -        docstring_options doc_options(show_user_defined, show_signatures);
    -        def("bar1", bar1, arg("i"), "bar1 doc");
    -        def("bar2", bar2, arg("l"), "bar2 doc");
    -    }
    -}
    -
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    boost::python::docstring_options doc_options(false);
    -    wrap_foos();
    -    wrap_bars();
    -}
    -
    -

    - Python code: -

    -
    >>> import demo
    ->>> print demo.foo1.__doc__
    -None
    ->>> print demo.foo2.__doc__
    -None
    ->>> print demo.bar1.__doc__
    -bar1 doc
    ->>> print demo.bar2.__doc__
    -bar2 doc
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_enum_hpp.html b/doc/html/reference/high_level_components/boost_python_enum_hpp.html index aad9d992..fcacb606 100644 --- a/doc/html/reference/high_level_components/boost_python_enum_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_enum_hpp.html @@ -3,14 +3,14 @@ boost/python/enum.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum.html b/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum.html deleted file mode 100644 index dc299dc2..00000000 --- a/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class template enum_ - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Creates a Python class derived from Python's int - type which is associated with the C++ type passed as its first parameter. -

    -
    namespace boost { namespace python
    -{
    -  template <class T>
    -  class enum_ : public object
    -  {
    -    enum_(char const* name, char const* doc = 0);
    -    enum_<T>& value(char const* name, T);
    -    enum_<T>& export_values();
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum_constructors.html b/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum_constructors.html deleted file mode 100644 index 4b97a96a..00000000 --- a/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum_constructors.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class template enum_ constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    enum_(char const* name, char const* doc=0);
    -
    -

    -
    -
    Requires
    -

    - name is an ntbs which conforms to Python's - identifier - naming rules. -

    -
    Effects
    -

    - Constructs an enum_ - object holding a Python extension type derived from int which is named name. - The named attribute of the current - scope is bound to the new extension type. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum_modifier_fun.html b/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum_modifier_fun.html deleted file mode 100644 index c063ee23..00000000 --- a/doc/html/reference/high_level_components/boost_python_enum_hpp/class_template_enum_modifier_fun.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -Class template enum_ modifier functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    enum_<T>& value(char const* name, T x);
    -
    -

    -
    -
    Requires
    -

    - name is an ntbs which conforms to Python's - identifier - naming rules. -

    -
    Effects
    -

    - adds an instance of the wrapped enumeration type with value x to - the type's dictionary as the named attribute. -

    -
    Returns
    -

    - *this -

    -
    -
    -
    enum_<T>& export_values();
    -
    -

    -
    -
    Effects
    -

    - sets attributes in the current - scope with the same names and values as all enumeration values - exposed so far by calling value(). -

    -
    Returns
    -

    - *this -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_enum_hpp/example.html b/doc/html/reference/high_level_components/boost_python_enum_hpp/example.html deleted file mode 100644 index 9c0ffff7..00000000 --- a/doc/html/reference/high_level_components/boost_python_enum_hpp/example.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition -

    -
    #include <boost/python/enum.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/module.hpp>
    -
    -using namespace boost::python;
    -
    -enum color { red = 1, green = 2, blue = 4 };
    -
    -color identity_(color x) { return x; }
    -
    -BOOST_PYTHON_MODULE(enums)
    -{
    -  enum_<color>("color")
    -    .value("red", red)
    -    .value("green", green)
    -    .export_values()
    -    .value("blue", blue)
    -    ;
    -
    -  def("identity", identity_);
    -}
    -
    -

    - Interactive Python: -

    -
    >>> from enums import *
    -
    ->>> identity(red)
    -enums.color.red
    -
    ->>> identity(color.red)
    -enums.color.red
    -
    ->>> identity(green)
    -enums.color.green
    -
    ->>> identity(color.green)
    -enums.color.green
    -
    ->>> identity(blue)
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -NameError: name 'blue' is not defined
    -
    ->>> identity(color.blue)
    -enums.color.blue
    -
    ->>> identity(color(1))
    -enums.color.red
    -
    ->>> identity(color(2))
    -enums.color.green
    -
    ->>> identity(color(3))
    -enums.color(3)
    -
    ->>> identity(color(4))
    -enums.color.blue
    -
    ->>> identity(1)
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -TypeError: bad argument type for built-in operation
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_errors_hpp.html b/doc/html/reference/high_level_components/boost_python_errors_hpp.html index 83704142..d01aece5 100644 --- a/doc/html/reference/high_level_components/boost_python_errors_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_errors_hpp.html @@ -3,14 +3,14 @@ boost/python/errors.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_errors_hpp/class_error_already_set.html b/doc/html/reference/high_level_components/boost_python_errors_hpp/class_error_already_set.html deleted file mode 100644 index 018b2859..00000000 --- a/doc/html/reference/high_level_components/boost_python_errors_hpp/class_error_already_set.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Class error_already_set - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - error_already_set is an exception type which can be thrown to indicate - that a Python error has occurred. If thrown, the precondition is that - PyErr_Occurred() - returns a value convertible to true. - Portable code shouldn't throw this exception type directly, but should - instead use throw_error_already_set(), - below. -

    -
    namespace boost { namespace python
    -{
    -    class error_already_set {};
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_errors_hpp/example.html b/doc/html/reference/high_level_components/boost_python_errors_hpp/example.html deleted file mode 100644 index 117a7e10..00000000 --- a/doc/html/reference/high_level_components/boost_python_errors_hpp/example.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <string>
    -#include <boost/python/errors.hpp>
    -#include <boost/python/object.hpp>
    -#include <boost/python/handle.hpp>
    -
    -// Returns a std::string which has the same value as obj's "__name__"
    -// attribute.
    -std::string get_name(boost::python::object obj)
    -{
    -   // throws if there's no __name__ attribute
    -   PyObject* p = boost::python::expect_non_null(
    -      PyObject_GetAttrString(obj.ptr(), "__name__"));
    -
    -   char const* s = PyString_AsString(p);
    -   if (s != 0)
    -        Py_DECREF(p);
    -
    -   // throws if it's not a Python string
    -   std::string result(
    -      boost::python::expect_non_null(
    -         PyString_AsString(p)));
    -
    -   Py_DECREF(p); // Done with p
    -
    -   return result;
    -}
    -
    -//
    -// Demonstrate form 1 of handle_exception
    -//
    -
    -// Place into result a Python Int object whose value is 1 if a and b have
    -// identical "__name__" attributes, 0 otherwise.
    -void same_name_impl(PyObject*& result, boost::python::object a, boost::python::object b)
    -{
    -   result = PyInt_FromLong(
    -      get_name(a) == get_name(a2));
    -}
    -
    -object borrowed_object(PyObject* p)
    -{
    -   return boost::python::object(
    -        boost::python::handle<>(
    -             boost::python::borrowed(a1)));
    -}
    -
    -// This is an example Python 'C' API interface function
    -extern "C" PyObject*
    -same_name(PyObject* args, PyObject* keywords)
    -{
    -   PyObject* a1;
    -   PyObject* a2;
    -   PyObject* result = 0;
    -
    -   if (!PyArg_ParseTuple(args, const_cast<char*>("OO"), &a1, &a2))
    -      return 0;
    -
    -   // Use boost::bind to make an object compatible with
    -   // boost::Function0<void>
    -   if (boost::python::handle_exception(
    -         boost::bind<void>(same_name_impl, boost::ref(result), borrowed_object(a1), borrowed_object(a2))))
    -   {
    -      // an exception was thrown; the Python error was set by
    -      // handle_exception()
    -      return 0;
    -   }
    -
    -   return result;
    -}
    -
    -//
    -// Demonstrate form 2 of handle_exception. Not well-supported by all
    -// compilers.
    -//
    -extern "C" PyObject*
    -same_name2(PyObject* args, PyObject* keywords)
    -{
    -   PyObject* a1;
    -   PyObject* a2;
    -   PyObject* result = 0;
    -
    -   if (!PyArg_ParseTuple(args, const_cast<char*>("OO"), &a1, &a2))
    -      return 0;
    -
    -   try {
    -      return PyInt_FromLong(
    -         get_name(borrowed_object(a1)) == get_name(borrowed_object(a2)));
    -   }
    -   catch(...)
    -   {
    -      // If an exception was thrown, translate it to Python
    -      boost::python::handle_exception();
    -      return 0;
    -   }
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_errors_hpp/functions.html b/doc/html/reference/high_level_components/boost_python_errors_hpp/functions.html deleted file mode 100644 index 2aea06fa..00000000 --- a/doc/html/reference/high_level_components/boost_python_errors_hpp/functions.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> bool handle_exception(T f) throw();
    -void handle_exception() throw();
    -
    -
    -

    -
    -
    Requires
    -

    - The first form requires that the expression function0<void>(f) - is valid. The second form requires that a C++ exception is currently - being handled (see section 15.1 in the C++ standard). -

    -
    Effects
    -

    - The first form calls f() inside a try block which first attempts - to use all registered exception - translators. If none of those translates the exception, the - catch clauses then set an appropriate Python exception for the C++ - exception caught, returning true if an exception was thrown, false - otherwise. The second form passes a function which rethrows the exception - currently being handled to the first form. -

    -
    Postconditions
    -

    - No exception is being handled -

    -
    Throws
    -

    - nothing -

    -
    Rationale
    -

    - At inter-language boundaries it is important to ensure that no C++ - exceptions escape, since the calling language usually doesn't have - the equipment necessary to properly unwind the stack. Use handle_exception - to manage exception translation whenever your C++ code is called - directly from the Python API. This is done for you automatically - by the usual function wrapping facilities: make_function(), - make_constructor(), - def() - and class_::def(). - The second form can be more convenient to use (see the example below), - but various compilers have problems when exceptions are rethrown - from within an enclosing try block. -

    -
    -
    -
    template <class T> T* expect_non_null(T* x);
    -
    -

    -
    -
    Returns
    -

    - x -

    -
    Throws
    -

    - error_already_set() iff x == 0. -

    -
    Rationale
    -

    - Simplifies error-handling when calling functions in the Python/C - API which return 0 on error. -

    -
    -
    -
    void throw_error_already_set();
    -
    -

    -
    -
    Effects
    -

    - throw error_already_set(); -

    -
    Rationale
    -

    - Simplifies error-handling when calling functions in the Python/C - API which return 0 on error. -

    -
    -
    -
    void throw_error_already_set();
    -
    -

    -
    -
    Effects
    -

    - throw error_already_set(); -

    -
    Rationale
    -

    - Many platforms and compilers are not able to consistently catch exceptions - thrown across shared library boundaries. Using this function from - the Boost.Python library ensures that the appropriate catch block - in handle_exception() can catch the exception. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_exception_translato.html b/doc/html/reference/high_level_components/boost_python_exception_translato.html index d4c6991e..cb34fad2 100644 --- a/doc/html/reference/high_level_components/boost_python_exception_translato.html +++ b/doc/html/reference/high_level_components/boost_python_exception_translato.html @@ -3,14 +3,14 @@ boost/python/exception_translator.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_exception_translato/example.html b/doc/html/reference/high_level_components/boost_python_exception_translato/example.html deleted file mode 100644 index acee29eb..00000000 --- a/doc/html/reference/high_level_components/boost_python_exception_translato/example.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/exception_translator.hpp>
    -#include <exception>
    -
    -struct my_exception : std::exception
    -{
    -  char const* what() throw() { return "One of my exceptions"; }
    -};
    -
    -void translate(my_exception const& e)
    -{
    -    // Use the Python 'C' API to set up an exception object
    -    PyErr_SetString(PyExc_RuntimeError, e.what());
    -}
    -
    -void something_which_throws()
    -{
    -    ...
    -    throw my_exception();
    -    ...
    -}
    -
    -BOOST_PYTHON_MODULE(exception_translator_ext)
    -{
    -  using namespace boost::python;
    -  register_exception_translator<my_exception>(&translate);
    -
    -  def("something_which_throws", something_which_throws);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_exception_translato/function_register_exception_tran.html b/doc/html/reference/high_level_components/boost_python_exception_translato/function_register_exception_tran.html deleted file mode 100644 index e7489e9c..00000000 --- a/doc/html/reference/high_level_components/boost_python_exception_translato/function_register_exception_tran.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Function register_exception_translator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template<class ExceptionType, class Translate>
    -void register_exception_translator(Translate translate);
    -
    -
    -

    -
    -
    Requires
    -
    -

    - Translate is CopyConstructible, and the following code must be well-formed: -

    -
    void f(ExceptionType x) { translate(x); }
    -

    - . The expression translate(x) must either throw a C++ exception, - or a subsequent call to PyErr_Occurred() must return 1. -

    -
    -
    Effects
    -

    - Adds a copy of translate to the sequence of exception translators - tried when Boost.Python catches an exception that is about to pass - into Python's core interpreter. The new translator will get "first - shot" at translating all exceptions matching the catch clause - shown above. Any subsequently-registered translators will be allowed - to translate the exception earlier. A translator which cannot translate - a given C++ exception can re-throw it, and it will be handled by - a translator which was registered earlier (or by the default translator). -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_init_hpp.html b/doc/html/reference/high_level_components/boost_python_init_hpp.html index 01a1b57f..77fe1a89 100644 --- a/doc/html/reference/high_level_components/boost_python_init_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_init_hpp.html @@ -3,14 +3,14 @@ boost/python/init.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_init.html b/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_init.html deleted file mode 100644 index 9e5111a6..00000000 --- a/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_init.html +++ /dev/null @@ -1,131 +0,0 @@ - - - -Class template init - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - A MPL sequence which can be used to specify a family of one or more __init__ - functions. Only the last Ti supplied may be an instantiation of optional<...>. -

    -
    namespace boost { namespace python
    -{
    -  template <T1 = unspecified,...Tn = unspecified>
    -  struct init
    -  {
    -    init(char const* doc = 0);
    -    template <class Keywords> init(Keywords const& kw, char const* doc = 0);
    -    template <class Keywords> init(char const* doc, Keywords const& kw);
    -
    -    template <class CallPolicies>
    -    unspecified operator[](CallPolicies const& policies) const
    -  };
    -}}
    -
    -
    - -
    init(char const* doc = 0);
    -template <class Keywords> init(Keywords const& kw, char const* doc = 0);
    -template <class Keywords> init(char const* doc, Keywords const& kw);
    -
    -
    -

    -
    -
    Requires
    -

    - If supplied, doc is an ntbs. If supplied, - kw is the result of a -

    -
    Effects
    -
    -

    - The result is an init-expression whose docstring is doc and whose - keywords are a reference to kw. If the first form is used, the - resulting expression's keywords are empty. The expression's call - policies are an instance of default_call_policies. - If Tn is optional<U1, - U2,... Um>, the expression's valid prefixes are given - by: -

    -
    (T1, T2,...Tn-1), (T1, T2,...Tn-1 , U1), (T1, T2,...Tn-1 , U1, U2), ...(T1, T2,...Tn-1 , U1, U2,...Um)
    -

    - . Otherwise, the expression has one valid prefix given by the template - arguments the user specified. -

    -
    -
    -
    -
    -
    - -
    template <class Policies>
    -unspecified operator[](Policies const& policies) const
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Returns a new init-expression - with all the same properties as the init object except that its - call policies are replaced by a reference to policies. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_init/class_template_init_observer_fun.html b/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_init/class_template_init_observer_fun.html deleted file mode 100644 index c14e43dc..00000000 --- a/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_init/class_template_init_observer_fun.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class template init observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class Policies>
    -unspecified operator[](Policies const& policies) const
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Returns a new init-expression - with all the same properties as the init object except that its - call policies are replaced by a reference to policies. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_optional.html b/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_optional.html deleted file mode 100644 index aad5e158..00000000 --- a/doc/html/reference/high_level_components/boost_python_init_hpp/class_template_optional.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Class template optional - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A MPL sequence which can be used to specify the optional arguments to an - __init__ function. -

    -
    namespace boost { namespace python
    -{
    -  template <T1 = unspecified,...Tn = unspecified>
    -  struct optional {};
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_init_hpp/example.html b/doc/html/reference/high_level_components/boost_python_init_hpp/example.html deleted file mode 100644 index 2c666143..00000000 --- a/doc/html/reference/high_level_components/boost_python_init_hpp/example.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Given the C++ declarations: -

    -
    class Y;
    -class X
    -{
    - public:
    -   X(int x, Y* y) : m_y(y) {}
    -   X(double);
    - private:
    -   Y* m_y;
    -};
    -
    -

    - A corresponing Boost.Python extension class can be created with: -

    -
    using namespace boost::python;
    -
    -class_<X>("X", "This is X's docstring.",
    -          init<int,char const*>(args("x","y"), "X.__init__'s docstring")[
    -                with_custodian_and_ward<1,3>()]
    -          )
    -   .def(init<double>())
    -   ;
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp.html index 68589721..84edf650 100644 --- a/doc/html/reference/high_level_components/boost_python_iterator_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_iterator_hpp.html @@ -3,14 +3,14 @@ boost/python/iterator.hpp - + -
    +

    PrevUpHomeNext @@ -328,21 +328,14 @@ applying NextPolicies to the iterator's next() function. The second form is identical to the first, except that Target is deduced from Accessor1 as follows:

    -
      -
    1. - If Accessor1 is a function type, Target is the type of its first - argument. -
    2. -
    3. - If Accessor1 is a data member pointer of the form R (T::*), - Target is identical to T. -
    4. -
    5. - If Accessor1 is a member function pointer of the form R (T::*)(arguments...) - cv-opt, where cv-opt is an optional - cv-qualifier, Target is identical to T. -
    6. -
    +

    + # If Accessor1 is a function type, Target is the type of its first + argument. # If Accessor1 is a data member pointer of the form R (T::*), + Target is identical to T. + # If Accessor1 is a member function pointer of the form R (T::*)(arguments...) + cv-opt, where cv-opt is an optional + cv-qualifier, Target is identical to T. +

    The third form is identical to the second, except that NextPolicies is an unspecified model of CallPolicies diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterator.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterator.html deleted file mode 100644 index 116f4ef6..00000000 --- a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterator.html +++ /dev/null @@ -1,142 +0,0 @@ - - - -Class template iterator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -


    -
    -PrevUpHomeNext -
    -
    - -

    - Instances of iterator<C,P> hold a reference to a callable Python - object which, when invoked from Python, expects a single argument c convertible - to C and creates a Python iterator that traverses [c.begin(), c.end()). The optional CallPolicies - P can be used to control - how elements are returned during iteration. -

    -

    - In the table below, c is an instance of Container. -

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

    - Template Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Default -

    -
    -

    - Container -

    -
    -

    - [c.begin(),c.end()) is a valid Iterator range. -

    -
    -

    - The result will convert its argument to c and call c.begin() - and c.end() to acquire iterators. To invoke Container's const - begin() - and end() - functions, make it const. -

    -
    -
    -

    - NextPolicies -

    -
    -

    - A default-constructible model of CallPolicies. -

    -
    -

    - Applied to the resulting iterators' next() method. -

    -
    -

    - An unspecified model of CallPolicies - which always makes a copy of the result of deferencing the underlying - C++ iterator -

    -
    -
    namespace boost { namespace python
    -  {
    -    template <class Container, class NextPolicies = unspecified>
    -    struct iterator : object
    -    {
    -      iterator();
    -    };
    -  }}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterator_construc.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterator_construc.html deleted file mode 100644 index 2cdfa3d3..00000000 --- a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterator_construc.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Class template iterator constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    iterator()
    -
    -

    -
    -
    Effects
    -
    -

    - Initializes its base class with the result of: -

    -
    range<NextPolicies>(&iterators<Container>::begin, &iterators<Container>::end)
    -
    -
    Postconditions
    -

    - this->get() - points to a Python callable object which creates a Python iterator - as described above. -

    -
    Rationale
    -

    - Provides an easy way to create iterators for the common case where - a C++ class being wrapped provides begin() and end(). -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators.html deleted file mode 100644 index da25ec76..00000000 --- a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Class template iterators - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A utility class template which provides a way to reliably call its argument's - begin() - and end() - member functions. Note that there is no portable way to take the address - of a member function of a C++ standard library container, so iterators<> - can be particularly helpful when wrapping them. -

    -

    - In the table below, x is an instance of C. -

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

    - Required Valid Expression -

    -
    -

    - Type -

    -
    -

    - x.begin() -

    -
    -

    - Convertible to C::const_iterator if C is a const type; convertible - to C::iterator otherwise. -

    -
    -

    - x.end() -

    -
    -

    - Convertible to C::const_iterator if C is a const type; convertible - to C::iterator otherwise. -

    -
    -
    namespace boost { namespace python
    -{
    -  template <class C>
    -  struct iterators
    -  {
    -      typedef typename C::const_iterator iterator;
    -      static iterator begin(C& x);
    -      static iterator end(C& x);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators_nested_.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators_nested_.html deleted file mode 100644 index cd2c01ee..00000000 --- a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators_nested_.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Class template iterators nested types - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If C is a const type, -

    -
    typedef typename C::const_iterator iterator;
    -

    - Otherwise: -

    -
    typedef typename C::iterator iterator;
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators_static_.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators_static_.html deleted file mode 100644 index b6cbbf43..00000000 --- a/doc/html/reference/high_level_components/boost_python_iterator_hpp/class_template_iterators_static_.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class template iterators static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static iterator begin(C&);
    -
    -

    -
    -
    Returns
    -

    - x.begin() -

    -
    -
    -
    static iterator end(C&);
    -
    -

    -
    -
    Returns
    -

    - x.end() -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp/example.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp/example.html deleted file mode 100644 index 759c99e7..00000000 --- a/doc/html/reference/high_level_components/boost_python_iterator_hpp/example.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -
    -#include <vector>
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    class_<std::vector<double> >("dvec")
    -        .def("__iter__", iterator<std::vector<double> >())
    -        ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp/functions.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp/functions.html deleted file mode 100644 index 60468c07..00000000 --- a/doc/html/reference/high_level_components/boost_python_iterator_hpp/functions.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class NextPolicies, class Target, class Accessor1, class Accessor2>
    -object range(Accessor1 start, Accessor2 finish);
    -
    -template <class NextPolicies, class Accessor1, class Accessor2>
    -object range(Accessor1 start, Accessor2 finish);
    -
    -template <class Accessor1, class Accessor2>
    -object range(Accessor1 start, Accessor2 finish);
    -
    -
    -

    -
    -
    Requires
    -

    - NextPolicies is a default-constructible model of CallPolicies. -

    -
    Effects
    -
    -

    - The first form creates a Python callable object which, when invoked, - converts its argument to a Target object x, and creates a Python - iterator which traverses [bind(start,_1)(x), bind(finish,_1)(x)), - applying NextPolicies to the iterator's next() function. The second form is identical - to the first, except that Target is deduced from Accessor1 as follows: -

    -
      -
    1. - If Accessor1 is a function type, Target is the type of its first - argument. -
    2. -
    3. - If Accessor1 is a data member pointer of the form R (T::*), - Target is identical to T. -
    4. -
    5. - If Accessor1 is a member function pointer of the form R (T::*)(arguments...) - cv-opt, where cv-opt is an optional - cv-qualifier, Target is identical to T. -
    6. -
    -

    - The third form is identical to the second, except that NextPolicies - is an unspecified model of CallPolicies - which always makes a copy of the result of deferencing the underlying - C++ iterator -

    -
    -
    Rationale
    -

    - The use of boost::bind() allows C++ iterators to be accessed - through functions, member functions or data member pointers. Customization - of NextPolicies (e.g. using return_internal_reference) - is useful when it is expensive to copy sequence elements of a wrapped - class type. Customization of Target is useful when Accessor1 is a - function object, or when a base class of the intended target type - would otherwise be deduced. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_module_hpp.html b/doc/html/reference/high_level_components/boost_python_module_hpp.html index c5e0d72a..c3cd3be3 100644 --- a/doc/html/reference/high_level_components/boost_python_module_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_module_hpp.html @@ -3,14 +3,14 @@ boost/python/module.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_module_hpp/examples.html b/doc/html/reference/high_level_components/boost_python_module_hpp/examples.html deleted file mode 100644 index 6fe19732..00000000 --- a/doc/html/reference/high_level_components/boost_python_module_hpp/examples.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -
    -BOOST_PYTHON_MODULE(xxx)
    -{
    -    throw "something bad happened"
    -}
    -
    -

    - Interactive Python: -

    -
    >>> import xxx
    -Traceback (most recent call last):
    -  File "", line 1, in ?
    -RuntimeError: Unidentifiable C++ Exception
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_module_hpp/macros.html b/doc/html/reference/high_level_components/boost_python_module_hpp/macros.html deleted file mode 100644 index 0755f354..00000000 --- a/doc/html/reference/high_level_components/boost_python_module_hpp/macros.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Macros - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Macros -

    -

    - BOOST_PYTHON_MODULE(name) - is used to declare Python module - initialization functions. The name argument must exactly match - the name of the module to be initialized, and must conform to Python's - identifier - naming rules. Where you would normally write -

    -
    extern "C" void initname()
    -{
    -   ...
    -}
    -
    -

    - Boost.Python modules should be initialized with -

    -
    BOOST_PYTHON_MODULE(name)
    -{
    -   ...
    -}
    -
    -

    - This macro generates two functions in the scope where it is used: extern "C" - void initname(), and void - init_module_name(), - whose body must follow the macro invocation. init_name - passes init_module_name - to handle_exception() - so that any C++ exceptions generated are safely processeed. During the - body of init_name, the - current scope - refers to the module being initialized. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp.html b/doc/html/reference/high_level_components/boost_python_operators_hpp.html index 6e0688e4..4d11406b 100644 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_operators_hpp.html @@ -3,14 +3,14 @@ boost/python/operators.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t.html deleted file mode 100644 index 66c05143..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t.html +++ /dev/null @@ -1,1402 +0,0 @@ - - - -Class self_ns::self_t - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - self_ns::self_t is the actual type of the self - object. The library isolates self_t - in its own namespace, self_ns, - in order to prevent the generalized operator templates which operate on - it from being found by argument-dependent lookup in other contexts. This - should be considered an implementation detail, since users should never - have to mention self_t - directly. -

    -
    namespace boost { namespace python { namespace self_ns {
    -{
    -   unspecified-type-declaration self_t;
    -
    -   // inplace operators
    -   template <class T> operator_<unspecified> operator+=(self_t, T);
    -   template <class T> operator_<unspecified> operator-=(self_t, T);
    -   template <class T> operator_<unspecified> operator*=(self_t, T);
    -   template <class T> operator_<unspecified> operator/=(self_t, T);
    -   template <class T> operator_<unspecified> operator%=(self_t, T);
    -   template <class T> operator_<unspecified> operator>>=(self_t, T);
    -   template <class T> operator_<unspecified> operator<<=(self_t, T);
    -   template <class T> operator_<unspecified> operator&=(self_t, T);
    -   template <class T> operator_<unspecified> operator^=(self_t, T);
    -   template <class T> operator_<unspecified> operator|=(self_t, T);
    -
    -   // comparisons
    -   template <class L, class R> operator_<unspecified> operator==(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator!=(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator<(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator>(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator<=(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator>=(L const&, R const&);
    -
    -   // non-member operations
    -   template <class L, class R> operator_<unspecified> operator+(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator-(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator*(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator/(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator%(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator>>(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator<<(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator&(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator^(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator|(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> pow(L const&, R const&);
    -
    -   // unary operations
    -   operator_<unspecified> operator-(self_t);
    -   operator_<unspecified> operator+(self_t);
    -   operator_<unspecified> operator~(self_t);
    -   operator_<unspecified> operator!(self_t);
    -
    -   // value operations
    -   operator_<unspecified> int_(self_t);
    -   operator_<unspecified> long_(self_t);
    -   operator_<unspecified> float_(self_t);
    -   operator_<unspecified> complex_(self_t);
    -   operator_<unspecified> str(self_t);
    -
    -   operator_<unspecified> repr(self_t);
    -}}};
    -
    -

    - The tables below describe the methods generated when the results of the - expressions described are passed as arguments to class_<>::def(). - x is an object of the class - type being wrapped. -

    -
    - -

    - In the table below, If r - is an object of type other<T>, - y is an object of type - T; otherwise, y is an object of the same type as - r. -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - self += - r -

    -
    -

    - __iadd__ -

    -
    -

    - x += - y -

    -
    -

    - self -= - r -

    -
    -

    - __isub__ -

    -
    -

    - x -= - y -

    -
    -

    - self *= - r -

    -
    -

    - __imul__ -

    -
    -

    - x *= - y -

    -
    -

    - self /= - r -

    -
    -

    - __idiv__ -

    -
    -

    - x /= - y -

    -
    -

    - self %= - r -

    -
    -

    - __imod__ -

    -
    -

    - x %= - y -

    -
    -

    - self >>= - r -

    -
    -

    - __irshift__ -

    -
    -

    - x >>= - y -

    -
    -

    - self <<= - r -

    -
    -

    - __ilshift__ -

    -
    -

    - x <<= - y -

    -
    -

    - self &= - r -

    -
    -

    - __iand__ -

    -
    -

    - x &= - y -

    -
    -

    - self ^= - r -

    -
    -

    - __ixor__ -

    -
    -

    - x ^= - y -

    -
    -

    - self |= - r -

    -
    -

    - __ior__ -

    -
    -

    - x |= - y -

    -
    -
    -
    - -

    - In the tables below, if r - is of type self_t, - y is an object of the - same type as x; if l or r - is an object of type other<T>, - y is an object of type - T; otherwise, y is an object of the same type as - l or r. - l is never of type self_t. -

    -

    - The column of Python Expressions illustrates the expressions that will - be supported in Python for objects convertible to the types of x and - y. The secondary operation arises due to Python's reflection - rules for rich comparison operators, and are only used when the - corresponding operation is not defined as a method of the y object. -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - Python Expression (primary, secondary) -

    -
    -

    - self == - r -

    -
    -

    - __eq__ -

    -
    -

    - x == - y -

    -
    -

    - x == - y, y == - x -

    -
    -

    - l == - self -

    -
    -

    - __eq__ -

    -
    -

    - y == - x -

    -
    -

    - y == - x, x == - y -

    -
    -

    - self != - r -

    -
    -

    - __nq__ -

    -
    -

    - x != - y -

    -
    -

    - x != - y, y != - x -

    -
    -

    - l != - self -

    -
    -

    - __nq__ -

    -
    -

    - y != - x -

    -
    -

    - y != - x, x != - y -

    -
    -

    - self < - r -

    -
    -

    - __lt__ -

    -
    -

    - x < - y -

    -
    -

    - x < - y, y > - x -

    -
    -

    - l < - self -

    -
    -

    - __gt__ -

    -
    -

    - y < - x -

    -
    -

    - y > - x, x < - y -

    -
    -

    - self > - r -

    -
    -

    - __gt__ -

    -
    -

    - x > - y -

    -
    -

    - x > - y, y < - x -

    -
    -

    - l > - self -

    -
    -

    - __lt__ -

    -
    -

    - y > - x -

    -
    -

    - y < - x, x > - y -

    -
    -

    - self <= - r -

    -
    -

    - __le__ -

    -
    -

    - x <= - y -

    -
    -

    - x <= - y, y >= - x -

    -
    -

    - l <= - self -

    -
    -

    - __ge__ -

    -
    -

    - y <= - x -

    -
    -

    - y >= - x, x <= - y -

    -
    -

    - self >= - r -

    -
    -

    - __ge__ -

    -
    -

    - x >= - y -

    -
    -

    - x >= - y, y <= - x -

    -
    -

    - l <= - self -

    -
    -

    - __le__ -

    -
    -

    - y >= - x -

    -
    -

    - y <= - x, x >= - y -

    -
    -
    -
    - -

    - The operations whose names begin with "__r" below will only - be called if the left-hand operand does not already support the given - operation, as described here. -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - self + - r -

    -
    -

    - __add__ -

    -
    -

    - x + - y -

    -
    -

    - l + - self -

    -
    -

    - __radd__ -

    -
    -

    - y + - x -

    -
    -

    - self - - r -

    -
    -

    - __sub__ -

    -
    -

    - x - - y -

    -
    -

    - l - - self -

    -
    -

    - __rsub__ -

    -
    -

    - y - - x -

    -
    -

    - self * - r -

    -
    -

    - __mult__ -

    -
    -

    - x * - y -

    -
    -

    - l * - self -

    -
    -

    - __rmult__ -

    -
    -

    - y * - x -

    -
    -

    - self / - r -

    -
    -

    - __div__ -

    -
    -

    - x / - y -

    -
    -

    - l / - self -

    -
    -

    - __rdiv__ -

    -
    -

    - y / - x -

    -
    -

    - self % - r -

    -
    -

    - __mod__ -

    -
    -

    - x % - y -

    -
    -

    - l % - self -

    -
    -

    - __rmod__ -

    -
    -

    - y % - x -

    -
    -

    - self >> - r -

    -
    -

    - __rshift__ -

    -
    -

    - x >> - y -

    -
    -

    - l >> - self -

    -
    -

    - __rrshift__ -

    -
    -

    - y >> - x -

    -
    -

    - self << - r -

    -
    -

    - __lshift__ -

    -
    -

    - x << - y -

    -
    -

    - l << - self -

    -
    -

    - __rlshift__ -

    -
    -

    - y << - x -

    -
    -

    - self & - r -

    -
    -

    - __and__ -

    -
    -

    - x & - y -

    -
    -

    - l & - self -

    -
    -

    - __rand__ -

    -
    -

    - y & - x -

    -
    -

    - self ^ - r -

    -
    -

    - __xor__ -

    -
    -

    - x ^ - y -

    -
    -

    - l ^ - self -

    -
    -

    - __rxor__ -

    -
    -

    - y ^ - x -

    -
    -

    - self | - r -

    -
    -

    - __or__ -

    -
    -

    - x | - y -

    -
    -

    - l | - self -

    -
    -

    - __ror__ -

    -
    -

    - y | - x -

    -
    -

    - pow(self, - r) -

    -
    -

    - __pow__ -

    -
    -

    - x ** - y -

    -
    -

    - pow(l, - self) -

    -
    -

    - __rpow__ -

    -
    -

    - y ** - x -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - -self -

    -
    -

    - __neg__ -

    -
    -

    - -x -

    -
    -

    - +self -

    -
    -

    - __pos__ -

    -
    -

    - +x -

    -
    -

    - ~self -

    -
    -

    - __invert__ -

    -
    -

    - ~x -

    -
    -

    - not self - or !self -

    -
    -

    - __nonzero__ -

    -
    -

    - !!x -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - int_(self) -

    -
    -

    - __int__ -

    -
    -

    - long(x) -

    -
    -

    - long_(self) -

    -
    -

    - __long__ -

    -
    -

    - PyLong_FromLong(x) -

    -
    -

    - float_(self) -

    -
    -

    - __float__ -

    -
    -

    - double(x) -

    -
    -

    - complex_(self) -

    -
    -

    - __complex__ -

    -
    -

    - std::complex<double>(x) -

    -
    -

    - str(self) -

    -
    -

    - __str__ -

    -
    -

    - lexical_cast<std::string>(x) -

    -
    -

    - repr(self) -

    -
    -

    - __repr__ -

    -
    -

    - lexical_cast<std::string>(x) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_comparison_functions.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_comparison_functions.html deleted file mode 100644 index 2be51ee5..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_comparison_functions.html +++ /dev/null @@ -1,405 +0,0 @@ - - - -self_t comparison functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In the tables below, if r - is of type self_t, - y is an object of the - same type as x; if l or r - is an object of type other<T>, - y is an object of type - T; otherwise, y is an object of the same type as - l or r. - l is never of type self_t. -

    -

    - The column of Python Expressions illustrates the expressions that will - be supported in Python for objects convertible to the types of x and - y. The secondary operation arises due to Python's reflection - rules for rich comparison operators, and are only used when the - corresponding operation is not defined as a method of the y object. -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - Python Expression (primary, secondary) -

    -
    -

    - self == - r -

    -
    -

    - __eq__ -

    -
    -

    - x == - y -

    -
    -

    - x == - y, y == - x -

    -
    -

    - l == - self -

    -
    -

    - __eq__ -

    -
    -

    - y == - x -

    -
    -

    - y == - x, x == - y -

    -
    -

    - self != - r -

    -
    -

    - __nq__ -

    -
    -

    - x != - y -

    -
    -

    - x != - y, y != - x -

    -
    -

    - l != - self -

    -
    -

    - __nq__ -

    -
    -

    - y != - x -

    -
    -

    - y != - x, x != - y -

    -
    -

    - self < - r -

    -
    -

    - __lt__ -

    -
    -

    - x < - y -

    -
    -

    - x < - y, y > - x -

    -
    -

    - l < - self -

    -
    -

    - __gt__ -

    -
    -

    - y < - x -

    -
    -

    - y > - x, x < - y -

    -
    -

    - self > - r -

    -
    -

    - __gt__ -

    -
    -

    - x > - y -

    -
    -

    - x > - y, y < - x -

    -
    -

    - l > - self -

    -
    -

    - __lt__ -

    -
    -

    - y > - x -

    -
    -

    - y < - x, x > - y -

    -
    -

    - self <= - r -

    -
    -

    - __le__ -

    -
    -

    - x <= - y -

    -
    -

    - x <= - y, y >= - x -

    -
    -

    - l <= - self -

    -
    -

    - __ge__ -

    -
    -

    - y <= - x -

    -
    -

    - y >= - x, x <= - y -

    -
    -

    - self >= - r -

    -
    -

    - __ge__ -

    -
    -

    - x >= - y -

    -
    -

    - x >= - y, y <= - x -

    -
    -

    - l <= - self -

    -
    -

    - __le__ -

    -
    -

    - y >= - x -

    -
    -

    - y <= - x, x >= - y -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_non_member_operations.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_non_member_operations.html deleted file mode 100644 index 8edaf092..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_non_member_operations.html +++ /dev/null @@ -1,492 +0,0 @@ - - - -self_t non-member operations - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The operations whose names begin with "__r" below will only - be called if the left-hand operand does not already support the given - operation, as described here. -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - self + - r -

    -
    -

    - __add__ -

    -
    -

    - x + - y -

    -
    -

    - l + - self -

    -
    -

    - __radd__ -

    -
    -

    - y + - x -

    -
    -

    - self - - r -

    -
    -

    - __sub__ -

    -
    -

    - x - - y -

    -
    -

    - l - - self -

    -
    -

    - __rsub__ -

    -
    -

    - y - - x -

    -
    -

    - self * - r -

    -
    -

    - __mult__ -

    -
    -

    - x * - y -

    -
    -

    - l * - self -

    -
    -

    - __rmult__ -

    -
    -

    - y * - x -

    -
    -

    - self / - r -

    -
    -

    - __div__ -

    -
    -

    - x / - y -

    -
    -

    - l / - self -

    -
    -

    - __rdiv__ -

    -
    -

    - y / - x -

    -
    -

    - self % - r -

    -
    -

    - __mod__ -

    -
    -

    - x % - y -

    -
    -

    - l % - self -

    -
    -

    - __rmod__ -

    -
    -

    - y % - x -

    -
    -

    - self >> - r -

    -
    -

    - __rshift__ -

    -
    -

    - x >> - y -

    -
    -

    - l >> - self -

    -
    -

    - __rrshift__ -

    -
    -

    - y >> - x -

    -
    -

    - self << - r -

    -
    -

    - __lshift__ -

    -
    -

    - x << - y -

    -
    -

    - l << - self -

    -
    -

    - __rlshift__ -

    -
    -

    - y << - x -

    -
    -

    - self & - r -

    -
    -

    - __and__ -

    -
    -

    - x & - y -

    -
    -

    - l & - self -

    -
    -

    - __rand__ -

    -
    -

    - y & - x -

    -
    -

    - self ^ - r -

    -
    -

    - __xor__ -

    -
    -

    - x ^ - y -

    -
    -

    - l ^ - self -

    -
    -

    - __rxor__ -

    -
    -

    - y ^ - x -

    -
    -

    - self | - r -

    -
    -

    - __or__ -

    -
    -

    - x | - y -

    -
    -

    - l | - self -

    -
    -

    - __ror__ -

    -
    -

    - y | - x -

    -
    -

    - pow(self, - r) -

    -
    -

    - __pow__ -

    -
    -

    - x ** - y -

    -
    -

    - pow(l, - self) -

    -
    -

    - __rpow__ -

    -
    -

    - y ** - x -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_unary_operations.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_unary_operations.html deleted file mode 100644 index 52db271b..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_unary_operations.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -self_t unary operations - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - -self -

    -
    -

    - __neg__ -

    -
    -

    - -x -

    -
    -

    - +self -

    -
    -

    - __pos__ -

    -
    -

    - +x -

    -
    -

    - ~self -

    -
    -

    - __invert__ -

    -
    -

    - ~x -

    -
    -

    - not self - or !self -

    -
    -

    - __nonzero__ -

    -
    -

    - !!x -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_value_operations.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_value_operations.html deleted file mode 100644 index 38fba706..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_self_ns_self_t/self_t_value_operations.html +++ /dev/null @@ -1,171 +0,0 @@ - - - -self_t value operations - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - int_(self) -

    -
    -

    - __int__ -

    -
    -

    - long(x) -

    -
    -

    - long_(self) -

    -
    -

    - __long__ -

    -
    -

    - PyLong_FromLong(x) -

    -
    -

    - float_(self) -

    -
    -

    - __float__ -

    -
    -

    - double(x) -

    -
    -

    - complex_(self) -

    -
    -

    - __complex__ -

    -
    -

    - std::complex<double>(x) -

    -
    -

    - str(self) -

    -
    -

    - __str__ -

    -
    -

    - lexical_cast<std::string>(x) -

    -
    -

    - repr(self) -

    -
    -

    - __repr__ -

    -
    -

    - lexical_cast<std::string>(x) -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_template_detail_operator.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/class_template_detail_operator.html deleted file mode 100644 index 1b027107..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_template_detail_operator.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class template detail::operator_ - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Instantiations of detail::operator_<> are used as the return type of - operator expressions involving self. - This should be considered an implementation detail and is only documented - here as a way of showing how the result of self-expressions match calls - to class_<>::def(). -

    -
    namespace boost { namespace python { namespace detail
    -{
    -  template <unspecified>
    -  struct operator_
    -  {
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_template_other.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/class_template_other.html deleted file mode 100644 index b4f9f158..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/class_template_other.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class template other - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Instances of other<T> - can be used in operator expressions with self; - the result is equivalent to the same expression with a T - object in place of other<T>. Use other<T> to prevent construction of a T object in case it is heavyweight, when - no constructor is available, or simply for clarity. -

    -
    namespace boost { namespace python
    -{
    -  template <class T>
    -  struct other
    -  {
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/example.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/example.html deleted file mode 100644 index 023f8a7d..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/example.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/operators.hpp>
    -#include <boost/operators.hpp>
    -
    -struct number
    -   : boost::integer_arithmetic<number>
    -{
    -    explicit number(long x_) : x(x_) {}
    -    operator long() const { return x; }
    -
    -    template <class T>
    -    number& operator+=(T const& rhs)
    -    { x += rhs; return *this; }
    -
    -    template <class T>
    -    number& operator-=(T const& rhs)
    -    { x -= rhs; return *this; }
    -
    -    template <class T>
    -    number& operator*=(T const& rhs)
    -    { x *= rhs; return *this; }
    -
    -    template <class T>
    -    number& operator/=(T const& rhs)
    -    { x /= rhs; return *this; }
    -
    -    template <class T>
    -    number& operator%=(T const& rhs)
    -    { x %= rhs; return *this; }
    -
    -   long x;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(demo)
    -{
    -   class_<number>("number", init<long>())
    -      // interoperate with self
    -      .def(self += self)
    -      .def(self + self)
    -      .def(self -= self)
    -      .def(self - self)
    -      .def(self *= self)
    -      .def(self * self)
    -      .def(self /= self)
    -      .def(self / self)
    -      .def(self %= self)
    -      .def(self % self)
    -
    -      // Convert to Python int
    -      .def(int_(self))
    -
    -      // interoperate with long
    -      .def(self += long())
    -      .def(self + long())
    -      .def(long() + self)
    -      .def(self -= long())
    -      .def(self - long())
    -      .def(long() - self)
    -      .def(self *= long())
    -      .def(self * long())
    -      .def(long() * self)
    -      .def(self /= long())
    -      .def(self / long())
    -      .def(long() / self)
    -      .def(self %= long())
    -      .def(self % long())
    -      .def(long() % self)
    -      ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp/object_self.html b/doc/html/reference/high_level_components/boost_python_operators_hpp/object_self.html deleted file mode 100644 index 99c5d054..00000000 --- a/doc/html/reference/high_level_components/boost_python_operators_hpp/object_self.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -Object self - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace boost { namespace python
    -{
    -  using self_ns::self;
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_scope_hpp.html b/doc/html/reference/high_level_components/boost_python_scope_hpp.html index 966bfe48..6214d914 100644 --- a/doc/html/reference/high_level_components/boost_python_scope_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_scope_hpp.html @@ -3,14 +3,14 @@ boost/python/scope.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_scope_hpp/class_scope.html b/doc/html/reference/high_level_components/boost_python_scope_hpp/class_scope.html deleted file mode 100644 index c021b487..00000000 --- a/doc/html/reference/high_level_components/boost_python_scope_hpp/class_scope.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Class scope - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The scope class has an associated global Python object which controls the - Python namespace in which new extension classes and wrapped functions will - be defined as attributes. Default-constructing a new scope object binds - it to the associated global Python object. Constructing a scope object - with an argument changes the associated global Python object to the one - held by the argument, until the lifetime of the scope object ends, at which - time the associated global Python object reverts to what it was before - the scope object was constructed. -

    -
    namespace boost { namespace python
    -{
    -  class scope : public object
    -  {
    -   public:
    -      scope(scope const&);
    -      scope(object const&);
    -      scope();
    -      ~scope()
    -   private:
    -      void operator=(scope const&);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_scope_hpp/class_scope_constructors_and_des.html b/doc/html/reference/high_level_components/boost_python_scope_hpp/class_scope_constructors_and_des.html deleted file mode 100644 index 5b9804c4..00000000 --- a/doc/html/reference/high_level_components/boost_python_scope_hpp/class_scope_constructors_and_des.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class scope constructors and destructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    explicit scope(scope const& x);
    -explicit scope(object const& x);
    -
    -

    - Stores a reference to the current associated scope object, and sets the - associated scope object to the one referred to by x.ptr(). The object base - class is initialized with x. -

    -
    scope();
    -

    - Stores a reference to the current associated scope object. The object base - class is initialized with the current associated scope object. Outside - any module initialization function, the current associated Python object - is None. -

    -
    ~scope()
    -

    - Sets the current associated Python object to the stored object. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_scope_hpp/example.html b/doc/html/reference/high_level_components/boost_python_scope_hpp/example.html deleted file mode 100644 index 2ba3d8fd..00000000 --- a/doc/html/reference/high_level_components/boost_python_scope_hpp/example.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following example shows how scope setting can be used to define nested - classes. -

    -

    - C++ Module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/scope.hpp>
    -using namespace boost::python;
    -
    -struct X
    -{
    -  void f() {}
    -
    -  struct Y { int g() { return 42; } };
    -};
    -
    -BOOST_PYTHON_MODULE(nested)
    -{
    -   // add some constants to the current (module) scope
    -   scope().attr("yes") = 1;
    -   scope().attr("no") = 0;
    -
    -   // Change the current scope 
    -   scope outer
    -       = class_<X>("X")
    -            .def("f", &X::f)
    -            ;
    -
    -   // Define a class Y in the current scope, X
    -   class_<X::Y>("Y")
    -      .def("g", &X::Y::g)
    -      ;
    -}
    -
    -

    - Interactive Python: -

    -
    >>> import nested
    ->>> nested.yes
    -1
    ->>> y = nested.X.Y()
    ->>> y.g()
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp.html b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp.html index 850387b1..e242d930 100644 --- a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp.html @@ -3,14 +3,14 @@ boost/python/stl_iterator.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat0.html b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat0.html deleted file mode 100644 index d699c063..00000000 --- a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat0.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -Class template stl_input_iterator constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    stl_input_iterator()
    -
    -
    -

    -
    -
    Effects
    -

    - Creates a past-the-end input iterator, useful for signifying the - end of a sequence. -

    -
    Postconditions
    -

    - this is past-the-end -

    -
    Throws
    -

    - Nothing. -

    -
    -
    -
    stl_input_iterator(object const& ob)
    -
    -

    -
    -
    Effects
    -

    - Calls ob.attr("__iter__")() and stores the resulting Python - iterator object in this->it. Then, calls this->it.attr("next")() - and stores the result in this->ob. If the sequence is exhausted, - sets this->ob to object(). -

    -
    Postconditions
    -

    - this is a dereferenceable or past-the-end. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat1.html b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat1.html deleted file mode 100644 index 57568bff..00000000 --- a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -Class template stl_input_iterator modifiers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    stl_input_iterator &operator++()
    -
    -
    -

    -
    -
    Effects
    -

    - Calls this->it.attr("next")() and stores the result - in this->ob. If the sequence is exhausted, sets this->ob to - object(). -

    -
    Postconditions
    -

    - this is a dereferenceable or past-the-end. -

    -
    Returns
    -

    - *this -

    -
    -
    -
    stl_input_iterator &operator++(int)
    -
    -

    -
    -
    Effects
    -

    - stl_input_iterator tmp = - *this; ++*this; return tmp; -

    -
    Postconditions
    -

    - this is a dereferenceable or past-the-end. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat2.html b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat2.html deleted file mode 100644 index 661f4157..00000000 --- a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterat2.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Class template stl_input_iterator observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ValueType operator*() const
    -
    -
    -

    -
    -
    Effects
    -

    - Returns the current element in the sequence. -

    -
    Returns
    -

    - extract<ValueType>(this->ob); -

    -
    -
    -
    friend bool operator==(stl_input_iterator const& lhs, stl_input_iterator const& rhs)
    -
    -
    -

    -
    -
    Effects
    -

    - Returns true if both iterators are dereferenceable or if both iterators - are past-the-end, false otherwise. -

    -
    Returns
    -

    - (lhs.ob == object()) == (rhs.ob == object()) -

    -
    -
    -
    friend bool operator!=(stl_input_iterator const& lhs, stl_input_iterator const& rhs)
    -
    -
    -

    -
    -
    Effects
    -

    - Returns false if both iterators are dereferenceable or if both iterators - are past-the-end, true otherwise. -

    -
    Returns
    -

    - !(lhs - == rhs) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterato.html b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterato.html deleted file mode 100644 index 9461030d..00000000 --- a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/class_template_stl_input_iterato.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -Class template stl_input_iterator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Instances of stl_input_iterator<T> hold a Python iterator and adapt it - for use with STL algorithms. stl_input_iterator<T> satisfies the requirements for an Input - Iterator. -

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

    - Template Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Default -

    -
    -

    - ValueType -

    -
    -

    - ValueType must be CopyConstructible. -

    -
    -

    - Dereferencing an instance of stl_input_iterator<ValueType> will return an rvalue of - type ValueType. -

    -
    -

    - None -

    -
    -
    namespace boost { namespace python
    -{
    -  template <class ValueType>
    -  struct stl_input_iterator
    -  {
    -      typedef std::ptrdiff_t difference_type;
    -      typedef ValueType value_type;
    -      typedef ValueType* pointer;
    -      typedef ValueType reference;
    -      typedef std::input_iterator_tag iterator_category;
    -
    -      stl_input_iterator();
    -      stl_input_iterator(object const& ob);
    -
    -      stl_input_iterator& operator++();
    -      stl_input_iterator operator++(int);
    -
    -      ValueType operator*() const;
    -
    -      friend bool operator==(stl_input_iterator const& lhs, stl_input_iterator const& rhs);
    -      friend bool operator!=(stl_input_iterator const& lhs, stl_input_iterator const& rhs);
    -  private:
    -      object it; // For exposition only
    -      object ob; // For exposition only
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/example.html b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/example.html deleted file mode 100644 index eeb69d58..00000000 --- a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp/example.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/object.hpp>
    -#include <boost/python/stl_iterator.hpp>
    -
    -#include <list>
    -
    -using namespace boost::python;
    -std::list<int> sequence_to_int_list(object const& ob)
    -{
    -    stl_input_iterator<int> begin(ob), end;
    -    return std::list<int>(begin, end);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_wrapper_hpp.html b/doc/html/reference/high_level_components/boost_python_wrapper_hpp.html index dac3c40b..a857973f 100644 --- a/doc/html/reference/high_level_components/boost_python_wrapper_hpp.html +++ b/doc/html/reference/high_level_components/boost_python_wrapper_hpp.html @@ -3,14 +3,14 @@ boost/python/wrapper.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_override.html b/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_override.html deleted file mode 100644 index e0e64fce..00000000 --- a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_override.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class override - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Encapsulates a Python override of a C++ virtual function. An override object - either holds a callable Python object or None. -

    -
    namespace boost
    -{
    -  class override : object
    -  {
    -   public:
    -      unspecified operator() const;
    -      template <class A0>
    -      unspecified operator(A0) const;
    -      template <class A0, class A1>
    -      unspecified operator(A0, A1) const;
    -      ...
    -      template <class A0, class A1, ...class An>
    -      unspecified operator(A0, A1, ...An) const;
    -  };
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_override_observer_function.html b/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_override_observer_function.html deleted file mode 100644 index 09bbee6b..00000000 --- a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_override_observer_function.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -Class override observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    unspecified operator() const;
    -template <class A0>
    -unspecified operator(A0) const;
    -template <class A0, class A1>
    -unspecified operator(A0, A1) const;
    -...
    -template <class A0, class A1, ...class An>
    -unspecified operator(A0, A1, ...An) const;
    -
    -
    -

    -
    -
    Effects
    -

    - If *this holds a callable Python object, it is invoked with the specified - arguments in the manner specified here. Otherwise, throws error_already_set. -

    -
    Returns
    -

    - An object of unspecified type that holds the Python result of the - invocation and, when converted to a C++ type R, attempts to convert - that result object to R. If that conversion fails, throws error_already_set. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_template_wrapper.html b/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_template_wrapper.html deleted file mode 100644 index 28fe0556..00000000 --- a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_template_wrapper.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Class template wrapper - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Deriving your wrapper class from both T - and wrapper<T> - makes writing that derived class easier. -

    -
    namespace boost
    -{
    -  class wrapper
    -  {
    -   protected:
    -      override get_override(char const* name) const;
    -  };
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_template_wrapper_observer_.html b/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_template_wrapper_observer_.html deleted file mode 100644 index 4cad7736..00000000 --- a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_template_wrapper_observer_.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class template wrapper observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    override get_override(char const* name) const;
    -
    -

    -
    -
    Requires
    -

    - name is a ntbs. -

    -
    Returns
    -

    - If *this - is the C++ base class subobject of a Python derived class instance - that overrides the named function, returns an override object that - delegates to the Python override. Otherwise, returns an override - object that holds None. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_wrapper_observer_functions.html b/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_wrapper_observer_functions.html deleted file mode 100644 index d34b2a49..00000000 --- a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/class_wrapper_observer_functions.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Class wrapper observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    override get_override(char const* name) const;
    -
    -

    -
    -
    Requires
    -

    - name is a ntbs. -

    -
    Returns
    -

    - If *this is the C++ base class subobject of a Python derived class - instance that overrides the named function, returns an override object - that delegates to the Python override. Otherwise, returns an override - object that holds None. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/example.html b/doc/html/reference/high_level_components/boost_python_wrapper_hpp/example.html deleted file mode 100644 index 9596eeea..00000000 --- a/doc/html/reference/high_level_components/boost_python_wrapper_hpp/example.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/wrapper.hpp>
    -#include <boost/python/call.hpp>
    -
    -using namespace boost::python;
    -
    -// Class with one pure virtual function
    -struct P
    -{
    -    virtual ~P(){}
    -    virtual char const* f() = 0;
    -    char const* g() { return "P::g()"; }
    -};
    -
    -struct PCallback : P, wrapper<P>
    -{
    -    char const* f()
    -    {
    -        return this->get_override("f")();
    -    }
    -};
    -
    -// Class with one non-pure virtual function
    -struct A
    -{
    -    virtual ~A(){}
    -    virtual char const* f() { return "A::f()"; }
    -};
    -
    -struct ACallback :  A, wrapper<A>
    -{
    -    char const* f()
    -    {
    -        if (override f = this->get_override("f"))
    -            return f();
    -        return A::f();
    -    }
    -
    -    char const* default_f() { return this->A::f(); }
    -};
    -
    -BOOST_PYTHON_MODULE_INIT(polymorphism)
    -{
    -    class_<PCallback,boost::noncopyable>("P")
    -        .def("f", pure_virtual(&P::f))
    -        ;
    -
    -    class_<ACallback,boost::noncopyable>("A")
    -        .def("f", &A::f, &ACallback::default_f)
    -        ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/def_hpp.html b/doc/html/reference/high_level_components/def_hpp.html deleted file mode 100644 index 1862fd3c..00000000 --- a/doc/html/reference/high_level_components/def_hpp.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -def.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - def() - is the function which can be used to expose C++ functions and callable - objects as Python functions in the current scope. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/def_hpp/example.html b/doc/html/reference/high_level_components/def_hpp/example.html deleted file mode 100644 index 40ee1773..00000000 --- a/doc/html/reference/high_level_components/def_hpp/example.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/def.hpp>
    -#include <boost/python/module.hpp>
    -#include <boost/python/args.hpp>
    -
    -using namespace boost::python;
    -
    -char const* foo(int x, int y) { return "foo"; }
    -
    -BOOST_PYTHON_MODULE(def_test)
    -{
    -    def("foo", foo, args("x", "y"), "foo's docstring");
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/def_hpp/functions.html b/doc/html/reference/high_level_components/def_hpp/functions.html deleted file mode 100644 index 025bf72d..00000000 --- a/doc/html/reference/high_level_components/def_hpp/functions.html +++ /dev/null @@ -1,180 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class F>
    -void def(char const* name, F f);
    -
    -template <class Fn, class A1>
    -void def(char const* name, Fn fn, A1 const&);
    -
    -template <class Fn, class A1, class A2>
    -void def(char const* name, Fn fn, A1 const&, A2 const&);
    -
    -template <class Fn, class A1, class A2, class A3>
    -void def(char const* name, Fn fn, A1 const&, A2 const&, A3 const&);
    -
    -
    -

    -
    -
    Requires
    -
    -

    - name is an ntbs which conforms to Python's identifier naming rules. -

    -
      -
    • - If Fn is [derived - from] object, it will be added to the current scope as a single - overload. To be useful, fn should be callable. -
    • -
    • -

      - If a1 is the result of an overload-dispatch-expression, only - the second form is allowed and fn must be a pointer to function - or pointer to member function whose arity is the same as A1's - maximum arity. -

      -

      - Effects: For each prefix P of - Fn's sequence of argument types, beginning with the one whose - length is A1's minimum arity, adds a name(...) function overload - to the current scope. Each overload generated invokes a1's call-expression - with P, using a copy of a1's call policies. If the longest valid - prefix of A1 contains N types and a1 holds M keywords, an initial - sequence of the keywords are used for all but the first N - M - arguments of each overload. -

      -
    • -
    • -

      - Otherwise, fn must be a non-null function or member function - pointer, and a single function overload built around fn is added - to the current scope. If any of a1-a3 are supplied, they may - be selected in any order from the table below. -

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

      - Mnemonic Name -

      -
      -

      - Requirements/Type properties -

      -
      -

      - Effects -

      -
      -

      - docstring -

      -
      -

      - Any ntbs -

      -
      -

      - Value will be bound to the __doc__ attribute of the - resulting method overload. -

      -
      -

      - policies -

      -
      -

      - A model of CallPolicies -

      -
      -

      - A copy will be used as the call policies of the resulting - method overload. -

      -
      -

      - keywords -

      -
      -

      - The result of a keyword-expression specifying no more - arguments than the arity of fn. -

      -
      -

      - A copy will be used as the call policies of the resulting - method overload. -

      -
      -
    • -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/def_visitor_hpp.html b/doc/html/reference/high_level_components/def_visitor_hpp.html deleted file mode 100644 index e33a6685..00000000 --- a/doc/html/reference/high_level_components/def_visitor_hpp.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -def_visitor.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/def_visitor.hpp> provides a generic visitation interface - through which the class_ def member functionality can be extended non-intrusively - to avoid cluttering the class_ interface. It declares the def_visitor<T> - class template, which is parameterized on the derived type DerivedVisitor, - which provides the actual def functionality through its visit member functions. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/def_visitor_hpp/class_def_visitor.html b/doc/html/reference/high_level_components/def_visitor_hpp/class_def_visitor.html deleted file mode 100644 index cce83cf3..00000000 --- a/doc/html/reference/high_level_components/def_visitor_hpp/class_def_visitor.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -Class def_visitor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The class def_visitor is a base class paramaterized by its derived class. - The def_visitor class is a protocol class. Its derived class, DerivedVisitor, - is expected to have a member function visit. The def_visitor class is never - instantiated directly. Instead, an instance of its subclass, DerivedVisitor, - is passed on as an argument to the class_ def member function. -

    -
    namespace boost { namespace python {
    -
    -    template <class DerivedVisitor>
    -    class def_visitor {};
    -}
    -
    -
    -

    -
    -
    Requires
    -
    -

    - The client supplied class DerivedVisitor template parameter is expected - to: * be privately derived from def_visitor * grant friend access - to class def_visitor_access * define either or both visit member - functions listed in the table below: -

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

    - Expression -

    -
    -

    - Return Type -

    -
    -

    - Requirements -

    -
    -

    - Effects -

    -
    -

    - visitor.visit(cls) -

    -
    -

    - void -

    -
    -

    - cls is an instance of a class_ being wrapped to Python. - visitor is a def_visitor derived class. -

    -
    -

    - A call to cls.def(visitor) forwards to this member function. -

    -
    -

    - visitor.visit(cls, name, options) -

    -
    -

    - void -

    -
    -

    - cls is a class_ instance, name is a C string. visitor is - a def_visitor derived class. options is a context specific - optional argument. -

    -
    -

    - A call to cls.def(name, visitor) or cls.def(name, visitor, - options) forwards to this member function. -

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/def_visitor_hpp/example.html b/doc/html/reference/high_level_components/def_visitor_hpp/example.html deleted file mode 100644 index 1ae66b2d..00000000 --- a/doc/html/reference/high_level_components/def_visitor_hpp/example.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    class X {/*...*/};
    -
    -class my_def_visitor : boost::python::def_visitor<my_def_visitor>
    -{
    -    friend class def_visitor_access;
    -
    -    template <class classT>
    -    void visit(classT& c) const
    -    {
    -        c
    -            .def("foo", &my_def_visitor::foo)
    -            .def("bar", &my_def_visitor::bar)
    -        ;
    -    }
    -
    -    static void foo(X& self);
    -    static void bar(X& self);
    -};
    -
    -BOOST_PYTHON_MODULE(my_ext)
    -{
    -    class_<X>("X")
    -        .def(my_def_visitor())
    -    ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp.html b/doc/html/reference/high_level_components/docstring_options_hpp.html deleted file mode 100644 index 54ee0f5d..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -docstring_options.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Boost.Python supports user-defined docstrings with automatic appending - of C++ signatures. These features are enabled by default. The class docstring_options - is available to selectively suppress the user-defined docstrings, signatures, - or both. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options.html b/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options.html deleted file mode 100644 index f8cb032d..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -Class docstring_options - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Controls the appearance of docstrings of wrapped functions and member functions - for the life-time of the instance. The instances are noncopyable to eliminate - the possibility of surprising side effects. -

    -
    namespace boost { namespace python {
    -
    -    class docstring_options : boost::noncopyable
    -    {
    -      public:
    -          docstring_options(bool show_all=true);
    -          docstring_options(bool show_user_defined, bool show_signatures);
    -          docstring_options(bool show_user_defined, bool show_py_signatures, bool show_cpp_signatures);
    -          ~docstring_options();
    -          void disable_user_defined();
    -          void enable_user_defined();
    -          void disable_signatures();
    -          void enable_signatures();
    -          void disable_py_signatures();
    -          void enable_py_signatures();
    -          void disable_cpp_signatures();
    -          void enable_cpp_signatures();
    -          void disable_all();
    -          void enable_all();
    -    };
    -
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options_destruct.html b/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options_destruct.html deleted file mode 100644 index 428118db..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options_destruct.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Class docstring_options destructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ~docstring_options();
    -
    -

    -
    -
    Effects
    -

    - Restores the previous state of the docstring options. In particular, - if docstring_options instances are in nested C++ scopes the settings - effective in the enclosing scope are restored. If the last docstring_options - instance goes out of scope the default "all on" settings - are restored. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options_modifier.html b/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options_modifier.html deleted file mode 100644 index 19472256..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/class_docstring_options_modifier.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Class docstring_options modifier functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    void disable_user_defined();
    -void enable_user_defined();
    -void disable_signatures();
    -void enable_signatures();
    -void disable_py_signatures();
    -void enable_py_signatures();
    -void disable_cpp_signatures();
    -void enable_cpp_signatures();
    -void disable_all();
    -void enable_all();
    -
    -

    - These member functions dynamically change the appearance of docstrings - in the code that follows. The *_user_defined() and *_signatures() member - functions are provided for fine-grained control. The *_all() member functions - are convenient shortcuts to manipulate all settings simultaneously. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/class_dostring_options_construct.html b/doc/html/reference/high_level_components/docstring_options_hpp/class_dostring_options_construct.html deleted file mode 100644 index e73a5747..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/class_dostring_options_construct.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -Class dostring_options constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    docstring_options(bool show_all=true);
    -
    -
    -

    -
    -
    Effects
    -

    - Constructs a docstring_options object which controls the appearance - of function and member-function docstrings defined in the code that - follows. If show_all is true, both the user-defined docstrings and - the automatically generated Python and C++ signatures are shown. - If show_all is false the __doc__ attributes are None. -

    -
    -
    -
    docstring_options(bool show_user_defined, bool show_signatures);
    -
    -
    -

    -
    -
    Effects
    -

    - Constructs a docstring_options object which controls the appearance - of function and member-function docstrings defined in the code that - follows. Iff show_user_defined is true, the user-defined docstrings - are shown. Iff show_signatures is true, Python and C++ signatures - are automatically added. If both show_user_defined and show_signatures - are false, the __doc__ attributes are None. -

    -
    -
    -
    docstring_options(bool show_user_defined, bool show_py_signatures, bool show_cpp_signatures);
    -
    -
    -

    -
    -
    Effects
    -

    - Constructs a docstring_options object which controls the appearance - of function and member-function docstrings defined in the code that - follows. Iff show_user_defined is true, the user-defined docstrings - are shown. Iff show_py_signatures is true, Python signatures are - automatically added. Iff show_cpp_signatures is true, C++ signatures - are automatically added. If all parameters are false, the __doc__ - attributes are None. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp.html b/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp.html deleted file mode 100644 index 51ebdc8e..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -docstring_options.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/class_docstring_options.html b/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/class_docstring_options.html deleted file mode 100644 index 68d7539c..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/class_docstring_options.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -Class docstring_options - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/class_dostring_options_construct.html b/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/class_dostring_options_construct.html deleted file mode 100644 index 51d3326b..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/class_dostring_options_construct.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Class dostring_options constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/example.html b/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/example.html deleted file mode 100644 index 503009a1..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/docstring_options_hpp/example.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/example.html b/doc/html/reference/high_level_components/docstring_options_hpp/example.html deleted file mode 100644 index a9612dc0..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/example.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/docstring_options.hpp>
    -
    -void foo() {}
    -
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    using namespace boost::python;
    -    docstring_options doc_options(DEMO_DOCSTRING_SHOW_ALL);
    -    def("foo", foo, "foo doc");
    -}
    -
    -

    - If compiled with -DDEMO_DOCSTRING_SHOW_ALL=true: -

    -
    >>> import demo
    ->>> print demo.foo.__doc__
    -foo() -> None : foo doc
    -C++ signature:
    -    foo(void) -> void
    -
    -

    - If compiled with -DDEMO_DOCSTRING_SHOW_ALL=false: -

    -
    >>> import demo
    ->>> print demo.foo.__doc__
    -None
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/example/selective_suppressions.html b/doc/html/reference/high_level_components/docstring_options_hpp/example/selective_suppressions.html deleted file mode 100644 index 50ef356a..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/example/selective_suppressions.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -Selective suppressions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/args.hpp>
    -#include <boost/python/docstring_options.hpp>
    -
    -int foo1(int i) { return i; }
    -int foo2(long l) { return static_cast<int>(l); }
    -int foo3(float f) { return static_cast<int>(f); }
    -int foo4(double d) { return static_cast<int>(d); }
    -
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    using namespace boost::python;
    -    docstring_options doc_options;
    -    def("foo1", foo1, arg("i"), "foo1 doc");
    -    doc_options.disable_user_defined();
    -    def("foo2", foo2, arg("l"), "foo2 doc");
    -    doc_options.disable_signatures();
    -    def("foo3", foo3, arg("f"), "foo3 doc");
    -    doc_options.enable_user_defined();
    -    def("foo4", foo4, arg("d"), "foo4 doc");
    -    doc_options.enable_py_signatures();
    -    def("foo5", foo4, arg("d"), "foo5 doc");
    -    doc_options.disable_py_signatures();
    -    doc_options.enable_cpp_signatures();
    -    def("foo6", foo4, arg("d"), "foo6 doc");
    -}
    -
    -

    - Python code: -

    -
    >>> import demo
    ->>> print demo.foo1.__doc__
    -foo1( (int)i) -> int : foo1 doc
    -C++ signature:
    -    foo1(int i) -> int
    ->>> print demo.foo2.__doc__
    -foo2( (int)l) -> int :
    -C++ signature:
    -    foo2(long l) -> int
    ->>> print demo.foo3.__doc__
    -None
    ->>> print demo.foo4.__doc__
    -foo4 doc
    ->>> print demo.foo5.__doc__
    -foo5( (float)d) -> int : foo5 doc
    ->>> print demo.foo6.__doc__
    -foo6 doc
    -C++ signature:
    -    foo6(double d) -> int
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/example/wrapping_from_multiple_c_scopes.html b/doc/html/reference/high_level_components/docstring_options_hpp/example/wrapping_from_multiple_c_scopes.html deleted file mode 100644 index 03868e49..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/example/wrapping_from_multiple_c_scopes.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -Wrapping from multiple C++ scopes - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/args.hpp>
    -#include <boost/python/docstring_options.hpp>
    -
    -int foo1(int i) { return i; }
    -int foo2(long l) { return static_cast<int>(l); }
    -
    -int bar1(int i) { return i; }
    -int bar2(long l) { return static_cast<int>(l); }
    -
    -namespace {
    -
    -    void wrap_foos()
    -    {
    -        using namespace boost::python;
    -        // no docstring_options here
    -        //   -> settings from outer C++ scope are in effect
    -        def("foo1", foo1, arg("i"), "foo1 doc");
    -        def("foo2", foo2, arg("l"), "foo2 doc");
    -    }
    -
    -    void wrap_bars()
    -    {
    -        using namespace boost::python;
    -        bool show_user_defined = true;
    -        bool show_signatures = false;
    -        docstring_options doc_options(show_user_defined, show_signatures);
    -        def("bar1", bar1, arg("i"), "bar1 doc");
    -        def("bar2", bar2, arg("l"), "bar2 doc");
    -    }
    -}
    -
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    boost::python::docstring_options doc_options(false);
    -    wrap_foos();
    -    wrap_bars();
    -}
    -
    -

    - Python code: -

    -
    >>> import demo
    ->>> print demo.foo1.__doc__
    -None
    ->>> print demo.foo2.__doc__
    -None
    ->>> print demo.bar1.__doc__
    -bar1 doc
    ->>> print demo.bar2.__doc__
    -bar2 doc
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/template.html b/doc/html/reference/high_level_components/docstring_options_hpp/template.html deleted file mode 100644 index ee6b6728..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/template.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/template/class_template.html b/doc/html/reference/high_level_components/docstring_options_hpp/template/class_template.html deleted file mode 100644 index 48e7e655..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/template/class_template.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -Class template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/template/class_template_constructors.html b/doc/html/reference/high_level_components/docstring_options_hpp/template/class_template_constructors.html deleted file mode 100644 index 7ae1bad1..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/template/class_template_constructors.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Class template constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    -

    -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp/template/example.html b/doc/html/reference/high_level_components/docstring_options_hpp/template/example.html deleted file mode 100644 index 52a8fcd4..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp/template/example.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -Example - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    - - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp0.html b/doc/html/reference/high_level_components/docstring_options_hpp0.html deleted file mode 100644 index 1e8c6acb..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp0.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -docstring_options.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp0/class_docstring_options.html b/doc/html/reference/high_level_components/docstring_options_hpp0/class_docstring_options.html deleted file mode 100644 index d9f9f2a7..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp0/class_docstring_options.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -Class docstring_options - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp0/class_dostring_options_construct.html b/doc/html/reference/high_level_components/docstring_options_hpp0/class_dostring_options_construct.html deleted file mode 100644 index 24978660..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp0/class_dostring_options_construct.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Class dostring_options constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/docstring_options_hpp0/example.html b/doc/html/reference/high_level_components/docstring_options_hpp0/example.html deleted file mode 100644 index ad41df43..00000000 --- a/doc/html/reference/high_level_components/docstring_options_hpp0/example.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/enum_hpp.html b/doc/html/reference/high_level_components/enum_hpp.html deleted file mode 100644 index 362417ae..00000000 --- a/doc/html/reference/high_level_components/enum_hpp.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -enum.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/enum.hpp> defines the interface through which users - expose their C++ enumeration types to Python. It declares the enum_ class - template, which is parameterized on the enumeration type being exposed. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/enum_hpp/class_template_enum.html b/doc/html/reference/high_level_components/enum_hpp/class_template_enum.html deleted file mode 100644 index 2d6d23d1..00000000 --- a/doc/html/reference/high_level_components/enum_hpp/class_template_enum.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class template enum_ - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Creates a Python class derived from Python's int type which is associated - with the C++ type passed as its first parameter. -

    -
    namespace boost { namespace python
    -{
    -  template <class T>
    -  class enum_ : public object
    -  {
    -    enum_(char const* name, char const* doc = 0);
    -    enum_<T>& value(char const* name, T);
    -    enum_<T>& export_values();
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/enum_hpp/class_template_enum_constructors.html b/doc/html/reference/high_level_components/enum_hpp/class_template_enum_constructors.html deleted file mode 100644 index 4d737819..00000000 --- a/doc/html/reference/high_level_components/enum_hpp/class_template_enum_constructors.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class template enum_ constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    enum_(char const* name, char const* doc=0);
    -
    -

    -
    -
    Requires
    -

    - name is an ntbs which conforms to Python's identifier naming rules. -

    -
    Effects
    -

    - Constructs an enum_ object holding a Python extension type derived - from int which is named name. The named attribute of the current - scope is bound to the new extension type. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/enum_hpp/class_template_enum_modifier_fun.html b/doc/html/reference/high_level_components/enum_hpp/class_template_enum_modifier_fun.html deleted file mode 100644 index b1cb451d..00000000 --- a/doc/html/reference/high_level_components/enum_hpp/class_template_enum_modifier_fun.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Class template enum_ modifier functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    enum_<T>& value(char const* name, T x);
    -
    -

    -
    -
    Requires
    -

    - name is an ntbs which conforms to Python's identifier naming rules. -

    -
    Effects
    -

    - adds an instance of the wrapped enumeration type with value x to - the type's dictionary as the named attribute. -

    -
    Returns
    -

    - *this -

    -
    -
    -
    enum_<T>& export_values();
    -
    -

    -
    -
    Effects
    -

    - sets attributes in the current scope with the same names and values - as all enumeration values exposed so far by calling value(). -

    -
    Returns
    -

    - *this -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/enum_hpp/example.html b/doc/html/reference/high_level_components/enum_hpp/example.html deleted file mode 100644 index b43bc20f..00000000 --- a/doc/html/reference/high_level_components/enum_hpp/example.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition -

    -
    #include <boost/python/enum.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/module.hpp>
    -
    -using namespace boost::python;
    -
    -enum color { red = 1, green = 2, blue = 4 };
    -
    -color identity_(color x) { return x; }
    -
    -BOOST_PYTHON_MODULE(enums)
    -{
    -    enum_<color>("color")
    -        .value("red", red)
    -        .value("green", green)
    -        .export_values()
    -        .value("blue", blue)
    -        ;
    -
    -    def("identity", identity_);
    -}
    -
    -

    - Interactive Python: -

    -
    >>> from enums import *
    -
    ->>> identity(red)
    -enums.color.red
    -
    ->>> identity(color.red)
    -enums.color.red
    -
    ->>> identity(green)
    -enums.color.green
    -
    ->>> identity(color.green)
    -enums.color.green
    -
    ->>> identity(blue)
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -NameError: name 'blue' is not defined
    -
    ->>> identity(color.blue)
    -enums.color.blue
    -
    ->>> identity(color(1))
    -enums.color.red
    -
    ->>> identity(color(2))
    -enums.color.green
    -
    ->>> identity(color(3))
    -enums.color(3)
    -
    ->>> identity(color(4))
    -enums.color.blue
    -
    ->>> identity(1)
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -TypeError: bad argument type for built-in operation
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/errors_hpp.html b/doc/html/reference/high_level_components/errors_hpp.html deleted file mode 100644 index dca8ad10..00000000 --- a/doc/html/reference/high_level_components/errors_hpp.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -errors.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/errors.hpp> provides types and functions for managing - and translating between Python and C++ exceptions. This is relatively low-level - functionality that is mostly used internally by Boost.Python. Users should - seldom need it. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/errors_hpp/class_error_already_set.html b/doc/html/reference/high_level_components/errors_hpp/class_error_already_set.html deleted file mode 100644 index 38204948..00000000 --- a/doc/html/reference/high_level_components/errors_hpp/class_error_already_set.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Class error_already_set - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - error_already_set is an exception type which can be thrown to indicate - that a Python error has occurred. If thrown, the precondition is that PyErr_Occurred() - returns a value convertible to true. Portable code shouldn't throw this - exception type directly, but should instead use throw_error_already_set(), - below. -

    -
    namespace boost { namespace python
    -{
    -    class error_already_set {};
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/errors_hpp/example.html b/doc/html/reference/high_level_components/errors_hpp/example.html deleted file mode 100644 index cac79234..00000000 --- a/doc/html/reference/high_level_components/errors_hpp/example.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <string>
    -#include <boost/python/errors.hpp>
    -#include <boost/python/object.hpp>
    -#include <boost/python/handle.hpp>
    -
    -// Returns a std::string which has the same value as obj's "__name__"
    -// attribute.
    -std::string get_name(boost::python::object obj)
    -{
    -   // throws if there's no __name__ attribute
    -   PyObject* p = boost::python::expect_non_null(
    -      PyObject_GetAttrString(obj.ptr(), "__name__"));
    -
    -   char const* s = PyString_AsString(p);
    -   if (s != 0)
    -        Py_DECREF(p);
    -
    -   // throws if it's not a Python string
    -   std::string result(
    -      boost::python::expect_non_null(
    -         PyString_AsString(p)));
    -
    -   Py_DECREF(p); // Done with p
    -
    -   return result;
    -}
    -
    -//
    -// Demonstrate form 1 of handle_exception
    -//
    -
    -// Place into result a Python Int object whose value is 1 if a and b have
    -// identical "__name__" attributes, 0 otherwise.
    -void same_name_impl(PyObject*& result, boost::python::object a, boost::python::object b)
    -{
    -   result = PyInt_FromLong(
    -      get_name(a) == get_name(a2));
    -}
    -
    -object borrowed_object(PyObject* p)
    -{
    -   return boost::python::object(
    -        boost::python::handle<>(
    -             boost::python::borrowed(a1)));
    -}
    -
    -// This is an example Python 'C' API interface function
    -extern "C" PyObject*
    -same_name(PyObject* args, PyObject* keywords)
    -{
    -   PyObject* a1;
    -   PyObject* a2;
    -   PyObject* result = 0;
    -
    -   if (!PyArg_ParseTuple(args, const_cast<char*>("OO"), &a1, &a2))
    -      return 0;
    -
    -   // Use boost::bind to make an object compatible with
    -   // boost::Function0<void>
    -   if (boost::python::handle_exception(
    -         boost::bind<void>(same_name_impl, boost::ref(result), borrowed_object(a1), borrowed_object(a2))))
    -   {
    -      // an exception was thrown; the Python error was set by
    -      // handle_exception()
    -      return 0;
    -   }
    -
    -   return result;
    -}
    -
    -//
    -// Demonstrate form 2 of handle_exception. Not well-supported by all
    -// compilers.
    -//
    -extern "C" PyObject*
    -same_name2(PyObject* args, PyObject* keywords)
    -{
    -   PyObject* a1;
    -   PyObject* a2;
    -   PyObject* result = 0;
    -
    -   if (!PyArg_ParseTuple(args, const_cast<char*>("OO"), &a1, &a2))
    -      return 0;
    -
    -   try {
    -      return PyInt_FromLong(
    -         get_name(borrowed_object(a1)) == get_name(borrowed_object(a2)));
    -   }
    -   catch(...)
    -   {
    -      // If an exception was thrown, translate it to Python
    -      boost::python::handle_exception();
    -      return 0;
    -   }
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/errors_hpp/functions.html b/doc/html/reference/high_level_components/errors_hpp/functions.html deleted file mode 100644 index 8bc239f5..00000000 --- a/doc/html/reference/high_level_components/errors_hpp/functions.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T> bool handle_exception(T f) throw();
    -void handle_exception() throw();
    -
    -
    -

    -
    -
    Requires
    -

    - The first form requires that the expression function0<void>(f) - is valid. The second form requires that a C++ exception is currently - being handled (see section 15.1 in the C++ standard). -

    -
    Effects
    -

    - The first form calls f() inside a try block which first attempts - to use all registered exception translators. If none of those translates - the exception, the catch clauses then set an appropriate Python exception - for the C++ exception caught, returning true if an exception was - thrown, false otherwise. The second form passes a function which - rethrows the exception currently being handled to the first form. -

    -
    Postconditions
    -

    - No exception is being handled -

    -
    Throws
    -

    - nothing -

    -
    Rationale
    -

    - At inter-language boundaries it is important to ensure that no C++ - exceptions escape, since the calling language usually doesn't have - the equipment necessary to properly unwind the stack. Use handle_exception - to manage exception translation whenever your C++ code is called - directly from the Python API. This is done for you automatically - by the usual function wrapping facilities: make_function(), make_constructor(), - def() and class_::def(). The second form can be more convenient to - use (see the example below), but various compilers have problems - when exceptions are rethrown from within an enclosing try block. -

    -
    -
    -
    template <class T> T* expect_non_null(T* x);
    -
    -

    -
    -
    Returns
    -

    - x -

    -
    Throws
    -

    - error_already_set() iff x == 0. -

    -
    Rationale
    -

    - Simplifies error-handling when calling functions in the Python/C - API which return 0 on error. -

    -
    -
    -
    void throw_error_already_set();
    -
    -

    -
    -
    Effects
    -

    - throw error_already_set(); -

    -
    Rationale
    -

    - Simplifies error-handling when calling functions in the Python/C - API which return 0 on error. -

    -
    -
    -
    void throw_error_already_set();
    -
    -

    -
    -
    Effects
    -

    - throw error_already_set(); -

    -
    Rationale
    -

    - Many platforms and compilers are not able to consistently catch exceptions - thrown across shared library boundaries. Using this function from - the Boost.Python library ensures that the appropriate catch block - in handle_exception() can catch the exception. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/exception_translator.html b/doc/html/reference/high_level_components/exception_translator.html deleted file mode 100644 index 72026d87..00000000 --- a/doc/html/reference/high_level_components/exception_translator.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -exception_translator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - As described here, it is important to make sure that exceptions thrown - by C++ code do not pass into the Python interpreter core. By default, Boost.Python - translates all C++ exceptions thrown by wrapped functions and module init - functions into Python, but the default translators are extremely limited: - most C++ exceptions will appear in Python as a RuntimeError exception whose - representation is 'Unidentifiable C++ Exception'. To produce better error - messages, users can register additional exception translators as described - below. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/exception_translator/example.html b/doc/html/reference/high_level_components/exception_translator/example.html deleted file mode 100644 index e4cddb45..00000000 --- a/doc/html/reference/high_level_components/exception_translator/example.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/exception_translator.hpp>
    -#include <exception>
    -
    -struct my_exception : std::exception
    -{
    -  char const* what() throw() { return "One of my exceptions"; }
    -};
    -
    -void translate(my_exception const& e)
    -{
    -    // Use the Python 'C' API to set up an exception object
    -    PyErr_SetString(PyExc_RuntimeError, e.what());
    -}
    -
    -void something_which_throws()
    -{
    -    ...
    -    throw my_exception();
    -    ...
    -}
    -
    -BOOST_PYTHON_MODULE(exception_translator_ext)
    -{
    -  using namespace boost::python;
    -  register_exception_translator<my_exception>(&translate);
    -
    -  def("something_which_throws", something_which_throws);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/exception_translator/function_register_exception_tran.html b/doc/html/reference/high_level_components/exception_translator/function_register_exception_tran.html deleted file mode 100644 index a514ddd3..00000000 --- a/doc/html/reference/high_level_components/exception_translator/function_register_exception_tran.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Function register_exception_translator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template<class ExceptionType, class Translate>
    -void register_exception_translator(Translate translate);
    -
    -
    -

    -
    -
    Requires
    -
    -

    - Translate is Copyconstructible, and the following code must be well-formed: -

    -
    void f(ExceptionType x) { translate(x); }
    -

    - . The expression translate(x) must either throw a C++ exception, - or a subsequent call to PyErr_Occurred() must return 1. -

    -
    -
    Effects
    -

    - Adds a copy of translate to the sequence of exception translators - tried when Boost.Python catches an exception that is about to pass - into Python's core interpreter. The new translator will get "first - shot" at translating all exceptions matching the catch clause - shown above. Any subsequently-registered translators will be allowed - to translate the exception earlier. A translator which cannot translate - a given C++ exception can re-throw it, and it will be handled by - a translator which was registered earlier (or by the default translator). -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/exception_translator_hpp.html b/doc/html/reference/high_level_components/exception_translator_hpp.html deleted file mode 100644 index 7e30f2b5..00000000 --- a/doc/html/reference/high_level_components/exception_translator_hpp.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -exception_translator.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - As described here, it is important to make sure that exceptions thrown - by C++ code do not pass into the Python interpreter core. By default, Boost.Python - translates all C++ exceptions thrown by wrapped functions and module init - functions into Python, but the default translators are extremely limited: - most C++ exceptions will appear in Python as a RuntimeError exception whose - representation is 'Unidentifiable C++ Exception'. To produce better error - messages, users can register additional exception translators as described - below. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/exception_translator_hpp/example.html b/doc/html/reference/high_level_components/exception_translator_hpp/example.html deleted file mode 100644 index 7245ffa3..00000000 --- a/doc/html/reference/high_level_components/exception_translator_hpp/example.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/def.hpp>
    -#include <boost/python/exception_translator.hpp>
    -#include <exception>
    -
    -struct my_exception : std::exception
    -{
    -  char const* what() throw() { return "One of my exceptions"; }
    -};
    -
    -void translate(my_exception const& e)
    -{
    -    // Use the Python 'C' API to set up an exception object
    -    PyErr_SetString(PyExc_RuntimeError, e.what());
    -}
    -
    -void something_which_throws()
    -{
    -    ...
    -    throw my_exception();
    -    ...
    -}
    -
    -BOOST_PYTHON_MODULE(exception_translator_ext)
    -{
    -  using namespace boost::python;
    -  register_exception_translator<my_exception>(&translate);
    -
    -  def("something_which_throws", something_which_throws);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/exception_translator_hpp/function_register_exception_tran.html b/doc/html/reference/high_level_components/exception_translator_hpp/function_register_exception_tran.html deleted file mode 100644 index b47868eb..00000000 --- a/doc/html/reference/high_level_components/exception_translator_hpp/function_register_exception_tran.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Function register_exception_translator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template<class ExceptionType, class Translate>
    -void register_exception_translator(Translate translate);
    -
    -
    -

    -
    -
    Requires
    -
    -

    - Translate is Copyconstructible, and the following code must be well-formed: -

    -
    void f(ExceptionType x) { translate(x); }
    -

    - . The expression translate(x) must either throw a C++ exception, - or a subsequent call to PyErr_Occurred() must return 1. -

    -
    -
    Effects
    -

    - Adds a copy of translate to the sequence of exception translators - tried when Boost.Python catches an exception that is about to pass - into Python's core interpreter. The new translator will get "first - shot" at translating all exceptions matching the catch clause - shown above. Any subsequently-registered translators will be allowed - to translate the exception earlier. A translator which cannot translate - a given C++ exception can re-throw it, and it will be handled by - a translator which was registered earlier (or by the default translator). -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/init_hpp.html b/doc/html/reference/high_level_components/init_hpp.html deleted file mode 100644 index 6ad13398..00000000 --- a/doc/html/reference/high_level_components/init_hpp.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -init.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - - -

    - <boost/python/init.hpp> defines the interface for exposing C++ constructors - to Python as extension class __init__ functions. -

    -
    - -

    - An init-expression is used to describe a family of __init__ methods to - be generated for an extension class, and the result has the following - properties: -

    -
    -

    -
    -
    docstring
    -

    - An ntbs whose value will bound to the method's __doc__ attribute -

    -
    keywords
    -

    - A keyword-expression which will be used to name (a trailing subsequence - of) the arguments to the generated __init__ function(s). -

    -
    call_policies
    -

    - An instance of a model of CallPolicies. -

    -
    argument_types
    -

    - An MPL sequence of C++ argument types which will be used to construct - the wrapped C++ object. An init expression has one or more valid - prefixes which are given by a sequence of prefixes of its argument - types. -

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/init_hpp/class_template_init.html b/doc/html/reference/high_level_components/init_hpp/class_template_init.html deleted file mode 100644 index f61aa29b..00000000 --- a/doc/html/reference/high_level_components/init_hpp/class_template_init.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -Class template init - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - A MPL sequence which can be used to specify a family of one or more __init__ - functions. Only the last Ti supplied may be an instantiation of optional<...>. -

    -
    namespace boost { namespace python
    -{
    -  template <T1 = unspecified,...Tn = unspecified>
    -  struct init
    -  {
    -      init(char const* doc = 0);
    -      template <class Keywords> init(Keywords const& kw, char const* doc = 0);
    -      template <class Keywords> init(char const* doc, Keywords const& kw);
    -
    -      template <class CallPolicies>
    -      unspecified operator[](CallPolicies const& policies) const
    -  };
    -}}
    -
    -
    - -
    init(char const* doc = 0);
    -template <class Keywords> init(Keywords const& kw, char const* doc = 0);
    -template <class Keywords> init(char const* doc, Keywords const& kw);
    -
    -
    -

    -
    -
    Requires
    -

    - If supplied, doc is an ntbs. If supplied, kw is the result of a -

    -
    Effects
    -
    -

    - The result is an init-expression whose docstring is doc and whose - keywords are a reference to kw. If the first form is used, the - resulting expression's keywords are empty. The expression's call - policies are an instance of default_call_policies. If Tn is optional<U1, - U2,... Um>, the expression's valid prefixes are given by: -

    -
    (T1, T2,...Tn-1), (T1, T2,...Tn-1 , U1), (T1, T2,...Tn-1 , U1, U2), ...(T1, T2,...Tn-1 , U1, U2,...Um)
    -

    - . Otherwise, the expression has one valid prefix given by the the - template arguments the user specified. -

    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/init_hpp/class_template_init/class_template_init_observer_fun.html b/doc/html/reference/high_level_components/init_hpp/class_template_init/class_template_init_observer_fun.html deleted file mode 100644 index 7dfd43ab..00000000 --- a/doc/html/reference/high_level_components/init_hpp/class_template_init/class_template_init_observer_fun.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class template init observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class Policies>
    -unspecified operator[](Policies const& policies) const
    -
    -
    -

    -
    -
    Requires
    -

    - Policies is a model of CallPolicies. -

    -
    Effects
    -

    - Returns a new init-expression with all the same properties as the - init object except that its call policies are replaced by a reference - to policies. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/init_hpp/class_template_optional.html b/doc/html/reference/high_level_components/init_hpp/class_template_optional.html deleted file mode 100644 index 934459d6..00000000 --- a/doc/html/reference/high_level_components/init_hpp/class_template_optional.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Class template optional - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A MPL sequence which can be used to specify the optional arguments to an - __init__ function. -

    -
    namespace boost { namespace python
    -{
    -  template <T1 = unspecified,...Tn = unspecified>
    -  struct optional {};
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/init_hpp/example.html b/doc/html/reference/high_level_components/init_hpp/example.html deleted file mode 100644 index e7002a94..00000000 --- a/doc/html/reference/high_level_components/init_hpp/example.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Given the C++ declarations: -

    -
    class Y;
    -class X
    -{
    - public:
    -   X(int x, Y* y) : m_y(y) {}
    -   X(double);
    - private:
    -   Y* m_y;
    -};
    -
    -

    - A corresponing Boost.Python extension class can be created with: -

    -
    using namespace boost::python;
    -
    -class_<X>("X", "This is X's docstring.",
    -          init<int,char const*>(args("x","y"), "X.__init__'s docstring")[
    -                with_custodian_and_ward<1,3>()]
    -          )
    -   .def(init<double>())
    -   ;
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/iterator_hpp.html b/doc/html/reference/high_level_components/iterator_hpp.html deleted file mode 100644 index 6e183c09..00000000 --- a/doc/html/reference/high_level_components/iterator_hpp.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -iterator.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/iterator.hpp> provides types and functions for creating - Python iterators from C++ Containers and Iterators. Note that if your class_ - supports random-access iterators, implementing __getitem__ - (also known as the Sequence Protocol) may serve you better than using this - facility: Python will automatically create an iterator type for you (see - iter()), - and each access can be range-checked, leaving no possiblity of accessing - through an invalidated C++ iterator. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterator.html b/doc/html/reference/high_level_components/iterator_hpp/class_template_iterator.html deleted file mode 100644 index 88bc5b70..00000000 --- a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterator.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -Class template iterator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Instances of iterator<C,P> hold a reference to a callable Python - object which, when invoked from Python, expects a single argument c convertible - to C and creates a Python iterator that traverses [c.begin(), c.end()). The optional CallPolicies P can be - used to control how elements are returned during iteration. -

    -

    - In the table below, c is an instance of Container. -

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

    - Template Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Default -

    -
    -

    - Container -

    -
    -

    - [c.begin(),c.end()) is a valid Iterator range. -

    -
    -

    - The result will convert its argument to c and call c.begin() - and c.end() to acquire iterators. To invoke Container's const - begin() and end() functions, make it const. -

    -
    -
    -

    - NextPolicies -

    -
    -

    - A default-constructible model of CallPolicies. -

    -
    -

    - Applied to the resulting iterators' next() method. -

    -
    -

    - An unspecified model of CallPolicies which always makes a copy - of the result of deferencing the underlying C++ iterator -

    -
    -
    namespace boost { namespace python
    -  {
    -    template <class Container, class NextPolicies = unspecified>
    -    struct iterator : object
    -    {
    -      iterator();
    -    };
    -  }}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterator_construc.html b/doc/html/reference/high_level_components/iterator_hpp/class_template_iterator_construc.html deleted file mode 100644 index 082a5f04..00000000 --- a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterator_construc.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Class template iterator constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    iterator()
    -
    -

    -
    -
    Effects
    -
    -

    - Initializes its base class with the result of: -

    -
    range<NextPolicies>(&iterators<Container>::begin, &iterators<Container>::end)
    -
    -
    Postconditions
    -

    - this->get() points to a Python callable object which creates a - Python iterator as described above. -

    -
    Rationale
    -

    - Provides an easy way to create iterators for the common case where - a C++ class being wrapped provides begin() and end(). -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators.html b/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators.html deleted file mode 100644 index 5cf89e23..00000000 --- a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -Class template iterators - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A utility class template which provides a way to reliably call its argument's - begin() and end() member functions. Note that there is no portable way - to take the address of a member function of a C++ standard library container, - so iterators<> can be particularly helpful when wrapping them. -

    -

    - In the table below, x is an instance of C. -

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

    - Required Valid Expression -

    -
    -

    - Type -

    -
    -

    - x.begin() -

    -
    -

    - Convertible to C::const_iterator if C is a const type; convertible - to C::iterator otherwise. -

    -
    -

    - x.end() -

    -
    -

    - Convertible to C::const_iterator if C is a const type; convertible - to C::iterator otherwise. -

    -
    -
    namespace boost { namespace python
    -{
    -  template <class C>
    -  struct iterators
    -  {
    -      typedef typename C::const_iterator iterator;
    -      static iterator begin(C& x);
    -      static iterator end(C& x);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators_nested_.html b/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators_nested_.html deleted file mode 100644 index 8ecfa128..00000000 --- a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators_nested_.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Class template iterators nested types - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - If C is a const type, -

    -
    typedef typename C::const_iterator iterator;
    -

    - Otherwise: -

    -
    typedef typename C::iterator iterator;
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators_static_.html b/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators_static_.html deleted file mode 100644 index aa43c15d..00000000 --- a/doc/html/reference/high_level_components/iterator_hpp/class_template_iterators_static_.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class template iterators static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static iterator begin(C&);
    -
    -

    -
    -
    Returns
    -

    - x.begin() -

    -
    -
    -
    static iterator end(C&);
    -
    -

    -
    -
    Returns
    -

    - x.end() -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/iterator_hpp/example.html b/doc/html/reference/high_level_components/iterator_hpp/example.html deleted file mode 100644 index a6d1135d..00000000 --- a/doc/html/reference/high_level_components/iterator_hpp/example.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -
    -#include <vector>
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(demo)
    -{
    -    class_<std::vector<double> >("dvec")
    -        .def("__iter__", iterator<std::vector<double> >())
    -        ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/iterator_hpp/functions.html b/doc/html/reference/high_level_components/iterator_hpp/functions.html deleted file mode 100644 index 3630973d..00000000 --- a/doc/html/reference/high_level_components/iterator_hpp/functions.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class NextPolicies, class Target, class Accessor1, class Accessor2>
    -object range(Accessor1 start, Accessor2 finish);
    -
    -template <class NextPolicies, class Accessor1, class Accessor2>
    -object range(Accessor1 start, Accessor2 finish);
    -
    -template <class Accessor1, class Accessor2>
    -object range(Accessor1 start, Accessor2 finish);
    -
    -
    -

    -
    -
    Requires
    -

    - NextPolicies is a default-constructible model of CallPolicies. -

    -
    Effects
    -
    -

    - The first form creates a Python callable object which, when invoked, - converts its argument to a Target object x, and creates a Python - iterator which traverses [bind(start,_1)(x), bind(finish,_1)(x)), - applying NextPolicies to the iterator's next() function. The second - form is identical to the first, except that Target is deduced from - Accessor1 as follows: -

    -
      -
    1. - If Accessor1 is a function type, Target is the type of its first - argument. -
    2. -
    3. - If Accessor1 is a data member pointer of the form R (T::*), - Target is identical to T. -
    4. -
    5. - If Accessor1 is a member function pointer of the form R (T::*)(arguments...) - cv-opt, where cv-opt is an optional - cv-qualifier, Target is identical to T. -
    6. -
    -

    - The third form is identical to the second, except that NextPolicies - is an unspecified model of CallPolicies which always makes a copy - of the result of deferencing the underlying C++ iterator -

    -
    -
    Rationale
    -

    - The use of boost::bind() allows C++ iterators to be accessed through - functions, member functions or data member pointers. Customization - of NextPolicies (e.g. using return_internal_reference) is useful - when it is expensive to copy sequence elements of a wrapped class - type. Customization of Target is useful when Accessor1 is a function - object, or when a base class of the intended target type would otherwise - be deduced. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/module_hpp.html b/doc/html/reference/high_level_components/module_hpp.html deleted file mode 100644 index 90a5aef2..00000000 --- a/doc/html/reference/high_level_components/module_hpp.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -module.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - This header provides the basic facilities needed to create a Boost.Python - extension module. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/module_hpp/examples.html b/doc/html/reference/high_level_components/module_hpp/examples.html deleted file mode 100644 index 1cbf5bdd..00000000 --- a/doc/html/reference/high_level_components/module_hpp/examples.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - C++ module definition: -

    -
    #include <boost/python/module.hpp>
    -
    -BOOST_PYTHON_MODULE(xxx)
    -{
    -    throw "something bad happened"
    -}
    -
    -

    - Interactive Python: -

    -
    >>> import xxx
    -Traceback (most recent call last):
    -  File "", line 1, in ?
    -RuntimeError: Unidentifiable C++ Exception
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/module_hpp/macros.html b/doc/html/reference/high_level_components/module_hpp/macros.html deleted file mode 100644 index e33b855c..00000000 --- a/doc/html/reference/high_level_components/module_hpp/macros.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -Macros - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Macros -

    -

    - BOOST_PYTHON_MODULE(name) - is used to declare Python module initialization functions. The name argument - must exactly match the name of the module to be initialized, and must conform - to Python's identifier naming rules. Where you would normally write -

    -
    extern "C" void initname()
    -{
    -   ...
    -}
    -
    -

    - Boost.Python modules should be initialized with -

    -
    BOOST_PYTHON_MODULE(name)
    -{
    -   ...
    -}
    -
    -

    - This macro generates two functions in the scope where it is used: extern "C" - void initname(), and void - init_module_name(), - whose body must follow the macro invocation. init_name - passes init_module_name - to handle_exception() - so that any C++ exceptions generated are safely processeed. During the - body of init_name, the - current scope refers to the module being initialized. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp.html b/doc/html/reference/high_level_components/operators_hpp.html deleted file mode 100644 index 3c2b2048..00000000 --- a/doc/html/reference/high_level_components/operators_hpp.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -operators.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/operators.hpp> provides types and functions for automatically - generating Python special methods from the corresponding C++ constructs. - Most of these constructs are operator expressions, hence the name. To use - the facility, substitute the self object for an object of the class type - being wrapped in the expression to be exposed, and pass the result to class_<>::def(). - Much of what is exposed in this header should be considered part of the - implementation, so is not documented in detail here. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t.html b/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t.html deleted file mode 100644 index 2dfdedc9..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t.html +++ /dev/null @@ -1,344 +0,0 @@ - - - -Class self_ns::self_t - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - self_ns::self_t is the actual type of the self - object. The library isolates self_t - in its own namespace, self_ns, - in order to prevent the generalized operator templates which operate on - it from being found by argument-dependent lookup in other contexts. This - should be considered an implementation detail, since users should never - have to mention self_t - directly. -

    -
    namespace boost { namespace python { namespace self_ns {
    -{
    -   unspecified-type-declaration self_t;
    -
    -   // inplace operators
    -   template <class T> operator_<unspecified> operator+=(self_t, T);
    -   template <class T> operator_<unspecified> operator-=(self_t, T);
    -   template <class T> operator_<unspecified> operator*=(self_t, T);
    -   template <class T> operator_<unspecified> operator/=(self_t, T);
    -   template <class T> operator_<unspecified> operator%=(self_t, T);
    -   template <class T> operator_<unspecified> operator>>=(self_t, T);
    -   template <class T> operator_<unspecified> operator<<=(self_t, T);
    -   template <class T> operator_<unspecified> operator&=(self_t, T);
    -   template <class T> operator_<unspecified> operator^=(self_t, T);
    -   template <class T> operator_<unspecified> operator|=(self_t, T);
    -
    -   // comparisons
    -   template <class L, class R> operator_<unspecified> operator==(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator!=(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator<(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator>(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator<=(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator>=(L const&, R const&);
    -
    -   // non-member operations
    -   template <class L, class R> operator_<unspecified> operator+(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator-(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator*(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator/(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator%(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator>>(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator<<(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator&(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator^(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> operator|(L const&, R const&);
    -   template <class L, class R> operator_<unspecified> pow(L const&, R const&);
    -
    -   // unary operations
    -   operator_<unspecified> operator-(self_t);
    -   operator_<unspecified> operator+(self_t);
    -   operator_<unspecified> operator~(self_t);
    -   operator_<unspecified> operator!(self_t);
    -
    -   // value operations
    -   operator_<unspecified> int_(self_t);
    -   operator_<unspecified> long_(self_t);
    -   operator_<unspecified> float_(self_t);
    -   operator_<unspecified> complex_(self_t);
    -   operator_<unspecified> str(self_t);
    -
    -   operator_<unspecified> repr(self_t);
    -}}};
    -
    -

    - The tables below describe the methods generated when the results of the - expressions described are passed as arguments to class_<>::def(). - x is an object of the class type being wrapped. -

    -
    - -

    - In the table below, If r is an object of type other<T>, y is an - object of type T; otherwise, y is an object of the same type as r. -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - self += - r -

    -
    -

    - __iadd__ -

    -
    -

    - x += - y -

    -
    -

    - self -= - r -

    -
    -

    - __isub__ -

    -
    -

    - x -= - y -

    -
    -

    - self *= - r -

    -
    -

    - __imul__ -

    -
    -

    - x *= - y -

    -
    -

    - self /= - r -

    -
    -

    - __idiv__ -

    -
    -

    - x /= - y -

    -
    -

    - self %= - r -

    -
    -

    - __imod__ -

    -
    -

    - x %= - y -

    -
    -

    - self >>= - r -

    -
    -

    - __irshift__ -

    -
    -

    - x >>= - y -

    -
    -

    - self <<= - r -

    -
    -

    - __ilshift__ -

    -
    -

    - x <<= - y -

    -
    -

    - self &= - r -

    -
    -

    - __iand__ -

    -
    -

    - x &= - y -

    -
    -

    - self ^= - r -

    -
    -

    - __ixor__ -

    -
    -

    - x ^= - y -

    -
    -

    - self |= - r -

    -
    -

    - __ior__ -

    -
    -

    - x |= - y -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_comparison_functions.html b/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_comparison_functions.html deleted file mode 100644 index f9a9e872..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_comparison_functions.html +++ /dev/null @@ -1,400 +0,0 @@ - - - -self_t comparison functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In the tables below, if r is of type self_t, y is an object of the same - type as x; if l or r is an object of type other<T>, y is an object - of type T; otherwise, y is an object of the same type as l or r. l is - never of type self_t. -

    -

    - The column of Python Expressions illustrates the expressions that will - be supported in Python for objects convertible to the types of x and - y. The secondary operation arises due to Python's reflection rules for - rich comparison operators, and are only used when the corresponding operation - is not defined as a method of the y object. -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - Python Expression (primary, secondary) -

    -
    -

    - self == - r -

    -
    -

    - __eq__ -

    -
    -

    - x == - y -

    -
    -

    - x == - y, y == - x -

    -
    -

    - l == - self -

    -
    -

    - __eq__ -

    -
    -

    - y == - x -

    -
    -

    - y == - x, x == - y -

    -
    -

    - self != - r -

    -
    -

    - __nq__ -

    -
    -

    - x != - y -

    -
    -

    - x != - y, y != - x -

    -
    -

    - l != - self -

    -
    -

    - __nq__ -

    -
    -

    - y != - x -

    -
    -

    - y != - x, x != - y -

    -
    -

    - self < - r -

    -
    -

    - __lt__ -

    -
    -

    - x < - y -

    -
    -

    - x < - y, y > - x -

    -
    -

    - l < - self -

    -
    -

    - __gt__ -

    -
    -

    - y < - x -

    -
    -

    - y > - x, x < - y -

    -
    -

    - self > - r -

    -
    -

    - __gt__ -

    -
    -

    - x > - y -

    -
    -

    - x > - y, y < - x -

    -
    -

    - l > - self -

    -
    -

    - __lt__ -

    -
    -

    - y > - x -

    -
    -

    - y < - x, x > - y -

    -
    -

    - self <= - r -

    -
    -

    - __le__ -

    -
    -

    - x <= - y -

    -
    -

    - x <= - y, y >= - x -

    -
    -

    - l <= - self -

    -
    -

    - __ge__ -

    -
    -

    - y <= - x -

    -
    -

    - y >= - x, x <= - y -

    -
    -

    - self >= - r -

    -
    -

    - __ge__ -

    -
    -

    - x >= - y -

    -
    -

    - x >= - y, y <= - x -

    -
    -

    - l <= - self -

    -
    -

    - __le__ -

    -
    -

    - y >= - x -

    -
    -

    - y <= - x, x >= - y -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_non_member_operations.html b/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_non_member_operations.html deleted file mode 100644 index 45c2bf09..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_non_member_operations.html +++ /dev/null @@ -1,492 +0,0 @@ - - - -self_t non-member operations - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The operations whose names begin with "__r" below will only - be called if the left-hand operand does not already support the given - operation, as described here. -

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

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - self + - r -

    -
    -

    - __add__ -

    -
    -

    - x + - y -

    -
    -

    - l + - self -

    -
    -

    - __radd__ -

    -
    -

    - y + - x -

    -
    -

    - self - - r -

    -
    -

    - __sub__ -

    -
    -

    - x - - y -

    -
    -

    - l - - self -

    -
    -

    - __rsub__ -

    -
    -

    - y - - x -

    -
    -

    - self * - r -

    -
    -

    - __mult__ -

    -
    -

    - x * - y -

    -
    -

    - l * - self -

    -
    -

    - __rmult__ -

    -
    -

    - y * - x -

    -
    -

    - self / - r -

    -
    -

    - __div__ -

    -
    -

    - x / - y -

    -
    -

    - l / - self -

    -
    -

    - __rdiv__ -

    -
    -

    - y / - x -

    -
    -

    - self % - r -

    -
    -

    - __mod__ -

    -
    -

    - x % - y -

    -
    -

    - l % - self -

    -
    -

    - __rmod__ -

    -
    -

    - y % - x -

    -
    -

    - self >> - r -

    -
    -

    - __rshift__ -

    -
    -

    - x >> - y -

    -
    -

    - l >> - self -

    -
    -

    - __rrshift__ -

    -
    -

    - y >> - x -

    -
    -

    - self << - r -

    -
    -

    - __lshift__ -

    -
    -

    - x << - y -

    -
    -

    - l << - self -

    -
    -

    - __rlshift__ -

    -
    -

    - y << - x -

    -
    -

    - self & - r -

    -
    -

    - __and__ -

    -
    -

    - x & - y -

    -
    -

    - l & - self -

    -
    -

    - __rand__ -

    -
    -

    - y & - x -

    -
    -

    - self ^ - r -

    -
    -

    - __xor__ -

    -
    -

    - x ^ - y -

    -
    -

    - l ^ - self -

    -
    -

    - __rxor__ -

    -
    -

    - y ^ - x -

    -
    -

    - self | - r -

    -
    -

    - __or__ -

    -
    -

    - x | - y -

    -
    -

    - l | - self -

    -
    -

    - __ror__ -

    -
    -

    - y | - x -

    -
    -

    - pow(self, - r) -

    -
    -

    - __pow__ -

    -
    -

    - x ** - y -

    -
    -

    - pow(l, - self) -

    -
    -

    - __rpow__ -

    -
    -

    - y ** - x -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_unary_operations.html b/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_unary_operations.html deleted file mode 100644 index 328879ae..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_unary_operations.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -self_t unary operations - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - -self -

    -
    -

    - __neg__ -

    -
    -

    - -x -

    -
    -

    - +self -

    -
    -

    - __pos__ -

    -
    -

    - +x -

    -
    -

    - ~self -

    -
    -

    - __invert__ -

    -
    -

    - ~x -

    -
    -

    - not self - or !self -

    -
    -

    - __nonzero__ -

    -
    -

    - !!x -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_value_operations.html b/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_value_operations.html deleted file mode 100644 index 17a75139..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/class_self_ns_self_t/self_t_value_operations.html +++ /dev/null @@ -1,171 +0,0 @@ - - - -self_t value operations - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - C++ Expression -

    -
    -

    - Python Method Name -

    -
    -

    - C++ Implementation -

    -
    -

    - int_(self) -

    -
    -

    - __int__ -

    -
    -

    - long(x) -

    -
    -

    - long_(self) -

    -
    -

    - __long__ -

    -
    -

    - PyLong_FromLong(x) -

    -
    -

    - float_(self) -

    -
    -

    - __float__ -

    -
    -

    - double(x) -

    -
    -

    - complex_(self) -

    -
    -

    - __complex__ -

    -
    -

    - std::complex<double>(x) -

    -
    -

    - str(self) -

    -
    -

    - __str__ -

    -
    -

    - lexical_cast<std::string>(x) -

    -
    -

    - repr(self) -

    -
    -

    - __repr__ -

    -
    -

    - lexical_cast<std::string>(x) -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/class_template_detail_operator.html b/doc/html/reference/high_level_components/operators_hpp/class_template_detail_operator.html deleted file mode 100644 index 8b29d87f..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/class_template_detail_operator.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Class template detail::operator_ - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Instantiations of detail::operator_<> are used as the return type - of operator expressions involving self. This should be considered an implementation - detail and is only documented here as a way of showing how the result of - self-expressions match calls to class_<>::def(). -

    -
    namespace boost { namespace python { namespace detail
    -{
    -  template <unspecified>
    -  struct operator_
    -  {
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/class_template_other.html b/doc/html/reference/high_level_components/operators_hpp/class_template_other.html deleted file mode 100644 index 4d477188..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/class_template_other.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Class template other - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Instances of other<T> can be used in operator expressions with self; - the result is equivalent to the same expression with a T object in place - of other<T>. Use other<T> to prevent construction of a T object - in case it is heavyweight, when no constructor is available, or simply - for clarity. -

    -
    namespace boost { namespace python
    -{
    -  template <class T>
    -  struct other
    -  {
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/example.html b/doc/html/reference/high_level_components/operators_hpp/example.html deleted file mode 100644 index 95a7d9d0..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/example.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/operators.hpp>
    -#include <boost/operators.hpp>
    -
    -struct number
    -   : boost::integer_arithmetic<number>
    -{
    -    explicit number(long x_) : x(x_) {}
    -    operator long() const { return x; }
    -
    -    template <class T>
    -    number& operator+=(T const& rhs)
    -    { x += rhs; return *this; }
    -
    -    template <class T>
    -    number& operator-=(T const& rhs)
    -    { x -= rhs; return *this; }
    -
    -    template <class T>
    -    number& operator*=(T const& rhs)
    -    { x *= rhs; return *this; }
    -
    -    template <class T>
    -    number& operator/=(T const& rhs)
    -    { x /= rhs; return *this; }
    -
    -    template <class T>
    -    number& operator%=(T const& rhs)
    -    { x %= rhs; return *this; }
    -
    -   long x;
    -};
    -
    -using namespace boost::python;
    -BOOST_PYTHON_MODULE(demo)
    -{
    -   class_<number>("number", init<long>())
    -      // interoperate with self
    -      .def(self += self)
    -      .def(self + self)
    -      .def(self -= self)
    -      .def(self - self)
    -      .def(self *= self)
    -      .def(self * self)
    -      .def(self /= self)
    -      .def(self / self)
    -      .def(self %= self)
    -      .def(self % self)
    -
    -      // Convert to Python int
    -      .def(int_(self))
    -
    -      // interoperate with long
    -      .def(self += long())
    -      .def(self + long())
    -      .def(long() + self)
    -      .def(self -= long())
    -      .def(self - long())
    -      .def(long() - self)
    -      .def(self *= long())
    -      .def(self * long())
    -      .def(long() * self)
    -      .def(self /= long())
    -      .def(self / long())
    -      .def(long() / self)
    -      .def(self %= long())
    -      .def(self % long())
    -      .def(long() % self)
    -      ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/operators_hpp/object_self.html b/doc/html/reference/high_level_components/operators_hpp/object_self.html deleted file mode 100644 index 750f6a18..00000000 --- a/doc/html/reference/high_level_components/operators_hpp/object_self.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -Object self - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace boost { namespace python
    -{
    -  using self_ns::self;
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/scope_hpp.html b/doc/html/reference/high_level_components/scope_hpp.html deleted file mode 100644 index 6eecaa71..00000000 --- a/doc/html/reference/high_level_components/scope_hpp.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -scope.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Defines facilities for querying and controlling the Python scope (namespace) - which will contain new wrapped classes and functions. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/scope_hpp/class_scope.html b/doc/html/reference/high_level_components/scope_hpp/class_scope.html deleted file mode 100644 index 6814e37d..00000000 --- a/doc/html/reference/high_level_components/scope_hpp/class_scope.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Class scope - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The scope class has an associated global Python object which controls the - Python namespace in which new extension classes and wrapped functions will - be defined as attributes. Default-constructing a new scope object binds - it to the associated global Python object. Constructing a scope object - with an argument changes the associated global Python object to the one - held by the argument, until the lifetime of the scope object ends, at which - time the associated global Python object reverts to what it was before - the scope object was constructed. -

    -
    namespace boost { namespace python
    -{
    -  class scope : public object
    -  {
    -   public:
    -      scope(scope const&);
    -      scope(object const&);
    -      scope();
    -      ~scope()
    -   private:
    -      void operator=(scope const&);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/scope_hpp/class_scope_constructors_and_des.html b/doc/html/reference/high_level_components/scope_hpp/class_scope_constructors_and_des.html deleted file mode 100644 index deae756c..00000000 --- a/doc/html/reference/high_level_components/scope_hpp/class_scope_constructors_and_des.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class scope constructors and destructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    explicit scope(scope const& x);
    -explicit scope(object const& x);
    -
    -

    - Stores a reference to the current associated scope object, and sets the - associated scope object to the one referred to by x.ptr(). The object base - class is initialized with x. -

    -
    scope();
    -

    - Stores a reference to the current associated scope object. The object base - class is initialized with the current associated scope object. Outside - any module initialization function, the current associated Python object - is None. -

    -
    ~scope()
    -

    - Sets the current associated Python object to the stored object. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/scope_hpp/example.html b/doc/html/reference/high_level_components/scope_hpp/example.html deleted file mode 100644 index 8cc4fb75..00000000 --- a/doc/html/reference/high_level_components/scope_hpp/example.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following example shows how scope setting can be used to define nested - classes. -

    -

    - C++ Module definition: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/scope.hpp>
    -using namespace boost::python;
    -
    -struct X
    -{
    -  void f() {}
    -
    -  struct Y { int g() { return 42; } };
    -};
    -
    -BOOST_PYTHON_MODULE(nested)
    -{
    -   // add some constants to the current (module) scope
    -   scope().attr("yes") = 1;
    -   scope().attr("no") = 0;
    -
    -   // Change the current scope 
    -   scope outer
    -       = class_<X>("X")
    -            .def("f", &X::f)
    -            ;
    -
    -   // Define a class Y in the current scope, X
    -   class_<X::Y>("Y")
    -      .def("g", &X::Y::g)
    -      ;
    -}
    -
    -

    - Interactive Python: -

    -
    >>> import nested
    ->>> nested.yes
    -1
    ->>> y = nested.X.Y()
    ->>> y.g()
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/stl_iterator_hpp.html b/doc/html/reference/high_level_components/stl_iterator_hpp.html deleted file mode 100644 index 059a6bea..00000000 --- a/doc/html/reference/high_level_components/stl_iterator_hpp.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -stl_iterator.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat0.html b/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat0.html deleted file mode 100644 index eeed584a..00000000 --- a/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat0.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -Class template stl_input_iterator constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    stl_input_iterator()
    -
    -
    -

    -
    -
    Effects
    -

    - Creates a past-the-end input iterator, useful for signifying the - end of a sequence. -

    -
    Postconditions
    -

    - this is past-the-end -

    -
    Throws
    -

    - Nothing. -

    -
    -
    -
    stl_input_iterator(object const& ob)
    -
    -

    -
    -
    Effects
    -

    - Calls ob.attr("__iter__")() and stores the resulting Python - iterator object in this->it. Then, calls this->it.attr("next")() - and stores the result in this->ob. If the sequence is exhausted, - sets this->ob to object(). -

    -
    Postconditions
    -

    - this is a dereferenceable or past-the-end. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat1.html b/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat1.html deleted file mode 100644 index 585ea81e..00000000 --- a/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -Class template stl_input_iterator modifiers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    stl_input_iterator &operator++()
    -
    -
    -

    -
    -
    Effects
    -

    - Calls this->it.attr("next")() and stores the result - in this->ob. If the sequence is exhausted, sets this->ob to - object(). -

    -
    Postconditions
    -

    - this is a dereferenceable or past-the-end. -

    -
    Returns
    -

    - *this -

    -
    -
    -
    stl_input_iterator &operator++(int)
    -
    -

    -
    -
    Effects
    -

    - stl_input_iterator tmp = - *this; ++*this; return tmp; -

    -
    Postconditions
    -

    - this is a dereferenceable or past-the-end. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat2.html b/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat2.html deleted file mode 100644 index 96fd5d12..00000000 --- a/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterat2.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Class template stl_input_iterator observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ValueType operator*() const
    -
    -
    -

    -
    -
    Effects
    -

    - Returns the current element in the sequence. -

    -
    Returns
    -

    - extract<ValueType>(this->ob); -

    -
    -
    -
    friend bool operator==(stl_input_iterator const& lhs, stl_input_iterator const& rhs)
    -
    -
    -

    -
    -
    Effects
    -

    - Returns true if both iterators are dereferenceable or if both iterators - are past-the-end, false otherwise. -

    -
    Returns
    -

    - (lhs.ob == object()) == (rhs.ob == object()) -

    -
    -
    -
    friend bool operator!=(stl_input_iterator const& lhs, stl_input_iterator const& rhs)
    -
    -
    -

    -
    -
    Effects
    -

    - Returns false if both iterators are dereferenceable or if both iterators - are past-the-end, true otherwise. -

    -
    Returns
    -

    - !(lhs - == rhs) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterato.html b/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterato.html deleted file mode 100644 index 94ce58a5..00000000 --- a/doc/html/reference/high_level_components/stl_iterator_hpp/class_template_stl_input_iterato.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -Class template stl_input_iterator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Instances of stl_input_iterator<T> hold a Python iterator and adapt - it for use with STL algorithms. stl_input_iterator<T> satisfies the - requirements for an Input Iterator. -

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

    - Template Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Default -

    -
    -

    - ValueType -

    -
    -

    - ValueType must be CopyConstructible. -

    -
    -

    - Dereferencing an instance of stl_input_iterator<ValueType> - will return an rvalue of type ValueType. -

    -
    -

    - None -

    -
    -
    namespace boost { namespace python
    -{
    -  template <class ValueType>
    -  struct stl_input_iterator
    -  {
    -      typedef std::ptrdiff_t difference_type;
    -      typedef ValueType value_type;
    -      typedef ValueType* pointer;
    -      typedef ValueType reference;
    -      typedef std::input_iterator_tag iterator_category;
    -
    -      stl_input_iterator();
    -      stl_input_iterator(object const& ob);
    -
    -      stl_input_iterator& operator++();
    -      stl_input_iterator operator++(int);
    -
    -      ValueType operator*() const;
    -
    -      friend bool operator==(stl_input_iterator const& lhs, stl_input_iterator const& rhs);
    -      friend bool operator!=(stl_input_iterator const& lhs, stl_input_iterator const& rhs);
    -  private:
    -      object it; // For exposition only
    -      object ob; // For exposition only
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/stl_iterator_hpp/example.html b/doc/html/reference/high_level_components/stl_iterator_hpp/example.html deleted file mode 100644 index 1512f852..00000000 --- a/doc/html/reference/high_level_components/stl_iterator_hpp/example.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/object.hpp>
    -#include <boost/python/stl_iterator.hpp>
    -
    -#include <list>
    -
    -using namespace boost::python;
    -std::list<int> sequence_to_int_list(object const& ob)
    -{
    -    stl_input_iterator<int> begin(ob), end;
    -    return std::list<int>(begin, end);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template.html b/doc/html/reference/high_level_components/template.html deleted file mode 100644 index 4ebf15b6..00000000 --- a/doc/html/reference/high_level_components/template.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template/class_template.html b/doc/html/reference/high_level_components/template/class_template.html deleted file mode 100644 index a182dbf1..00000000 --- a/doc/html/reference/high_level_components/template/class_template.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -Class template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template/class_template_constructors.html b/doc/html/reference/high_level_components/template/class_template_constructors.html deleted file mode 100644 index 46f09082..00000000 --- a/doc/html/reference/high_level_components/template/class_template_constructors.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Class template constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    -

    -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template/class_template_optional.html b/doc/html/reference/high_level_components/template/class_template_optional.html deleted file mode 100644 index ba23d847..00000000 --- a/doc/html/reference/high_level_components/template/class_template_optional.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Class template optional - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - A MPL sequence which can be used to specify the optional arguments to an - __init__ function. -

    -
    namespace boost { namespace python
    -{
    -  template <T1 = unspecified,...Tn = unspecified>
    -  struct optional {};
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template/example.html b/doc/html/reference/high_level_components/template/example.html deleted file mode 100644 index 598cfae9..00000000 --- a/doc/html/reference/high_level_components/template/example.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -Example - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    - - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/reference/high_level_components/template/function_register_exception_tran.html b/doc/html/reference/high_level_components/template/function_register_exception_tran.html deleted file mode 100644 index 904f1c84..00000000 --- a/doc/html/reference/high_level_components/template/function_register_exception_tran.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Function register_exception_translator - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template<class ExceptionType, class Translate>
    -void register_exception_translator(Translate translate);
    -
    -
    -

    -
    -
    Requires
    -
    -

    - Translate is Copyconstructible, and the following code must be well-formed: -

    -
    void f(ExceptionType x) { translate(x); }
    -

    - . The expression translate(x) must either throw a C++ exception, - or a subsequent call to PyErr_Occurred() must return 1. -

    -
    -
    Effects
    -

    - Adds a copy of translate to the sequence of exception translators - tried when Boost.Python catches an exception that is about to pass - into Python's core interpreter. The new translator will get "first - shot" at translating all exceptions matching the catch clause - shown above. Any subsequently-registered translators will be allowed - to translate the exception earlier. A translator which cannot translate - a given C++ exception can re-throw it, and it will be handled by - a translator which was registered earlier (or by the default translator). -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template0.html b/doc/html/reference/high_level_components/template0.html deleted file mode 100644 index ac393c2a..00000000 --- a/doc/html/reference/high_level_components/template0.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template0/class_template.html b/doc/html/reference/high_level_components/template0/class_template.html deleted file mode 100644 index 039c77b2..00000000 --- a/doc/html/reference/high_level_components/template0/class_template.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -Class template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template0/class_template_constructors.html b/doc/html/reference/high_level_components/template0/class_template_constructors.html deleted file mode 100644 index cd313e14..00000000 --- a/doc/html/reference/high_level_components/template0/class_template_constructors.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Class template constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    -

    -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/template0/example.html b/doc/html/reference/high_level_components/template0/example.html deleted file mode 100644 index 98f97cde..00000000 --- a/doc/html/reference/high_level_components/template0/example.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -Example - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    - - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/reference/high_level_components/wrapper_hpp.html b/doc/html/reference/high_level_components/wrapper_hpp.html deleted file mode 100644 index bce811fe..00000000 --- a/doc/html/reference/high_level_components/wrapper_hpp.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -wrapper.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - To wrap a class T such that its virtual functions can be "overridden - in Python"—so that the corresponding method of a Python derived - class will be called when the virtual function is invoked from C++—you - must create a C++ wrapper class derived from -

    -
    T
    -

    - that overrides those virtual functions so that they call into Python. This - header contains classes that can be used to make that job easier. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/wrapper_hpp/class_override.html b/doc/html/reference/high_level_components/wrapper_hpp/class_override.html deleted file mode 100644 index 154c6220..00000000 --- a/doc/html/reference/high_level_components/wrapper_hpp/class_override.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class override - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Encapsulates a Python override of a C++ virtual function. An override object - either holds a callable Python object or None. -

    -
    namespace boost
    -{
    -  class override : object
    -  {
    -   public:
    -      unspecified operator() const;
    -      template <class A0>
    -      unspecified operator(A0) const;
    -      template <class A0, class A1>
    -      unspecified operator(A0, A1) const;
    -      ...
    -      template <class A0, class A1, ...class An>
    -      unspecified operator(A0, A1, ...An) const;
    -  };
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/wrapper_hpp/class_override_observer_function.html b/doc/html/reference/high_level_components/wrapper_hpp/class_override_observer_function.html deleted file mode 100644 index 4eb7aaab..00000000 --- a/doc/html/reference/high_level_components/wrapper_hpp/class_override_observer_function.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -Class override observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    unspecified operator() const;
    -template <class A0>
    -unspecified operator(A0) const;
    -template <class A0, class A1>
    -unspecified operator(A0, A1) const;
    -...
    -template <class A0, class A1, ...class An>
    -unspecified operator(A0, A1, ...An) const;
    -
    -
    -

    -
    -
    Effects
    -

    - If *this holds a callable Python object, it is invoked with the specified - arguments in the manner specified here. Otherwise, throws error_already_set - . -

    -
    Returns
    -

    - An object of unspecified type that holds the Python result of the - invocation and, when converted to a C++ type R, attempts to convert - that result object to R. If that conversion fails, throws error_already_set. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/wrapper_hpp/class_template_wrapper.html b/doc/html/reference/high_level_components/wrapper_hpp/class_template_wrapper.html deleted file mode 100644 index 850a6cec..00000000 --- a/doc/html/reference/high_level_components/wrapper_hpp/class_template_wrapper.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Class template wrapper - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Deriving your wrapper class from both T - and wrapper<T> - makes writing that derived class easier. -

    -
    namespace boost
    -{
    -  class wrapper
    -  {
    -   protected:
    -      override get_override(char const* name) const;
    -  };
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/wrapper_hpp/class_wrapper_observer_functions.html b/doc/html/reference/high_level_components/wrapper_hpp/class_wrapper_observer_functions.html deleted file mode 100644 index 9ef85163..00000000 --- a/doc/html/reference/high_level_components/wrapper_hpp/class_wrapper_observer_functions.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -Class wrapper observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    override get_override(char const* name) const;
    -
    -

    -
    -
    Requires
    -

    - name is a ntbs. -

    -
    Returns
    -

    - If *this is the C++ base class subobject of a Python derived class - instance that overrides the named function, returns an override object - that delegates to the Python override. Otherwise, returns an override - object that holds None. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/high_level_components/wrapper_hpp/example.html b/doc/html/reference/high_level_components/wrapper_hpp/example.html deleted file mode 100644 index fa16cfc4..00000000 --- a/doc/html/reference/high_level_components/wrapper_hpp/example.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/module.hpp>
    -#include <boost/python/class.hpp>
    -#include <boost/python/wrapper.hpp>
    -#include <boost/python/call.hpp>
    -
    -using namespace boost::python;
    -
    -// Class with one pure virtual function
    -struct P
    -{
    -    virtual ~P(){}
    -    virtual char const* f() = 0;
    -    char const* g() { return "P::g()"; }
    -};
    -
    -struct PCallback : P, wrapper<P>
    -{
    -    char const* f()
    -    {
    -        return this->get_override("f")();
    -    }
    -};
    -
    -// Class with one non-pure virtual function
    -struct A
    -{
    -    virtual ~A(){}
    -    virtual char const* f() { return "A::f()"; }
    -};
    -
    -struct ACallback :  A, wrapper<A>
    -{
    -    char const* f()
    -    {
    -        if (override f = this->get_override("f"))
    -            return f();
    -        return A::f();
    -    }
    -
    -    char const* default_f() { return this->A::f(); }
    -};
    -
    -BOOST_PYTHON_MODULE_INIT(polymorphism)
    -{
    -    class_<PCallback,boost::noncopyable>("P")
    -        .def("f", pure_virtual(&P::f))
    -        ;
    -
    -    class_<ACallback,boost::noncopyable>("A")
    -        .def("f", &A::f, &ACallback::default_f)
    -        ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/index.html b/doc/html/reference/index.html index d35e4010..be813b13 100644 --- a/doc/html/reference/index.html +++ b/doc/html/reference/index.html @@ -3,12 +3,12 @@ Boost.Python Reference Manual - + -
    +

    Next
    @@ -40,597 +40,95 @@
    1. Concepts
    CallPolicies
    -
    -
    Introduction
    -
    CallPolicies - Composition
    -
    Concept - Requirements
    -
    Dereferenceable
    -
    -
    Introduction
    -
    Concept - Requirements
    -
    Extractor
    -
    -
    Introduction
    -
    Concept Requirements
    -
    Notes
    -
    HolderGenerator
    -
    -
    Introduction
    -
    Concept - Requirements
    -
    ResultConverter
    -
    -
    Introduction
    -
    ResultConverter - Concept Requirements
    -
    ResultConverterGenerator - Concept Requirements
    -
    ObjectWrapper
    -
    -
    Introduction
    -
    ObjectWrapper - Concept Requirements
    -
    TypeWrapper - Concept Requirements
    -
    Caveat
    -
    2. High Level Components
    boost/python/class.hpp
    -
    -
    Introduction
    -
    Class - template class_<T, Bases, HeldType, NonCopyable>
    -
    Class - template bases<T1, T2, ...TN>
    -
    Examples
    -
    boost/python/def.hpp
    -
    -
    Introduction
    -
    Functions
    -
    Example
    -
    boost/python/def_visitor.hpp
    -
    -
    Introduction
    -
    Class - def_visitor
    -
    Example
    -
    boost/python/docstring_options.hpp
    -
    -
    Introduction
    -
    Class - docstring_options
    -
    Class - dostring_options constructors
    -
    Class - docstring_options destructor
    -
    Class - docstring_options modifier - functions
    -
    Example
    -
    boost/python/enum.hpp
    -
    -
    Introduction
    -
    Class - template enum_
    -
    Class - template enum_ constructors
    -
    Class - template enum_ modifier functions
    -
    Example
    -
    boost/python/errors.hpp
    -
    -
    Introduction
    -
    Class - error_already_set
    -
    Functions
    -
    Example
    -
    boost/python/exception_translator.hpp
    -
    -
    Introduction
    -
    Function - register_exception_translator
    -
    Example
    -
    boost/python/init.hpp
    -
    -
    Introduction
    -
    Class - template init
    -
    Class - template optional
    -
    Example
    -
    boost/python/iterator.hpp
    -
    -
    Introduction
    -
    Class - template iterator
    -
    Class - template iterator constructors
    -
    Class - template iterators
    -
    Class - template iterators nested types
    -
    Class - template iterators static functions
    -
    Functions
    -
    Example
    -
    boost/python/module.hpp
    -
    -
    Introduction
    -
    Macros
    -
    Examples
    -
    boost/python/operators.hpp
    -
    -
    Introduction
    -
    Class - self_ns::self_t
    -
    Class - template other
    -
    Class - template detail::operator_
    -
    Object - self
    -
    Example
    -
    boost/python/scope.hpp
    -
    -
    Introduction
    -
    Class - scope
    -
    Class - scope constructors and destructor
    -
    Example
    -
    boost/python/stl_iterator.hpp
    -
    -
    Introduction
    -
    Class - template stl_input_iterator
    -
    Class - template stl_input_iterator - constructors
    -
    Class - template stl_input_iterator - modifiers
    -
    Class - template stl_input_iterator - observers
    -
    Example
    -
    boost/python/wrapper.hpp
    -
    -
    Introduction
    -
    Class - override
    -
    Class - override observer functions
    -
    Class - template wrapper
    -
    Class - template wrapper observer - functions
    -
    Example
    -
    3. Object Wrappers
    boost/python/dict.hpp
    -
    -
    Introduction
    -
    Class - dict
    -
    Example
    -
    boost_python_list.hpp
    -
    -
    Introduction
    -
    Class - list
    -
    Example
    -
    boost/python/long.hpp
    -
    -
    Introduction
    -
    Class - long_
    -
    Example
    -
    boost/python/numeric.hpp
    -
    -
    Introduction
    -
    Class - array
    -
    Class - array observer functions
    -
    Class - array static functions
    -
    Example
    -
    boost/python/object.hpp
    -
    -
    Introduction
    -
    Class - slice_nil
    -
    Class - const_attribute_policies
    -
    Class - const_attribute_policies - static functions
    -
    Class - attribute_policies
    -
    Class - attribute_policies static - functions
    -
    Class - const_objattribute_policies
    -
    Class - const_objattribute_policies - static functions
    -
    Class - objattribute_policies
    -
    Class - objattribute_policies static - functions
    -
    Class - const_item_policies
    -
    Class - const_item_policies static - functions
    -
    Class - item_policies
    -
    Class - item_policies static functions
    -
    Class - const_slice_policies
    -
    Class - const_slice_policies static - functions
    -
    Class - slice_policies
    -
    Class - slice_policies static functions
    -
    Class - template object_operators
    -
    Class - template object_operators - observer functions
    -
    Class - object
    -
    Class - object constructors and destructor
    -
    Class - object modifiers
    -
    Class - template proxy
    -
    Class - template proxy observer functions
    -
    Class - template proxy modifier functions
    -
    Functions
    -
    Example
    -
    boost/python/str.hpp
    -
    -
    Introduction
    -
    Class - str
    -
    Example
    -
    boost/python/slice.hpp
    -
    -
    Introduction
    -
    Class - slice
    -
    Class - slice constructors
    -
    Class - slice observer functions
    -
    Example
    -
    boost/python/tuple.hpp
    -
    -
    Introduction
    -
    Class - tuple
    -
    Function - make_tuple
    -
    Example
    -
    4. Function Invocation and Creation
    boost/python/args.hpp
    -
    -
    Introduction
    -
    Class - arg
    -
    Class - arg constructor
    -
    Class - arg operator=
    -
    Keyword-expression - operator,
    -
    Example
    -
    boost/python/call.hpp
    -
    -
    Introduction
    -
    Function - call
    -
    Example
    -
    boost/python/call_method.hpp
    -
    -
    Introduction
    -
    Function - call_method
    -
    Example
    -
    boost/python/data_members.hpp
    -
    -
    Introduction
    -
    Functions
    -
    Example
    -
    boost/python/make_function.hpp
    -
    -
    Introduction
    -
    Functions
    -
    Example
    -
    boost/python/overloads.hpp
    -
    -
    Introduction
    -
    OverloadDispatcher - Concept
    -
    Macros
    -
    Example
    -
    boost/python/ptr.hpp
    -
    -
    Introduction
    -
    Functions
    -
    Class - template pointer_wrapper
    -
    Class - template pointer_wrapper - types
    -
    Class - template pointer_wrapper - constructors and destructor
    -
    Class - template pointer_wrapper - observer functions
    -
    Metafunctions
    -
    Example
    -
    boost/python/raw_function.hpp
    -
    -
    Introduction
    -
    Function - raw_function
    -
    Example
    -
    Function documentation
    -
    -
    boost/python/function_doc_signature.hpp
    -
    boost/python/pytype_function.hpp
    -
    Models of CallPolicies
    -
    -
    boost/python/default_call_policies.hpp
    -
    boost/python/return_arg.hpp
    -
    boost/python/return_internal_reference.hpp
    -
    boost/python/return_value_policy.hpp
    -
    boost/python/with_custodian_and_ward.hpp
    -
    Models of ResultConverter
    -
    -
    boost/python/to_python_indirect.hpp
    -
    boost/python/to_python_value.hpp
    -
    Models of ResultConverterGenerator
    -
    -
    boost/python/copy_const_reference.hpp
    -
    boost/python/copy_non_const_reference.hpp
    -
    boost/python/manage_new_object.hpp
    -
    boost/python/reference_existing_object.hpp
    -
    boost/python/return_by_value.hpp
    -
    boost/python/return_opaque_pointer.hpp
    -
    5. To/From Python Type Conversion
    boost/python/extract.hpp
    -
    -
    Introduction
    -
    Class - template extract
    -
    Class - template extract constructors - and destructor
    -
    Class - template extract observer - functions
    -
    Example
    -
    boost/python/implicit.hpp
    -
    -
    Introduction
    -
    Function - template implicit_convertible
    -
    Example
    -
    boost/python/lvalue_from_pytype.hpp
    -
    -
    Introduction
    -
    Class - template lvalue_from_pytype
    -
    Class - template extract_identity
    -
    Class - template extract_member
    -
    Example
    -
    boost/python/opaque_pointer_converter.hpp
    -
    -
    Introduction
    -
    Class - template opaque constructor
    -
    Macro - BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(Pointee)
    -
    boost/python/to_python_converter.hpp
    -
    -
    Introduction
    -
    Class - template to_python_converter
    -
    Example
    -
    boost/python/register_ptr_to_python.hpp
    -
    -
    Introduction
    -
    Function - register_ptr_to_python
    -
    Example
    -
    6. Embedding
    boost/python/exec.hpp
    -
    -
    Introduction
    -
    Function - eval
    -
    Function - exec
    -
    Function - exec_file
    -
    Examples
    -
    boost/python/import.hpp
    -
    -
    Introduction
    -
    Function - import
    -
    Examples
    -
    7. Utility and Infrastructure
    boost/python/has_back_reference.hpp
    -
    -
    Introduction
    -
    Class - template has_back_reference
    -
    Examples
    -
    boost/python/instance_holder.hpp
    -
    -
    Introduction
    -
    Class - template instance_holder
    -
    Examples
    -
    boost/python/pointee.hpp
    -
    -
    Introduction
    -
    Class - template pointee
    -
    Examples
    -
    boost/python/handle.hpp
    -
    -
    Introduction
    -
    Class - template handle
    -
    Function - borrowed
    -
    Function - allow_null
    -
    boost/python/type_id.hpp
    -
    -
    Introduction
    -
    Class - template type_info
    -
    Functions
    -
    Example
    -
    boost/python/ssize_t.hpp
    -
    -
    Introduction
    -
    Typedefs
    -
    Constants
    -
    8. Topics
    Calling Python Functions and Methods
    -
    -
    Introduction
    -
    Argument - Handling
    -
    Result - Handling
    -
    Rationale
    -
    Pickle support
    -
    -
    Introduction
    -
    The Pickle - Interface
    -
    Example
    -
    Pitfall - and Safety Guard
    -
    Practical Advice
    -
    Light-weight - alternative: pickle support implemented in Python
    -
    Indexing support
    -
    -
    Introduction
    -
    The - Indexing Interface
    -
    index_suite - sub-classes
    -
    indexing_suite class
    -
    class - vector_indexing_suite
    -
    class - map_indexing_suite
    -
    9. Glossary
    - +

    Last revised: August 05, 2015 at 11:20:16 GMT

    Last revised: August 05, 2016 at 22:20:05 GMT


    diff --git a/doc/html/reference/object_wrappers.html b/doc/html/reference/object_wrappers.html index 2206097b..5f5ef170 100644 --- a/doc/html/reference/object_wrappers.html +++ b/doc/html/reference/object_wrappers.html @@ -3,14 +3,14 @@ Chapter 3. Object Wrappers - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/object_wrappers/boost_python_list_hpp.html b/doc/html/reference/object_wrappers/boost_python_list_hpp.html index 361fbbb0..657fa1fd 100644 --- a/doc/html/reference/object_wrappers/boost_python_list_hpp.html +++ b/doc/html/reference/object_wrappers/boost_python_list_hpp.html @@ -3,14 +3,14 @@ boost_python_list.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/object_wrappers/boost_python_list_hpp/class_list.html b/doc/html/reference/object_wrappers/boost_python_list_hpp/class_list.html deleted file mode 100644 index 9c90661f..00000000 --- a/doc/html/reference/object_wrappers/boost_python_list_hpp/class_list.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Class list - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the mapping - protocol of Python's built-in list - type. The semantics of the constructors and member functions defined below - can be fully understood by reading the TypeWrapper - concept definition. Since list - is publicly derived from object, the public object interface applies to list instances as well. -

    -
    namespace boost { namespace python
    -{
    -  class list : public object
    -  {
    -   public:
    -      list(); // new list
    -
    -      template <class T>
    -      explicit list(T const& sequence);
    -
    -      template <class T>
    -      void append(T const& x);
    -
    -      template <class T>
    -      long count(T const& value) const;
    -
    -      template <class T>
    -      void extend(T const& x);
    -
    -      template <class T>
    -      long index(T const& x) const;
    -
    -      template <class T>
    -      void insert(object const& index, T const& x); // insert object before index
    -
    -      object pop(); // remove and return item at index (default last)
    -      object pop(long index);
    -      object pop(object const& index);
    -
    -      template <class T>
    -      void remove(T const& value);
    -
    -      void reverse(); // reverse *IN PLACE*
    -
    -      void sort(); //  sort *IN PLACE*; if given, cmpfunc(x, y) -> -1, 0, 1
    -
    -      template <class T>
    -      void sort(T const& value);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_list_hpp/example.html b/doc/html/reference/object_wrappers/boost_python_list_hpp/example.html deleted file mode 100644 index 74713b19..00000000 --- a/doc/html/reference/object_wrappers/boost_python_list_hpp/example.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    using namespace boost::python;
    -
    -// Return the number of zeroes in the list
    -long zeroes(list l)
    -{
    -   return l.count(0);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_long_hpp.html b/doc/html/reference/object_wrappers/boost_python_long_hpp.html index 3162e5b9..6b1baebc 100644 --- a/doc/html/reference/object_wrappers/boost_python_long_hpp.html +++ b/doc/html/reference/object_wrappers/boost_python_long_hpp.html @@ -3,14 +3,14 @@ boost/python/long.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/object_wrappers/boost_python_long_hpp/class_long.html b/doc/html/reference/object_wrappers/boost_python_long_hpp/class_long.html deleted file mode 100644 index f65d6465..00000000 --- a/doc/html/reference/object_wrappers/boost_python_long_hpp/class_long.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Class long_ - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the numeric - type protocol of Python's built-in long - type. The semantics of the constructors and member functions defined below - can be fully understood by reading the TypeWrapper - concept definition. Since long_ - is publicly derived from object, the public object interface applies to long_ instances as well. -

    -
    namespace boost { namespace python
    -{
    -  class long_ : public object
    -  {
    -   public:
    -      long_(); // new long_
    -
    -      template <class T>
    -      explicit long_(T const& rhs);
    -
    -      template <class T, class U>
    -      long_(T const& rhs, U const& base);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_long_hpp/example.html b/doc/html/reference/object_wrappers/boost_python_long_hpp/example.html deleted file mode 100644 index 797c7344..00000000 --- a/doc/html/reference/object_wrappers/boost_python_long_hpp/example.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace python = boost::python;
    -
    -// compute a factorial without overflowing
    -python::long_ fact(long n)
    -{
    -   if (n == 0)
    -      return python::long_(1);
    -   else
    -      return n * fact(n - 1);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_numeric_hpp.html b/doc/html/reference/object_wrappers/boost_python_numeric_hpp.html index d45ed95d..e52ef353 100644 --- a/doc/html/reference/object_wrappers/boost_python_numeric_hpp.html +++ b/doc/html/reference/object_wrappers/boost_python_numeric_hpp.html @@ -3,14 +3,14 @@ boost/python/numeric.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array.html b/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array.html deleted file mode 100644 index 0515d1ef..00000000 --- a/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array.html +++ /dev/null @@ -1,160 +0,0 @@ - - - -Class array - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Provides access to the array types of Numerical - Python's Numeric - and NumArray - modules. With the exception of the functions documented below, the semantics - of the constructors and member functions defined below can be fully understood - by reading the TypeWrapper - concept definition. Since array is publicly derived from object, the public - object interface applies to array instances as well. -

    -

    - The default behavior is to use numarray.NDArray as the associated Python - type if the numarray module is installed in the default location. Otherwise - it falls back to use Numeric.ArrayType. If neither extension module is - installed, overloads of wrapped C++ functions with numeric::array parameters - will never be matched, and other attempted uses of numeric::array will - raise an appropriate Python exception. The associated Python type can be - set manually using the set_module_and_type(...) static function. -

    -
    namespace boost { namespace python { namespace numeric
    -{
    -   class array : public object
    -   {
    -    public:
    -      object astype();
    -      template <class Type>
    -      object astype(Type const& type_);
    -
    -      template <class Type>
    -      array new_(Type const& type_) const;
    -
    -      template <class Sequence>
    -      void resize(Sequence const& x);
    -      void resize(long x1);
    -      void resize(long x1, long x2);
    -      ...
    -      void resize(long x1, long x2,...long xn);
    -
    -      template <class Sequence>
    -      void setshape(Sequence const& x);
    -      void setshape(long x1);
    -      void setshape(long x1, long x2);
    -      ...
    -      void setshape(long x1, long x2,...long xn);
    -
    -      template <class Indices, class Values>
    -      void put(Indices const& indices, Values const& values);
    -
    -      template <class Sequence>
    -      object take(Sequence const& sequence, long axis = 0);
    -
    -      template <class File>
    -      void tofile(File const& f) const;
    -
    -      object factory();
    -      template <class Sequence>
    -      object factory(Sequence const&);
    -      template <class Sequence, class Typecode>
    -      object factory(Sequence const&, Typecode const&, bool copy = true, bool savespace = false);
    -      template <class Sequence, class Typecode, class Type>
    -      object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&);
    -      template <class Sequence, class Typecode, class Type, class Shape>
    -      object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&, Shape const&);
    -
    -      template <class T1>
    -      explicit array(T1 const& x1);
    -      template <class T1, class T2>
    -      explicit array(T1 const& x1, T2 const& x2);
    -      ...
    -      template <class T1, class T2,...class Tn>
    -      explicit array(T1 const& x1, T2 const& x2,...Tn const& xn);
    -
    -      static void set_module_and_type();
    -      static void set_module_and_type(char const* package_path = 0, char const* type_name = 0);
    -      static void get_module_name();
    -
    -      object argmax(long axis=-1);
    -
    -      object argmin(long axis=-1);
    -
    -      object argsort(long axis=-1);
    -
    -      void byteswap();
    -
    -      object copy() const;
    -
    -      object diagonal(long offset = 0, long axis1 = 0, long axis2 = 1) const;
    -
    -      void info() const;
    -
    -      bool is_c_array() const;
    -      bool isbyteswapped() const;
    -      void sort();
    -      object trace(long offset = 0, long axis1 = 0, long axis2 = 1) const;
    -      object type() const;
    -      char typecode() const;
    -
    -      object getflat() const;
    -      long getrank() const;
    -      object getshape() const;
    -      bool isaligned() const;
    -      bool iscontiguous() const;
    -      long itemsize() const;
    -      long nelements() const;
    -      object nonzero() const;
    -
    -      void ravel();
    -      object repeat(object const& repeats, long axis=0);
    -      void setflat(object const& flat);
    -      void swapaxes(long axis1, long axis2);
    -      str tostring() const;
    -      void transpose(object const& axes = object());
    -      object view() const;
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array_observer_functions.html b/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array_observer_functions.html deleted file mode 100644 index e9d11a3e..00000000 --- a/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array_observer_functions.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Class array observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object factory();
    -template <class Sequence>
    -object factory(Sequence const&);
    -template <class Sequence, class Typecode>
    -object factory(Sequence const&, Typecode const&, bool copy = true, bool savespace = false);
    -template <class Sequence, class Typecode, class Type>
    -object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&);
    -template <class Sequence, class Typecode, class Type, class Shape>
    -object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&, Shape const&);
    -
    -

    - These functions map to the underlying array type's array() function family. - They are not called "array" because of the C++ limitation that - you can't define a member function with the same name as its enclosing - class. -

    -
    template <class Type>
    -array new_(Type const&) const;
    -
    -

    - This function maps to the underlying array type's new() function. It is - not called "new" because that is a keyword in C++. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array_static_functions.html b/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array_static_functions.html deleted file mode 100644 index cf0bbbf2..00000000 --- a/doc/html/reference/object_wrappers/boost_python_numeric_hpp/class_array_static_functions.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Class array static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static void set_module_and_type(char const* package_path, char const* type_name);
    -static void set_module_and_type();
    -
    -
    -

    -
    -
    Requires
    -

    - package_path and type_name, if supplied, is an ntbs. -

    -
    Effects
    -

    - The first form sets the package path of the module that supplies - the type named by type_name to package_path. The second form restores - the default search behavior. The associated Python type will be searched - for only the first time it is needed, and thereafter the first time - it is needed after an invocation of set_module_and_type. -

    -
    -
    -
    static std::string get_module_name()
    -
    -

    -
    -
    Effects
    -

    - Returns the name of the module containing the class that will be - held by new numeric::array - instances. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_numeric_hpp/example.html b/doc/html/reference/object_wrappers/boost_python_numeric_hpp/example.html deleted file mode 100644 index 07c6abf6..00000000 --- a/doc/html/reference/object_wrappers/boost_python_numeric_hpp/example.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/numeric.hpp>
    -#include <boost/python/tuple.hpp>
    -
    -// sets the first element in a 2d numeric array
    -void set_first_element(numeric::array& y, double value)
    -{
    -    y[make_tuple(0,0)] = value;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp.html b/doc/html/reference/object_wrappers/boost_python_object_hpp.html index 36b53ba2..e7521ce3 100644 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp.html +++ b/doc/html/reference/object_wrappers/boost_python_object_hpp.html @@ -3,14 +3,14 @@ boost/python/object.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_attribute_policies.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_attribute_policies.html deleted file mode 100644 index 0da2c6ac..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_attribute_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class attribute_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an attribute access - to a mutable object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct attribute_policies : const_attribute_policies
    -  {
    -      static object const& set(object const& target, char const* key, object const& value);
    -      static void del(object const&target, char const* key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_attribute_policies_static_.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_attribute_policies_static_.html deleted file mode 100644 index f98ca69b..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_attribute_policies_static_.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -Class attribute_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object const& set(object const& target, char const* key, object const& value);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an ntbs. -

    -
    Effects
    -

    - sets the attribute of target named by key to value. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    static void del(object const&target, char const* key);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an ntbs. -

    -
    Effects
    -

    - deletes the attribute of target named by key. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_attribute_policies.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_attribute_policies.html deleted file mode 100644 index 18d05902..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_attribute_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class const_attribute_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an attribute access - to a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct const_attribute_policies
    -  {
    -      typedef char const* key_type;
    -      static object get(object const& target, char const* key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_attribute_policies_s.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_attribute_policies_s.html deleted file mode 100644 index dca2fe1c..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_attribute_policies_s.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -Class const_attribute_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object get(object const& target, char const* key);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an ntbs. -

    -
    Effects
    -

    - accesses the attribute of target named by key. -

    -
    Returns
    -

    - An object managing the result of the attribute access. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_item_policies.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_item_policies.html deleted file mode 100644 index 3dd8ecf8..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_item_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class const_item_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an item access (via - the Python bracket operators []) to a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct const_item_policies
    -  {
    -      typedef object key_type;
    -      static object get(object const& target, object const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_item_policies_static.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_item_policies_static.html deleted file mode 100644 index 0db0e34a..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_item_policies_static.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Class const_item_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object get(object const& target, object const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - accesses the item of target specified by key. -

    -
    Returns
    -

    - An object managing the result of the item access. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_objattribute_polici0.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_objattribute_polici0.html deleted file mode 100644 index af2f7878..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_objattribute_polici0.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -Class const_objattribute_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object get(object const& target, object const& key);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an object holding a string. -

    -
    Effects
    -

    - accesses the attribute of target named by key. -

    -
    Returns
    -

    - An object managing the result of the attribute access. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_objattribute_policie.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_objattribute_policie.html deleted file mode 100644 index ac09217e..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_objattribute_policie.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class const_objattribute_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an attribute access - to a const object when the attribute name is given as a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct const_objattribute_policies
    -  {
    -      typedef object const& key_type;
    -      static object get(object const& target, object const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_slice_policies.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_slice_policies.html deleted file mode 100644 index 9f185d5c..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_slice_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class const_slice_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an slice access (via - the Python slice notation [x:y]) to a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct const_slice_policies
    -  {
    -      typedef std::pair<handle<>, handle<> > key_type;
    -      static object get(object const& target, key_type const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_slice_policies_stati.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_slice_policies_stati.html deleted file mode 100644 index 0cea9706..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_const_slice_policies_stati.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Class const_slice_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object get(object const& target, key_type const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - accesses the slice of target specified by key. -

    -
    Returns
    -

    - An object managing the result of the slice access. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_item_policies.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_item_policies.html deleted file mode 100644 index d7e8d0b0..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_item_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class item_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an item access (via - the Python bracket operators []) to a mutable object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct item_policies : const_item_policies
    -  {
    -      static object const& set(object const& target, object const& key, object const& value);
    -      static void del(object const& target, object const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_item_policies_static_funct.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_item_policies_static_funct.html deleted file mode 100644 index 64b5104b..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_item_policies_static_funct.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Class item_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object const& set(object const& target, object const& key, object const& value);
    -
    -
    -

    -
    -
    Effects
    -

    - sets the item of target specified by key to value. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    static void del(object const& target, object const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - deletes the item of target specified by key. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_objattribute_policies.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_objattribute_policies.html deleted file mode 100644 index 2d8a0b83..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_objattribute_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class objattribute_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an attribute access - to a mutable object when the attribute name is given as a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct objattribute_policies : const_objattribute_policies
    -  {
    -      static object const& set(object const& target, object const& key, object const& value);
    -      static void del(object const&target, object const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_objattribute_policies_stat.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_objattribute_policies_stat.html deleted file mode 100644 index ef7fa530..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_objattribute_policies_stat.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -Class objattribute_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object const& set(object const& target, object const& key, object const& value);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an object holding a string. -

    -
    Effects
    -

    - sets the attribute of target named by key to value. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    static void del(object const&target, object const& key);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an object holding a string. -

    -
    Effects
    -

    - deletes the attribute of target named by key. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object.html deleted file mode 100644 index 83559ae3..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -Class object - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The intention is that object acts as much like a Python variable as possible. - Thus expressions you'd expect to work in Python should generally work in - the same way from C++. Most of object's interface is provided by its base - class object_operators<object>, and the free functions defined in - this header. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  class object : public object_operators<object>
    -  {
    -   public:
    -      object();
    -      object(object const&);
    -      template <class T>
    -      explicit object(T const& x);
    -
    -      ~object();
    -
    -      object& operator=(object const&);
    -      PyObject* ptr() const;
    -      bool is_none() const;
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object_constructors_and_de.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object_constructors_and_de.html deleted file mode 100644 index 3028e42c..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object_constructors_and_de.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -Class object constructors and destructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object();
    -
    -

    -
    -
    Effects
    -

    - Constructs an object managing a reference to the Python None object. -

    -
    Throws
    -

    - nothing. -

    -
    -
    -
    template <class T>
    -explicit object(T const& x);
    -
    -
    -

    -
    -
    Effects
    -

    - converts x to python and manages a reference to it. -

    -
    Throws
    -

    - error_already_set - and sets a Python TypeError exception if no such conversion is possible. -

    -
    -
    -
    ~object();
    -
    -
    -

    -
    -
    Effects
    -

    - decrements the reference count of the internally-held object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object_modifiers.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object_modifiers.html deleted file mode 100644 index 61acb2f8..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_object_modifiers.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class object modifiers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    PyObject* ptr() const;
    -
    -

    -
    -
    Returns
    -

    - a pointer to the internally-held Python object. -

    -
    -
    -
    bool is_none() const;
    -
    -

    -
    -
    Returns
    -

    - result of (ptr() == Py_None) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_nil.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_nil.html deleted file mode 100644 index 46d3a850..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_nil.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class slice_nil - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    class slice_nil;
    -static const _ = slice_nil();
    -
    -

    - A type that can be used to get the effect of leaving out an index in a - Python slice expression: -

    -
    >>> x[:-1]
    ->>> x[::-1]
    -
    -

    - C++ equivalent: -

    -
    x.slice(_,-1)
    -x[slice(_,_,-1)]
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_policies.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_policies.html deleted file mode 100644 index 5a26d97f..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class slice_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an slice access to - a mutable object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct slice_policies : const_slice_policies
    -  {
    -      static object const& set(object const& target, key_type const& key, object const& value);
    -      static void del(object const& target, key_type const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_policies_static_func.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_policies_static_func.html deleted file mode 100644 index f3148fcf..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_slice_policies_static_func.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Class slice_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object const& set(object const& target, key_type const& key, object const& value);
    -
    -
    -

    -
    -
    Effects
    -

    - sets the slice of target specified by key to value. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    static void del(object const& target, key_type const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - deletes the slice of target specified by key. -

    -
    Throws
    -

    - error_already_set - if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_object_operators.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_object_operators.html deleted file mode 100644 index f0f7374c..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_object_operators.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -Class template object_operators - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This is the base class of object and its proxy template used to supply - common interface: member functions, and operators which must be defined - within the class body. Its template parameter U is expected to be a class - derived from object_operators<U>. In practice users should never - use this class directly, but it is documented here because it supplies - important interface to object and its proxies. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  template <class U>
    -  class object_operators
    -  {
    -   public:
    -      // function call
    -      //
    -      object operator()() const;
    -
    -      template <class A0>
    -      object operator()(A0 const&) const;
    -      template <class A0, class A1>
    -      object operator()(A0 const&, A1 const&) const;
    -      ...
    -      template <class A0, class A1,...class An>
    -      object operator()(A0 const&, A1 const&,...An const&) const;
    -
    -      detail::args_proxy operator* () const;
    -      object operator()(detail::args_proxy const &args) const;
    -      object operator()(detail::args_proxy const &args,
    -                        detail::kwds_proxy const &kwds) const;
    -
    -      // truth value testing
    -      //
    -      typedef unspecified bool_type;
    -      operator bool_type() const;
    -
    -      // Attribute access
    -      //
    -      proxy<const_object_attribute> attr(char const*) const;
    -      proxy<object_attribute> attr(char const*);
    -      proxy<const_object_objattribute> attr(object const&) const;
    -      proxy<object_objattribute> attr(object const&);
    -
    -      // item access
    -      //
    -      template <class T>
    -      proxy<const_object_item> operator[](T const& key) const;
    -
    -      template <class T>
    -      proxy<object_item> operator[](T const& key);
    -
    -      // slicing
    -      //
    -      template <class T, class V>
    -      proxy<const_object_slice> slice(T const& start, V const& end) const
    -
    -      template <class T, class V>
    -      proxy<object_slice> slice(T const& start, V const& end);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_object_operators_.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_object_operators_.html deleted file mode 100644 index 7025eaf6..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_object_operators_.html +++ /dev/null @@ -1,196 +0,0 @@ - - - -Class template object_operators observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object operator()() const;
    -template <class A0>
    -object operator()(A0 const&) const;
    -template <class A0, class A1>
    -object operator()(A0 const&, A1 const&) const;
    -...
    -template <class A0, class A1,...class An>
    -object operator()(A0 const& a1, A1 const& a2,...An const& aN) const;
    -
    -
    -

    -
    -
    Effects
    -

    - call<object>(object(*static_cast<U*>(this)).ptr(), - a1, - a2,...aN) -

    -
    -
    -
    object operator()(detail::args_proxy const &args) const;
    -
    -

    -
    -
    Effects
    -

    - call object - with arguments - given by - the tuple - args -

    -
    -
    -
    object operator()(detail::args_proxy const &args,
    -                  detail::kwds_proxy const &kwds) const;
    -
    -
    -

    -
    -
    Effects
    -

    - call object - with arguments - given by - the tuple - args, - and named - arguments given - by the - dictionary kwds -

    -
    -
    -
    operator bool_type() const;
    -
    -

    -
    -
    Effects
    -

    - Tests truth value of *this. -

    -
    Returns
    -

    - call<object>(object(*static_cast<U*>(this)).ptr(), - a1, - a2,...aN) -

    -
    -
    -
    proxy<const_object_attribute> attr(char const* name) const;
    -proxy<object_attribute> attr(char const* name);
    -
    -
    -

    -
    -
    Requires
    -

    - name is an ntbs. -

    -
    Effects
    -

    - accesses the named attribute of *this. -

    -
    Returns
    -

    - a proxy object which binds object(*static_cast<U*>(this)) as its target, and name as its - key. -

    -
    -
    -
    proxy<const_object_objattribute> attr(const object& name) const;
    -proxy<object_objattribute> attr(const object& name);
    -
    -
    -

    -
    -
    Requires
    -

    - name is a object holding a string. -

    -
    Effects
    -

    - accesses the named attribute of *this. -

    -
    Returns
    -

    - a proxy object which binds object(*static_cast<U*>(this)) as its target, and name as its - key. -

    -
    -
    -
    template <class T>
    -proxy<const_object_item> operator[](T const& key) const;
    -template <class T>
    -proxy<object_item> operator[](T const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - accesses the item of *this indicated by key. -

    -
    Returns
    -

    - a proxy object which binds object(*static_cast<U*>(this)) as its target, and object(key) - as its key. -

    -
    -
    -
    template <class T, class V>
    -proxy<const_object_slice> slice(T const& start; start, V const& finish) const
    -template <class T, class V>
    -proxy<object_slice> slice(T const& start; start, V const& finish);
    -
    -
    -

    -
    -
    Effects
    -

    - accesses the slice of *this indicated by std::make_pair(object(start), object(finish)). -

    -
    Returns
    -

    - a proxy object which binds object(*static_cast<U*>(this)) as its target, and std::make_pair(object(start), - object(finish)) - as its key. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy.html deleted file mode 100644 index 39a9dee1..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -Class template proxy - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This template is instantiated with various Policies described in this document - in order to implement attribute, item, and slice access for object. It - stores an object of type Policies::key_type. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  template <class Policies>
    -  class proxy : public object_operators<proxy<Policies> >
    -  {
    -   public:
    -      operator object() const;
    -
    -      proxy const& operator=(proxy const&) const;
    -      template <class T>
    -      inline proxy const& operator=(T const& rhs) const;
    -
    -      void del() const;
    -
    -      template <class R>
    -      proxy operator+=(R const& rhs);
    -      template <class R>
    -      proxy operator-=(R const& rhs);
    -      template <class R>
    -      proxy operator*=(R const& rhs);
    -      template <class R>
    -      proxy operator/=(R const& rhs);
    -      template <class R>
    -      proxy operator%=(R const& rhs);
    -      template <class R>
    -      proxy operator<<=(R const& rhs);
    -      template <class R>
    -      proxy operator>>=(R const& rhs);
    -      template <class R>
    -      proxy operator&=(R const& rhs);
    -      template <class R>
    -      proxy operator|=(R const& rhs);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy_modifier_fu.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy_modifier_fu.html deleted file mode 100644 index c1cd57ab..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy_modifier_fu.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -Class template proxy modifier functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    proxy const& operator=(proxy const& rhs) const;
    -template <class T>
    -inline proxy const& operator=(T const& rhs) const;
    -
    -
    -

    -
    -
    Effects
    -

    - Policies::set(target, - key , - object(rhs)) - with the proxy's target and key objects. -

    -
    -
    -
    template <class R>
    -proxy operator+=(R const& rhs);
    -template <class R>
    -proxy operator-=(R const& rhs);
    -template <class R>
    -proxy operator*=(R const& rhs);
    -template <class R>
    -proxy operator/=(R const& rhs);
    -template <class R>
    -proxy operator%=(R const& rhs);
    -template <class R>
    -proxy operator<<=(R const& rhs);
    -template <class R>
    -proxy operator>>=(R const& rhs);
    -template <class R>
    -proxy operator&=(R const& rhs);
    -template <class R>
    -proxy operator|=(R const& rhs);
    -
    -
    -

    -
    -
    Effects
    -

    - for a given operator@=, - object(*this) @= rhs; -

    -
    Returns
    -

    - *this -

    -
    -
    -
    void del() const;
    -
    -

    -
    -
    Effects
    -

    - Policies::del(target, key ) with the proxy's target and key objects. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy_observer_fu.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy_observer_fu.html deleted file mode 100644 index a927a6c6..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/class_template_proxy_observer_fu.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Class template proxy observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    operator object() const;
    -
    -

    -
    -
    Effects
    -

    - applies Policies::get(target, key) with the proxy's target and key - objects. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/example.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/example.html deleted file mode 100644 index d13acc10..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/example.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Python code: -

    -
    def sum_items(seq):
    -   result = 0
    -   for x in seq:
    -      result += x
    -   return result
    -
    -

    - C++ version -

    -
    object sum_items(object seq)
    -{
    -   object result = object(0);
    -   for (int i = 0; i < len(seq); ++i)
    -      result += seq[i];
    -   return result;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp/functions.html b/doc/html/reference/object_wrappers/boost_python_object_hpp/functions.html deleted file mode 100644 index 3db1eea8..00000000 --- a/doc/html/reference/object_wrappers/boost_python_object_hpp/functions.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -void del(proxy<T> const& x);
    -
    -
    -

    -
    -
    Effects
    -

    - x.del() -

    -
    -
    -
    template<class L,class R> object operator>(L const&l,R const&r);
    -template<class L,class R> object operator>=(L const&l,R const&r);
    -template<class L,class R> object operator<(L const&l,R const&r);
    -template<class L,class R> object operator<=(L const&l,R const&r);
    -template<class L,class R> object operator==(L const&l,R const&r);
    -template<class L,class R> object operator!=(L const&l,R const&r);
    -
    -
    -

    -
    -
    Effects
    -

    - returns the result of applying the operator to object(l) and object(r), respectively, in Python. -

    -
    -
    -
    template<class L,class R> object operator+(L const&l,R const&r);
    -template<class L,class R> object operator-(L const&l,R const&r);
    -template<class L,class R> object operator*(L const&l,R const&r);
    -template<class L,class R> object operator/(L const&l,R const&r);
    -template<class L,class R> object operator%(L const&l,R const&r);
    -template<class L,class R> object operator<<(L const&l,R const&r);
    -template<class L,class R> object operator>>(L const&l,R const&r);
    -template<class L,class R> object operator&(L const&l,R const&r);
    -template<class L,class R> object operator^(L const&l,R const&r);
    -template<class L,class R> object operator|(L const&l,R const&r);
    -
    -
    -

    -
    -
    Effects
    -

    - returns the result of applying the operator to object(l) and object(r), respectively, in Python. -

    -
    -
    -
    template<class R> object& operator+=(object&l,R const&r);
    -template<class R> object& operator-=(object&l,R const&r);
    -template<class R> object& operator*=(object&l,R const&r);
    -template<class R> object& operator/=(object&l,R const&r);
    -template<class R> object& operator%=(object&l,R const&r);
    -template<class R> object& operator<<=(object&l,R const&r)
    -template<class R> object& operator>>=(object&l,R const&r);
    -template<class R> object& operator&=(object&l,R const&r);
    -template<class R> object& operator^=(object&l,R const&r);
    -template<class R> object& operator|=(object&l,R const&r);
    -
    -
    -

    -
    -
    Effects
    -

    - assigns to l the - result of applying the corresponding Python inplace operator to - l and object(r), - respectively. -

    -
    Returns
    -

    - l -

    -
    -
    -
    long len(object const& obj);
    -
    -

    -
    -
    Effects
    -

    - PyObject_Length(obj.ptr()) -

    -
    Returns
    -

    - len() - of object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_slice_hpp.html b/doc/html/reference/object_wrappers/boost_python_slice_hpp.html index 8527f6e2..3ad26162 100644 --- a/doc/html/reference/object_wrappers/boost_python_slice_hpp.html +++ b/doc/html/reference/object_wrappers/boost_python_slice_hpp.html @@ -3,14 +3,14 @@ boost/python/slice.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice.html b/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice.html deleted file mode 100644 index 89902cc9..00000000 --- a/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -Class slice - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the extended slicing protocol by wrapping the built-in slice type. - The semantics of the constructors and member functions defined below can - be fully understood by reading the TypeWrapper - concept definition. Since slice - is publicly derived from object, the public object interface applies to slice instances as well. -

    -
    namespace boost { namespace python
    -{
    -  class slice : public object
    -  {
    -   public:
    -      slice(); // create an empty slice, equivalent to [::]
    -
    -      template <typename Int1, typename Int2>
    -      slice(Int1 start, Int2 stop);
    -
    -      template <typename Int1, typename Int2, typename Int3>
    -      slice(Int1 start, Int2 stop, Int3 step);
    -
    -      // Access the parameters this slice was created with.
    -      object start();
    -      object stop();
    -      object step();
    -
    -      // The return type of slice::get_indices()
    -      template <typename RandomAccessIterator>
    -      struct range
    -      {
    -          RandomAccessIterator start;
    -          RandomAccessIterator stop;
    -          int step;
    -      };
    -
    -      template <typename RandomAccessIterator>
    -      range<RandomAccessIterator>
    -      get_indices(
    -          RandomAccessIterator const& begin,
    -          RandomAccessIterator const& end);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice_constructors.html b/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice_constructors.html deleted file mode 100644 index 7d3c4217..00000000 --- a/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice_constructors.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Class slice constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    slice();
    -
    -

    -
    -
    Effects
    -

    - constructs a slice with default stop, start, and step values. Equivalent - to the slice object created as part of the Python expression base[::]. -

    -
    Throws
    -

    - nothing -

    -
    -
    -
    template <typename Int1, typename Int2>
    -slice(Int1 start, Int2 stop);
    -
    -
    -

    -
    -
    Requires
    -

    - start, stop, and step - are of type slice_nil - or convertible to type object. -

    -
    Effects
    -

    - constructs a new slice with default step value and the provided start - and stop values. Equivalent to the slice object created by the built-in - Python function slice(start,stop), or as part of the Python expression - base[start:stop]. -

    -
    Throws
    -

    - error_already_set - and sets a Python TypeError exception if no conversion is possible - from the arguments to type object. -

    -
    -
    -
    template <typename Int1, typename Int2, typename Int3>
    -slice(Int1 start, Int2 stop, Int3 step);
    -
    -
    -

    -
    -
    Requires
    -

    - start, stop, and step - are slice_nil or - convertible to type object. -

    -
    Effects
    -

    - constructs a new slice with start stop and step values. Equivalent - to the slice object created by the built-in Python function slice(start,stop,step), - or as part of the Python expression base[start:stop:step]. -

    -
    Throws
    -

    - error_already_set - and sets a Python TypeError exception if no conversion is possible - from the arguments to type object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice_observer_functions.html b/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice_observer_functions.html deleted file mode 100644 index f8386d46..00000000 --- a/doc/html/reference/object_wrappers/boost_python_slice_hpp/class_slice_observer_functions.html +++ /dev/null @@ -1,124 +0,0 @@ - - - -Class slice observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object slice::start() const;
    -object slice::stop() const;
    -object slice::step() const;
    -
    -
    -

    -
    -
    Effects
    -

    - None -

    -
    Throws
    -

    - nothing -

    -
    Returns
    -

    - the parameter that the slice was created with. If the parameter was - omitted or slice_nil - was used when the slice was created, than that parameter will be - a reference to PyNone - and compare equal to a default-constructed object. In principal, - any object may be used when creating a slice object, but in practice - they are usually integers. -

    -
    -
    -
    template <typename RandomAccessIterator>
    -slice::range<RandomAccessIterator>
    -slice::get_indices(
    -    RandomAccessIterator const& begin,
    -    RandomAccessIterator const& end) const;
    -
    -
    -

    -
    -
    Arguments
    -

    - A pair of STL-conforming Random Access Iterators that form a half-open - range. -

    -
    Effects
    -

    - Create a RandomAccessIterator pair that defines a fully-closed range - within the [begin,end) range of its arguments. This function - translates this slice's indices while accounting for the effects - of any PyNone or negative indices, and non-singular step sizes. -

    -
    Returns
    -

    - a slice::range that has been initialized - with a non-zero value of step and a pair of RandomAccessIterators - that point within the range of this functions arguments and define - a closed interval. -

    -
    Throws
    -

    - Raises a Python TypeError exception if any of this slice's arguments - are neither references to PyNone nor convertible to int. Throws - std::invalid_argument if the resulting - range would be empty. You should always wrap calls to slice::get_indices() - within try { - ...; } - catch (std::invalid_argument) - {} to handle this case and - take appropriate action. -

    -
    Rationale
    -

    - closed-interval: If an open interval were used, then for step size - other than 1, the required state for the end iterator would point - beyond the one-past-the-end position or before the beginning of the - specified range. exceptions on empty slice: It is impossible to define - a closed interval over an empty range, so some other form of error - checking would have to be used to prevent undefined behavior. In - the case where the exception is not caught, it will simply be translated - to Python by the default exception handling mechanisms. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_slice_hpp/example.html b/doc/html/reference/object_wrappers/boost_python_slice_hpp/example.html deleted file mode 100644 index 9c27c3ee..00000000 --- a/doc/html/reference/object_wrappers/boost_python_slice_hpp/example.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    using namespace boost::python;
    -
    -// Perform an extended slice of a Python list.
    -// Warning: extended slicing was not supported for built-in types prior 
    -// to Python 2.3
    -list odd_elements(list l)
    -{
    -    return l[slice(_,_,2)];
    -}
    -
    -// Perform a multidimensional extended slice of a Numeric.array
    -numeric::array even_columns(numeric::array arr)
    -{
    -    // select every other column, starting with the second, of a 2-D array.
    -    // Equivalent to "return arr[:, 1::2]" in Python.
    -    return arr[make_tuple( slice(), slice(1,_,2))];
    -}
    -
    -// Perform a summation over a slice of a std::vector.
    -double partial_sum(std::vector<double> const& Foo, const slice index)
    -{
    -    slice::range<std::vector<double>::const_iterator> bounds;
    -    try {
    -        bounds = index.get_indices<>(Foo.begin(), Foo.end());
    -    }
    -    catch (std::invalid_argument) {
    -        return 0.0;
    -    }
    -    double sum = 0.0;
    -    while (bounds.start != bounds.stop) {
    -        sum += *bounds.start;
    -        std::advance( bounds.start, bounds.step);
    -    }
    -    sum += *bounds.start;
    -    return sum;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_str_hpp.html b/doc/html/reference/object_wrappers/boost_python_str_hpp.html index 446f7623..5cd6b2ee 100644 --- a/doc/html/reference/object_wrappers/boost_python_str_hpp.html +++ b/doc/html/reference/object_wrappers/boost_python_str_hpp.html @@ -3,14 +3,14 @@ boost/python/str.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/object_wrappers/boost_python_str_hpp/class_str.html b/doc/html/reference/object_wrappers/boost_python_str_hpp/class_str.html deleted file mode 100644 index f423f071..00000000 --- a/doc/html/reference/object_wrappers/boost_python_str_hpp/class_str.html +++ /dev/null @@ -1,187 +0,0 @@ - - - -Class str - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the string - methods of Python's built-in str - type. The semantics of the constructors and member functions defined below, - except for the two-argument constructors which construct str objects from - a range of characters, can be fully understood by reading the TypeWrapper - concept definition. Since str is publicly derived from object, the public object interface applies to str instances as well. -

    -
    namespace boost { namespace python
    -{
    -  class str : public object
    -  {
    -   public:
    -      str(); // new str
    -
    -      str(char const* s); // new str
    -
    -      str(char const* start, char const* finish); // new str
    -      str(char const* start, std::size_t length); // new str
    -
    -      template <class T>
    -      explicit str(T const& other);
    -
    -      str capitalize() const;
    -
    -      template <class T>
    -      str center(T const& width) const;
    -
    -      template<class T>
    -      long count(T const& sub) const;
    -      template<class T1, class T2>
    -      long count(T1 const& sub,T2 const& start) const;
    -      template<class T1, class T2, class T3>
    -      long count(T1 const& sub,T2 const& start, T3 const& end) const;
    -
    -      object decode() const;
    -      template<class T>
    -      object decode(T const& encoding) const;
    -      template<class T1, class T2>
    -      object decode(T1 const& encoding, T2 const& errors) const;
    -
    -      object encode() const;
    -      template <class T>
    -      object encode(T const& encoding) const;
    -      template <class T1, class T2>
    -      object encode(T1 const& encoding, T2 const& errors) const;
    -
    -      template <class T>
    -      bool endswith(T const& suffix) const;
    -      template <class T1, class T2>
    -      bool endswith(T1 const& suffix, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      bool endswith(T1 const& suffix, T2 const& start, T3 const& end) const;
    -
    -      str expandtabs() const;
    -      template <class T>
    -      str expandtabs(T const& tabsize) const;
    -
    -      template <class T>
    -      long find(T const& sub) const;
    -      template <class T1, class T2>
    -      long find(T1 const& sub, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      long find(T1 const& sub, T2 const& start, T3 const& end) const;
    -
    -      template <class T>
    -      long index(T const& sub) const;
    -      template <class T1, class T2>
    -      long index(T1 const& sub, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      long index(T1 const& sub, T2 const& start, T3 const& end) const;
    -
    -      bool isalnum() const;
    -      bool isalpha() const;
    -      bool isdigit() const;
    -      bool islower() const;
    -      bool isspace() const;
    -      bool istitle() const;
    -      bool isupper() const;
    -
    -      template <class T>
    -      str join(T const& sequence) const;
    -
    -      template <class T>
    -      str ljust(T const& width) const;
    -
    -      str lower() const;
    -      str lstrip() const;
    -
    -      template <class T1, class T2>
    -      str replace(T1 const& old, T2 const& new_) const;
    -      template <class T1, class T2, class T3>
    -      str replace(T1 const& old, T2 const& new_, T3 const& maxsplit) const;
    -
    -      template <class T>
    -      long rfind(T const& sub) const;
    -      template <class T1, class T2>
    -      long rfind(T1 const& sub, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      long rfind(T1 const& sub, T2 const& start, T3 const& end) const;
    -
    -      template <class T>
    -      long rindex(T const& sub) const;
    -      template <class T1, class T2>
    -      long rindex(T1 const& sub, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      long rindex(T1 const& sub, T2 const& start, T3 const& end) const;
    -
    -      template <class T>
    -      str rjust(T const& width) const;
    -
    -      str rstrip() const;
    -
    -      list split() const;
    -      template <class T>
    -      list split(T const& sep) const;
    -      template <class T1, class T2>
    -      list split(T1 const& sep, T2 const& maxsplit) const;
    -
    -      list splitlines() const;
    -      template <class T>
    -      list splitlines(T const& keepends) const;
    -
    -      template <class T>
    -      bool startswith(T const& prefix) const;
    -      template <class T1, class T2>
    -      bool startswidth(T1 const& prefix, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      bool startswidth(T1 const& prefix, T2 const& start, T3 const& end) const;
    -
    -      str strip() const;
    -      str swapcase() const;
    -      str title() const;
    -
    -      template <class T>
    -      str translate(T const& table) const;
    -      template <class T1, class T2>
    -      str translate(T1 const& table, T2 const& deletechars) const;
    -
    -      str upper() const;
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_str_hpp/example.html b/doc/html/reference/object_wrappers/boost_python_str_hpp/example.html deleted file mode 100644 index b9d56a8d..00000000 --- a/doc/html/reference/object_wrappers/boost_python_str_hpp/example.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    using namespace boost::python;
    -str remove_angle_brackets(str x)
    -{
    -  return x.strip('<').strip('>');
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_tuple_hpp.html b/doc/html/reference/object_wrappers/boost_python_tuple_hpp.html index 836f18da..b2cee108 100644 --- a/doc/html/reference/object_wrappers/boost_python_tuple_hpp.html +++ b/doc/html/reference/object_wrappers/boost_python_tuple_hpp.html @@ -3,14 +3,14 @@ boost/python/tuple.hpp - + -
    +

    PrevUpHomeNext @@ -33,7 +33,7 @@

    Exposes a TypeWrapper - for the Python http://www.python.org/doc/current/tut/node7.html#SECTION007300000000000000000%60tuple%60 + for the Python http://www.python.org/doc/current/tut/node7.html#SECTION007300000000000000000`tuple` type.

    diff --git a/doc/html/reference/object_wrappers/boost_python_tuple_hpp/class_tuple.html b/doc/html/reference/object_wrappers/boost_python_tuple_hpp/class_tuple.html deleted file mode 100644 index 4c02e102..00000000 --- a/doc/html/reference/object_wrappers/boost_python_tuple_hpp/class_tuple.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class tuple - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the interface of Python's built-in tuple type. The semantics of - the constructors and member functions defined below can be fully understood - by reading the TypeWrapper - concept definition. Since tuple is publicly derived from object, the public object interface applies to tuple instances as well. -

    -
    namespace boost { namespace python
    -{
    -   class tuple : public object
    -   {
    -      // tuple() -> an empty tuple
    -      tuple();
    -
    -      // tuple(sequence) -> tuple initialized from sequence's items
    -      template <class T>
    -      explicit tuple(T const& sequence)
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_tuple_hpp/example.html b/doc/html/reference/object_wrappers/boost_python_tuple_hpp/example.html deleted file mode 100644 index 6aef1b22..00000000 --- a/doc/html/reference/object_wrappers/boost_python_tuple_hpp/example.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    using namespace boost::python;
    -tuple head_and_tail(object sequence)
    -{
    -    return make_tuple(sequence[0],sequence[-1]);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/boost_python_tuple_hpp/function_make_tuple.html b/doc/html/reference/object_wrappers/boost_python_tuple_hpp/function_make_tuple.html deleted file mode 100644 index 993afa15..00000000 --- a/doc/html/reference/object_wrappers/boost_python_tuple_hpp/function_make_tuple.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Function make_tuple - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace boost { namespace python
    -{
    -  tuple make_tuple();
    -
    -  template <class A0>
    -  tuple make_tuple(A0 const& a0);
    -
    -  template <class A0, class A1>
    -  tuple make_tuple(A0 const& a0, A1 const& a1);
    -  ...
    -  template <class A0, class A1,...class An>
    -  tuple make_tuple(A0 const& a0, A1 const& a1,...An const& an);
    -}}
    -
    -
    -

    -
    -
    Effect
    -

    - Constructs a new tuple object composed of object(a0), object(a0),...object(an). -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/list_hpp.html b/doc/html/reference/object_wrappers/list_hpp.html deleted file mode 100644 index 44b14545..00000000 --- a/doc/html/reference/object_wrappers/list_hpp.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -list.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Exposes a TypeWrapper for the Python list type. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/list_hpp/class_list.html b/doc/html/reference/object_wrappers/list_hpp/class_list.html deleted file mode 100644 index e995322e..00000000 --- a/doc/html/reference/object_wrappers/list_hpp/class_list.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -Class list - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the mapping protocol of Python's built-in list type. The semantics - of the constructors and member functions defined below can be fully understood - by reading the TypeWrapper concept definition. Since list is publicly derived - from object, the public object interface applies to list instances as well. -

    -
    namespace boost { namespace python
    -{
    -  class list : public object
    -  {
    -   public:
    -      list(); // new list
    -
    -      template <class T>
    -      explicit list(T const& sequence);
    -
    -      template <class T>
    -      void append(T const& x);
    -
    -      template <class T>
    -      long count(T const& value) const;
    -
    -      template <class T>
    -      void extend(T const& x);
    -
    -      template <class T>
    -      long index(T const& x) const;
    -
    -      template <class T>
    -      void insert(object const& index, T const& x); // insert object before index
    -
    -      object pop(); // remove and return item at index (default last)
    -      object pop(long index);
    -      object pop(object const& index);
    -
    -      template <class T>
    -      void remove(T const& value);
    -
    -      void reverse(); // reverse *IN PLACE*
    -
    -      void sort(); //  sort *IN PLACE*; if given, cmpfunc(x, y) -> -1, 0, 1
    -
    -      template <class T>
    -      void sort(T const& value);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/list_hpp/example.html b/doc/html/reference/object_wrappers/list_hpp/example.html deleted file mode 100644 index f8f97359..00000000 --- a/doc/html/reference/object_wrappers/list_hpp/example.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    using namespace boost::python;
    -
    -// Return the number of zeroes in the list
    -long zeroes(list l)
    -{
    -   return l.count(0);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/long_hpp.html b/doc/html/reference/object_wrappers/long_hpp.html deleted file mode 100644 index 6ed8ef9f..00000000 --- a/doc/html/reference/object_wrappers/long_hpp.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -long.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Exposes a TypeWrapper for the Python long integer type. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/long_hpp/class_long.html b/doc/html/reference/object_wrappers/long_hpp/class_long.html deleted file mode 100644 index d4f67c1b..00000000 --- a/doc/html/reference/object_wrappers/long_hpp/class_long.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Class long_ - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the numeric type protocol of Python's built-in long type. The semantics - of the constructors and member functions defined below can be fully understood - by reading the TypeWrapper concept definition. Since long_ is publicly - derived from object, the public object interface applies to long_ instances - as well. -

    -
    namespace boost { namespace python
    -{
    -  class long_ : public object
    -  {
    -   public:
    -      long_(); // new long_
    -
    -      template <class T>
    -      explicit long_(T const& rhs);
    -
    -      template <class T, class U>
    -      long_(T const& rhs, U const& base);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/long_hpp/example.html b/doc/html/reference/object_wrappers/long_hpp/example.html deleted file mode 100644 index bc346a72..00000000 --- a/doc/html/reference/object_wrappers/long_hpp/example.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace python = boost::python;
    -
    -// compute a factorial without overflowing
    -python::long_ fact(long n)
    -{
    -   if (n == 0)
    -      return python::long_(1);
    -   else
    -      return n * fact(n - 1);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/numeric_hpp.html b/doc/html/reference/object_wrappers/numeric_hpp.html deleted file mode 100644 index a949b079..00000000 --- a/doc/html/reference/object_wrappers/numeric_hpp.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -numeric.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Exposes a TypeWrapper for the Python array type. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/numeric_hpp/class_array.html b/doc/html/reference/object_wrappers/numeric_hpp/class_array.html deleted file mode 100644 index cefccb9b..00000000 --- a/doc/html/reference/object_wrappers/numeric_hpp/class_array.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -Class array - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Provides access to the array types of Numerical Python's Numeric and NumArray - modules. With the exception of the functions documented below, the semantics - of the constructors and member functions defined below can be fully understood - by reading the TypeWrapper concept definition. Since array is publicly - derived from object, the public object interface applies to array instances - as well. -

    -

    - The default behavior is to use numarray.NDArray as the associated Python - type if the numarray module is installed in the default location. Otherwise - it falls back to use Numeric.ArrayType. If neither extension module is - installed, overloads of wrapped C++ functions with numeric::array parameters - will never be matched, and other attempted uses of numeric::array will - raise an appropriate Python exception. The associated Python type can be - set manually using the set_module_and_type(...) static function. -

    -
    namespace boost { namespace python { namespace numeric
    -{
    -   class array : public object
    -   {
    -    public:
    -      object astype();
    -      template <class Type>
    -      object astype(Type const& type_);
    -
    -      template <class Type>
    -      array new_(Type const& type_) const;
    -
    -      template <class Sequence>
    -      void resize(Sequence const& x);
    -      void resize(long x1);
    -      void resize(long x1, long x2);
    -      ...
    -      void resize(long x1, long x2,...long xn);
    -
    -      template <class Sequence>
    -      void setshape(Sequence const& x);
    -      void setshape(long x1);
    -      void setshape(long x1, long x2);
    -      ...
    -      void setshape(long x1, long x2,...long xn);
    -
    -      template <class Indices, class Values>
    -      void put(Indices const& indices, Values const& values);
    -
    -      template <class Sequence>
    -      object take(Sequence const& sequence, long axis = 0);
    -
    -      template <class File>
    -      void tofile(File const& f) const;
    -
    -      object factory();
    -      template <class Sequence>
    -      object factory(Sequence const&);
    -      template <class Sequence, class Typecode>
    -      object factory(Sequence const&, Typecode const&, bool copy = true, bool savespace = false);
    -      template <class Sequence, class Typecode, class Type>
    -      object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&);
    -      template <class Sequence, class Typecode, class Type, class Shape>
    -      object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&, Shape const&);
    -
    -      template <class T1>
    -      explicit array(T1 const& x1);
    -      template <class T1, class T2>
    -      explicit array(T1 const& x1, T2 const& x2);
    -      ...
    -      template <class T1, class T2,...class Tn>
    -      explicit array(T1 const& x1, T2 const& x2,...Tn const& xn);
    -
    -      static void set_module_and_type();
    -      static void set_module_and_type(char const* package_path = 0, char const* type_name = 0);
    -      static void get_module_name();
    -
    -      object argmax(long axis=-1);
    -
    -      object argmin(long axis=-1);
    -
    -      object argsort(long axis=-1);
    -
    -      void byteswap();
    -
    -      object copy() const;
    -
    -      object diagonal(long offset = 0, long axis1 = 0, long axis2 = 1) const;
    -
    -      void info() const;
    -
    -      bool is_c_array() const;
    -      bool isbyteswapped() const;
    -      void sort();
    -      object trace(long offset = 0, long axis1 = 0, long axis2 = 1) const;
    -      object type() const;
    -      char typecode() const;
    -
    -      object getflat() const;
    -      long getrank() const;
    -      object getshape() const;
    -      bool isaligned() const;
    -      bool iscontiguous() const;
    -      long itemsize() const;
    -      long nelements() const;
    -      object nonzero() const;
    -
    -      void ravel();
    -      object repeat(object const& repeats, long axis=0);
    -      void setflat(object const& flat);
    -      void swapaxes(long axis1, long axis2);
    -      str tostring() const;
    -      void transpose(object const& axes = object());
    -      object view() const;
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/numeric_hpp/class_array_observer_functions.html b/doc/html/reference/object_wrappers/numeric_hpp/class_array_observer_functions.html deleted file mode 100644 index 26a4a79c..00000000 --- a/doc/html/reference/object_wrappers/numeric_hpp/class_array_observer_functions.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Class array observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object factory();
    -template <class Sequence>
    -object factory(Sequence const&);
    -template <class Sequence, class Typecode>
    -object factory(Sequence const&, Typecode const&, bool copy = true, bool savespace = false);
    -template <class Sequence, class Typecode, class Type>
    -object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&);
    -template <class Sequence, class Typecode, class Type, class Shape>
    -object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&, Shape const&);
    -
    -

    - These functions map to the underlying array type's array() function family. - They are not called "array" because of the C++ limitation that - you can't define a member function with the same name as its enclosing - class. -

    -
    template <class Type>
    -array new_(Type const&) const;
    -
    -

    - This function maps to the underlying array type's new() function. It is - not called "new" because that is a keyword in C++. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/numeric_hpp/class_array_static_functions.html b/doc/html/reference/object_wrappers/numeric_hpp/class_array_static_functions.html deleted file mode 100644 index 036cf1b7..00000000 --- a/doc/html/reference/object_wrappers/numeric_hpp/class_array_static_functions.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -Class array static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static void set_module_and_type(char const* package_path, char const* type_name);
    -static void set_module_and_type();
    -
    -
    -

    -
    -
    Requires
    -

    - package_path and type_name, if supplied, is an ntbs. -

    -
    Effects
    -

    - The first form sets the package path of the module that supplies - the type named by type_name to package_path. The second form restores - the default search behavior. The associated Python type will be searched - for only the first time it is needed, and thereafter the first time - it is needed after an invocation of set_module_and_type. -

    -
    -
    -
    static std::string get_module_name()
    -

    - [variablename [[Effects][Returns the name of the module containing the - class that will be held by new numeric::array instances.]] ] -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/numeric_hpp/example.html b/doc/html/reference/object_wrappers/numeric_hpp/example.html deleted file mode 100644 index 8657bb0c..00000000 --- a/doc/html/reference/object_wrappers/numeric_hpp/example.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    #include <boost/python/numeric.hpp>
    -#include <boost/python/tuple.hpp>
    -
    -// sets the first element in a 2d numeric array
    -void set_first_element(numeric::array& y, double value)
    -{
    -    y[make_tuple(0,0)] = value;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp.html b/doc/html/reference/object_wrappers/object_hpp.html deleted file mode 100644 index 37dfbd5e..00000000 --- a/doc/html/reference/object_wrappers/object_hpp.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -object.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_attribute_policies.html b/doc/html/reference/object_wrappers/object_hpp/class_attribute_policies.html deleted file mode 100644 index 57b1e3b9..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_attribute_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class attribute_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an attribute access - to a mutable object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct attribute_policies : const_attribute_policies
    -  {
    -      static object const& set(object const& target, char const* key, object const& value);
    -      static void del(object const&target, char const* key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_attribute_policies_static_.html b/doc/html/reference/object_wrappers/object_hpp/class_attribute_policies_static_.html deleted file mode 100644 index ada33782..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_attribute_policies_static_.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -Class attribute_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object const& set(object const& target, char const* key, object const& value);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an ntbs. -

    -
    Effects
    -

    - sets the attribute of target named by key to value. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    static void del(object const&target, char const* key);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an ntbs. -

    -
    Effects
    -

    - deletes the attribute of target named by key. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_const_attribute_policies.html b/doc/html/reference/object_wrappers/object_hpp/class_const_attribute_policies.html deleted file mode 100644 index 4a1654c1..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_const_attribute_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class const_attribute_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an attribute access - to a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct const_attribute_policies
    -  {
    -      typedef char const* key_type;
    -      static object get(object const& target, char const* key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_const_attribute_policies_s.html b/doc/html/reference/object_wrappers/object_hpp/class_const_attribute_policies_s.html deleted file mode 100644 index 5b2a823e..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_const_attribute_policies_s.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Class const_attribute_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object get(object const& target, char const* key);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an ntbs. -

    -
    Effects
    -

    - accesses the attribute of target named by key. -

    -
    Returns
    -

    - An object managing the result of the attribute access. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_const_item_policies.html b/doc/html/reference/object_wrappers/object_hpp/class_const_item_policies.html deleted file mode 100644 index 654d2ab9..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_const_item_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class const_item_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an item access (via - the Python bracket operators []) to a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct const_item_policies
    -  {
    -      typedef object key_type;
    -      static object get(object const& target, object const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_const_item_policies_static.html b/doc/html/reference/object_wrappers/object_hpp/class_const_item_policies_static.html deleted file mode 100644 index 191563c7..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_const_item_policies_static.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class const_item_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object get(object const& target, object const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - accesses the item of target specified by key. -

    -
    Returns
    -

    - An object managing the result of the item access. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_const_objattribute_polici0.html b/doc/html/reference/object_wrappers/object_hpp/class_const_objattribute_polici0.html deleted file mode 100644 index 7b00287d..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_const_objattribute_polici0.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Class const_objattribute_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object get(object const& target, object const& key);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an object holding a string. -

    -
    Effects
    -

    - accesses the attribute of target named by key. -

    -
    Returns
    -

    - An object managing the result of the attribute access. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_const_objattribute_policie.html b/doc/html/reference/object_wrappers/object_hpp/class_const_objattribute_policie.html deleted file mode 100644 index edf6eed6..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_const_objattribute_policie.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class const_objattribute_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an attribute access - to a const object when the attribute name is given as a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct const_objattribute_policies
    -  {
    -      typedef object const& key_type;
    -      static object get(object const& target, object const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_const_slice_policies.html b/doc/html/reference/object_wrappers/object_hpp/class_const_slice_policies.html deleted file mode 100644 index ea15c95f..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_const_slice_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class const_slice_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an slice access (via - the Python slice notation [x:y]) to a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct const_slice_policies
    -  {
    -      typedef std::pair<handle<>, handle<> > key_type;
    -      static object get(object const& target, key_type const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_const_slice_policies_stati.html b/doc/html/reference/object_wrappers/object_hpp/class_const_slice_policies_stati.html deleted file mode 100644 index bc37fbe3..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_const_slice_policies_stati.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class const_slice_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object get(object const& target, key_type const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - accesses the slice of target specified by key. -

    -
    Returns
    -

    - An object managing the result of the slice access. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_item_policies.html b/doc/html/reference/object_wrappers/object_hpp/class_item_policies.html deleted file mode 100644 index 6197c48d..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_item_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class item_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an item access (via - the Python bracket operators []) to a mutable object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct item_policies : const_item_policies
    -  {
    -      static object const& set(object const& target, object const& key, object const& value);
    -      static void del(object const& target, object const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_item_policies_static_funct.html b/doc/html/reference/object_wrappers/object_hpp/class_item_policies_static_funct.html deleted file mode 100644 index 61db2a26..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_item_policies_static_funct.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Class item_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object const& set(object const& target, object const& key, object const& value);
    -
    -
    -

    -
    -
    Effects
    -

    - sets the item of target specified by key to value. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    static void del(object const& target, object const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - deletes the item of target specified by key. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_objattribute_policies.html b/doc/html/reference/object_wrappers/object_hpp/class_objattribute_policies.html deleted file mode 100644 index 20002ccd..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_objattribute_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class objattribute_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an attribute access - to a mutable object when the attribute name is given as a const object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct objattribute_policies : const_objattribute_policies
    -  {
    -      static object const& set(object const& target, object const& key, object const& value);
    -      static void del(object const&target, object const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_objattribute_policies_stat.html b/doc/html/reference/object_wrappers/object_hpp/class_objattribute_policies_stat.html deleted file mode 100644 index 154dca78..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_objattribute_policies_stat.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -Class objattribute_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object const& set(object const& target, object const& key, object const& value);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an object holding a string. -

    -
    Effects
    -

    - sets the attribute of target named by key to value. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    static void del(object const&target, object const& key);
    -
    -
    -

    -
    -
    Requires
    -

    - key is an object holding a string. -

    -
    Effects
    -

    - deletes the attribute of target named by key. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_object.html b/doc/html/reference/object_wrappers/object_hpp/class_object.html deleted file mode 100644 index 75fe22ed..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_object.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -Class object - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The intention is that object acts as much like a Python variable as possible. - Thus expressions you'd expect to work in Python should generally work in - the same way from C++. Most of object's interface is provided by its base - class object_operators<object>, and the free functions defined in - this header. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  class object : public object_operators<object>
    -  {
    -   public:
    -      object();
    -      object(object const&);
    -      template <class T>
    -      explicit object(T const& x);
    -
    -      ~object();
    -
    -      object& operator=(object const&);
    -      PyObject* ptr() const;
    -      bool is_none() const;
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_object_constructors_and_de.html b/doc/html/reference/object_wrappers/object_hpp/class_object_constructors_and_de.html deleted file mode 100644 index 72dbbe31..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_object_constructors_and_de.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -Class object constructors and destructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object();
    -
    -

    -
    -
    Effects
    -

    - Constructs an object managing a reference to the Python None object. -

    -
    Throws
    -

    - nothing. -

    -
    -
    -
    template <class T>
    -explicit object(T const& x);
    -
    -
    -

    -
    -
    Effects
    -

    - converts x to python and manages a reference to it. -

    -
    Throws
    -

    - error_already_set and sets a Python TypeError exception if no such - conversion is possible. -

    -
    -
    -
    ~object();
    -
    -
    -

    -
    -
    Effects
    -

    - decrements the reference count of the internally-held object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_object_modifiers.html b/doc/html/reference/object_wrappers/object_hpp/class_object_modifiers.html deleted file mode 100644 index e6066f33..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_object_modifiers.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class object modifiers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    PyObject* ptr() const;
    -
    -

    -
    -
    Returns
    -

    - a pointer to the internally-held Python object. -

    -
    -
    -
    bool is_none() const;
    -
    -

    -
    -
    Returns
    -

    - result of (ptr() == Py_None) -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_slice_nil.html b/doc/html/reference/object_wrappers/object_hpp/class_slice_nil.html deleted file mode 100644 index 69faadd4..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_slice_nil.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Class slice_nil - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    class slice_nil;
    -static const _ = slice_nil();
    -
    -

    - A type that can be used to get the effect of leaving out an index in a - Python slice expression: -

    -
    >>> x[:-1]
    ->>> x[::-1]
    -
    -

    - C++ equivalent: -

    -
    x.slice(_,-1)
    -x[slice(_,_,-1)]
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_slice_policies.html b/doc/html/reference/object_wrappers/object_hpp/class_slice_policies.html deleted file mode 100644 index 1582bc7f..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_slice_policies.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Class slice_policies - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The policies which are used for proxies representing an slice access to - a mutable object. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  struct slice_policies : const_slice_policies
    -  {
    -      static object const& set(object const& target, key_type const& key, object const& value);
    -      static void del(object const& target, key_type const& key);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_slice_policies_static_func.html b/doc/html/reference/object_wrappers/object_hpp/class_slice_policies_static_func.html deleted file mode 100644 index 4d8a0c6c..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_slice_policies_static_func.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Class slice_policies static functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    static object const& set(object const& target, key_type const& key, object const& value);
    -
    -
    -

    -
    -
    Effects
    -

    - sets the slice of target specified by key to value. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    static void del(object const& target, key_type const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - deletes the slice of target specified by key. -

    -
    Throws
    -

    - error_already_set if a Python exception is raised. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_template_object_operators.html b/doc/html/reference/object_wrappers/object_hpp/class_template_object_operators.html deleted file mode 100644 index 96013d57..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_template_object_operators.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -Class template object_operators - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This is the base class of object and its proxy template used to supply - common interface: member functions, and operators which must be defined - within the class body. Its template parameter U is expected to be a class - derived from object_operators<U>. In practice users should never - use this class directly, but it is documented here because it supplies - important interface to object and its proxies. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  template <class U>
    -  class object_operators
    -  {
    -   public:
    -      // function call
    -      //
    -      object operator()() const;
    -
    -      template <class A0>
    -      object operator()(A0 const&) const;
    -      template <class A0, class A1>
    -      object operator()(A0 const&, A1 const&) const;
    -      ...
    -      template <class A0, class A1,...class An>
    -      object operator()(A0 const&, A1 const&,...An const&) const;
    -
    -      detail::args_proxy operator* () const;
    -      object operator()(detail::args_proxy const &args) const;
    -      object operator()(detail::args_proxy const &args,
    -                        detail::kwds_proxy const &kwds) const;
    -
    -      // truth value testing
    -      //
    -      typedef unspecified bool_type;
    -      operator bool_type() const;
    -
    -      // Attribute access
    -      //
    -      proxy<const_object_attribute> attr(char const*) const;
    -      proxy<object_attribute> attr(char const*);
    -      proxy<const_object_objattribute> attr(object const&) const;
    -      proxy<object_objattribute> attr(object const&);
    -
    -      // item access
    -      //
    -      template <class T>
    -      proxy<const_object_item> operator[](T const& key) const;
    -
    -      template <class T>
    -      proxy<object_item> operator[](T const& key);
    -
    -      // slicing
    -      //
    -      template <class T, class V>
    -      proxy<const_object_slice> slice(T const& start, V const& end) const
    -
    -      template <class T, class V>
    -      proxy<object_slice> slice(T const& start, V const& end);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_template_object_operators_.html b/doc/html/reference/object_wrappers/object_hpp/class_template_object_operators_.html deleted file mode 100644 index 080c6469..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_template_object_operators_.html +++ /dev/null @@ -1,197 +0,0 @@ - - - -Class template object_operators observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object operator()() const;
    -template <class A0>
    -object operator()(A0 const&) const;
    -template <class A0, class A1>
    -object operator()(A0 const&, A1 const&) const;
    -...
    -template <class A0, class A1,...class An>
    -object operator()(A0 const& a1, A1 const& a2,...An const& aN) const;
    -
    -
    -

    -
    -
    Effects
    -

    - call<object>(object(*static_cast<U*>(this)).ptr(), - a1, - a2,...aN) -

    -
    -
    -
    object operator()(detail::args_proxy const &args) const;
    -
    -

    -
    -
    Effects
    -

    - call object - with arguments - given by - the tuple - args -

    -
    -
    -
    object operator()(detail::args_proxy const &args,
    -                  detail::kwds_proxy const &kwds) const;
    -
    -
    -

    -
    -
    Effects
    -

    - call object - with arguments - given by - the tuple - args, - and named - arguments given - by the - dictionary kwds -

    -
    -
    -
    operator bool_type() const;
    -
    -

    -
    -
    Effects
    -

    - Tests truth value of *this. -

    -
    Returns
    -

    - call<object>(object(*static_cast<U*>(this)).ptr(), - a1, - a2,...aN) -

    -
    -
    -
    proxy<const_object_attribute> attr(char const* name) const;
    -proxy<object_attribute> attr(char const* name);
    -
    -
    -

    -
    -
    Requires
    -

    - name is an ntbs. -

    -
    Effects
    -

    - accesses the named attribute of *this. -

    -
    Returns
    -

    - a proxy object which binds object(static_cast<U>(this)) - as its target, and name as its key. -

    -
    -
    -
    proxy<const_object_objattribute> attr(const object& name) const;
    -proxy<object_objattribute> attr(const object& name);
    -
    -
    -

    -
    -
    Requires
    -

    - name is a object holding a string. -

    -
    Effects
    -

    - accesses the named attribute of *this. -

    -
    Returns
    -

    - a proxy object which binds object(static_cast<U>(this)) - as its target, and name as its key. -

    -
    -
    -
    template <class T>
    -proxy<const_object_item> operator[](T const& key) const;
    -template <class T>
    -proxy<object_item> operator[](T const& key);
    -
    -
    -

    -
    -
    Effects
    -

    - accesses the item of *this indicated by key. -

    -
    Returns
    -

    - a proxy object which binds object(static_cast<U>(this)) - as its target, and object(key) as its key. -

    -
    -
    -
    template <class T, class V>
    -proxy<const_object_slice> slice(T const& start; start, V const& finish) const
    -template <class T, class V>
    -proxy<object_slice> slice(T const& start; start, V const& finish);
    -
    -
    -

    -
    -
    Effects
    -

    - accesses the slice of *this indicated by std::make_pair(object(start), - object(finish)). -

    -
    Returns
    -

    - a proxy object which binds object(static_cast<U>(this)) - as its target, and std::make_pair(object(start), object(finish)) - as its key. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_template_proxy.html b/doc/html/reference/object_wrappers/object_hpp/class_template_proxy.html deleted file mode 100644 index be5af4a2..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_template_proxy.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -Class template proxy - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This template is instantiated with various Policies described in this document - in order to implement attribute, item, and slice access for object. It - stores an object of type Policies::key_type. -

    -
    namespace boost { namespace python { namespace api
    -{
    -  template <class Policies>
    -  class proxy : public object_operators<proxy<Policies> >
    -  {
    -   public:
    -      operator object() const;
    -
    -      proxy const& operator=(proxy const&) const;
    -      template <class T>
    -      inline proxy const& operator=(T const& rhs) const;
    -
    -      void del() const;
    -
    -      template <class R>
    -      proxy operator+=(R const& rhs);
    -      template <class R>
    -      proxy operator-=(R const& rhs);
    -      template <class R>
    -      proxy operator*=(R const& rhs);
    -      template <class R>
    -      proxy operator/=(R const& rhs);
    -      template <class R>
    -      proxy operator%=(R const& rhs);
    -      template <class R>
    -      proxy operator<<=(R const& rhs);
    -      template <class R>
    -      proxy operator>>=(R const& rhs);
    -      template <class R>
    -      proxy operator&=(R const& rhs);
    -      template <class R>
    -      proxy operator|=(R const& rhs);
    -  };
    -}}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_template_proxy_modifier_fu.html b/doc/html/reference/object_wrappers/object_hpp/class_template_proxy_modifier_fu.html deleted file mode 100644 index bcaeb7c7..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_template_proxy_modifier_fu.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -Class template proxy modifier functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    proxy const& operator=(proxy const& rhs) const;
    -template <class T>
    -inline proxy const& operator=(T const& rhs) const;
    -
    -
    -

    -
    -
    Effects
    -

    - Policies::set(target, key , object(rhs)) with the proxy's target - and key objects. -

    -
    -
    -
    template <class R>
    -proxy operator+=(R const& rhs);
    -template <class R>
    -proxy operator-=(R const& rhs);
    -template <class R>
    -proxy operator*=(R const& rhs);
    -template <class R>
    -proxy operator/=(R const& rhs);
    -template <class R>
    -proxy operator%=(R const& rhs);
    -template <class R>
    -proxy operator<<=(R const& rhs);
    -template <class R>
    -proxy operator>>=(R const& rhs);
    -template <class R>
    -proxy operator&=(R const& rhs);
    -template <class R>
    -proxy operator|=(R const& rhs);
    -
    -
    -

    -
    -
    Effects
    -

    - for a given operator@, object(*this) @ rhs; -

    -
    Returns
    -

    - *this -

    -
    -
    -
    void del() const;
    -
    -

    -
    -
    Effects
    -

    - Policies::del(target, key ) with the proxy's target and key objects. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/class_template_proxy_observer_fu.html b/doc/html/reference/object_wrappers/object_hpp/class_template_proxy_observer_fu.html deleted file mode 100644 index e07f36b2..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/class_template_proxy_observer_fu.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Class template proxy observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    operator object() const;
    -
    -

    -
    -
    Effects
    -

    - applies Policies::get(target, key ) with the proxy's target and key - objects. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/example.html b/doc/html/reference/object_wrappers/object_hpp/example.html deleted file mode 100644 index 6c27a6ef..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/example.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Python code: -

    -
    def sum_items(seq):
    -   result = 0
    -   for x in seq:
    -      result += x
    -   return result
    -
    -

    - C++ version -

    -
    object sum_items(object seq)
    -{
    -   object result = object(0);
    -   for (int i = 0; i < len(seq); ++i)
    -      result += seq[i];
    -   return result;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/object_hpp/functions.html b/doc/html/reference/object_wrappers/object_hpp/functions.html deleted file mode 100644 index 51c5f6c1..00000000 --- a/doc/html/reference/object_wrappers/object_hpp/functions.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -void del(proxy<T> const& x);
    -
    -
    -

    -
    -
    Effects
    -

    - x.del() -

    -
    -
    -
    template<class L,class R> object operator>(L const&l,R const&r);
    -template<class L,class R> object operator>=(L const&l,R const&r);
    -template<class L,class R> object operator<(L const&l,R const&r);
    -template<class L,class R> object operator<=(L const&l,R const&r);
    -template<class L,class R> object operator==(L const&l,R const&r);
    -template<class L,class R> object operator!=(L const&l,R const&r);
    -
    -
    -

    -
    -
    Effects
    -

    - returns the result of applying the operator to object(l) and object(r), - respectively, in Python. -

    -
    -
    -
    template<class L,class R> object operator+(L const&l,R const&r);
    -template<class L,class R> object operator-(L const&l,R const&r);
    -template<class L,class R> object operator*(L const&l,R const&r);
    -template<class L,class R> object operator/(L const&l,R const&r);
    -template<class L,class R> object operator%(L const&l,R const&r);
    -template<class L,class R> object operator<<(L const&l,R const&r);
    -template<class L,class R> object operator>>(L const&l,R const&r);
    -template<class L,class R> object operator&(L const&l,R const&r);
    -template<class L,class R> object operator^(L const&l,R const&r);
    -template<class L,class R> object operator|(L const&l,R const&r);
    -
    -
    -

    -
    -
    Effects
    -

    - returns the result of applying the operator to object(l) and object(r), - respectively, in Python. -

    -
    -
    -
    template<class R> object& operator+=(object&l,R const&r);
    -template<class R> object& operator-=(object&l,R const&r);
    -template<class R> object& operator*=(object&l,R const&r);
    -template<class R> object& operator/=(object&l,R const&r);
    -template<class R> object& operator%=(object&l,R const&r);
    -template<class R> object& operator<<=(object&l,R const&r)
    -template<class R> object& operator>>=(object&l,R const&r);
    -template<class R> object& operator&=(object&l,R const&r);
    -template<class R> object& operator^=(object&l,R const&r);
    -template<class R> object& operator|=(object&l,R const&r);
    -
    -
    -

    -
    -
    Effects
    -

    - assigns to l the result of applying the corresponding Python inplace - operator to l and object(r), respectively. -

    -
    Returns
    -

    - l -

    -
    -
    -
    long len(object const& obj);
    -
    -

    -
    -
    Effects
    -

    - PyObject_Length(obj.ptr()) -

    -
    Returns
    -

    - len() - of object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/slice_hpp.html b/doc/html/reference/object_wrappers/slice_hpp.html deleted file mode 100644 index 03cbcb01..00000000 --- a/doc/html/reference/object_wrappers/slice_hpp.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -slice.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Exposes a TypeWrapper for the Python slice type. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/slice_hpp/class_slice.html b/doc/html/reference/object_wrappers/slice_hpp/class_slice.html deleted file mode 100644 index 7064afa9..00000000 --- a/doc/html/reference/object_wrappers/slice_hpp/class_slice.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -Class slice - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the extended slicing protocol by wrapping the built-in slice type. - The semantics of the constructors and member functions defined below can - be fully understood by reading the TypeWrapper concept definition. Since - slice is publicly derived from object, the public object interface applies - to slice instances as well. -

    -
    namespace boost { namespace python
    -{
    -  class slice : public object
    -  {
    -   public:
    -      slice(); // create an empty slice, equivalent to [::]
    -
    -      template <typename Int1, typename Int2>
    -      slice(Int1 start, Int2 stop);
    -
    -      template <typename Int1, typename Int2, typename Int3>
    -      slice(Int1 start, Int2 stop, Int3 step);
    -
    -      // Access the parameters this slice was created with.
    -      object start();
    -      object stop();
    -      object step();
    -
    -      // The return type of slice::get_indices()
    -      template <typename RandomAccessIterator>
    -      struct range
    -      {
    -          RandomAccessIterator start;
    -          RandomAccessIterator stop;
    -          int step;
    -      };
    -
    -      template <typename RandomAccessIterator>
    -      range<RandomAccessIterator>
    -      get_indices(
    -          RandomAccessIterator const& begin,
    -          RandomAccessIterator const& end);
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/slice_hpp/class_slice_constructors.html b/doc/html/reference/object_wrappers/slice_hpp/class_slice_constructors.html deleted file mode 100644 index e27fc60a..00000000 --- a/doc/html/reference/object_wrappers/slice_hpp/class_slice_constructors.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Class slice constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    slice();
    -
    -

    -
    -
    Effects
    -

    - constructs a slice with default stop, start, and step values. Equivalent - to the slice object created as part of the Python expression base[::]. -

    -
    Throws
    -

    - nothing -

    -
    -
    -
    template <typename Int1, typename Int2>
    -slice(Int1 start, Int2 stop);
    -
    -
    -

    -
    -
    Requires
    -

    - start, stop, and step - are of type slice_nil - or convertible to type object. -

    -
    Effects
    -

    - constructs a new slice with default step value and the provided start - and stop values. Equivalent to the slice object created by the built-in - Python function slice(start,stop), or as part of the Python expression - base[start:stop]. -

    -
    Throws
    -

    - error_already_set - and sets a Python TypeError exception if no conversion is possible - from the arguments to type object. -

    -
    -
    -
    template <typename Int1, typename Int2, typename Int3>
    -slice(Int1 start, Int2 stop, Int3 step);
    -
    -
    -

    -
    -
    Requires
    -

    - start, stop, and step - are slice_nil or - convertible to type object. -

    -
    Effects
    -

    - constructs a new slice with start stop and step values. Equivalent - to the slice object created by the built-in Python function slice(start,stop,step), - or as part of the Python expression base[start:stop:step]. -

    -
    Throws
    -

    - error_already_set - and sets a Python TypeError exception if no conversion is possible - from the arguments to type object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/slice_hpp/class_slice_observer_functions.html b/doc/html/reference/object_wrappers/slice_hpp/class_slice_observer_functions.html deleted file mode 100644 index 3e0709b2..00000000 --- a/doc/html/reference/object_wrappers/slice_hpp/class_slice_observer_functions.html +++ /dev/null @@ -1,124 +0,0 @@ - - - -Class slice observer functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    object slice::start() const;
    -object slice::stop() const;
    -object slice::step() const;
    -
    -
    -

    -
    -
    Effects
    -

    - None -

    -
    Throws
    -

    - nothing -

    -
    Returns
    -

    - the parameter that the slice was created with. If the parameter was - omitted or slice_nil - was used when the slice was created, than that parameter will be - a reference to PyNone - and compare equal to a default-constructed object. In principal, - any object may be used when creating a slice object, but in practice - they are usually integers. -

    -
    -
    -
    template <typename RandomAccessIterator>
    -slice::range<RandomAccessIterator>
    -slice::get_indices(
    -    RandomAccessIterator const& begin,
    -    RandomAccessIterator const& end) const;
    -
    -
    -

    -
    -
    Arguments
    -

    - A pair of STL-conforming Random Access Iterators that form a half-open - range. -

    -
    Effects
    -

    - Create a RandomAccessIterator pair that defines a fully-closed range - within the [begin,end) range of its arguments. This function - translates this slice's indices while accounting for the effects - of any PyNone or negative indices, and non-singular step sizes. -

    -
    Returns
    -

    - a slice::range that has been initialized - with a non-zero value of step and a pair of RandomAccessIterators - that point within the range of this functions arguments and define - a closed interval. -

    -
    Throws
    -

    - Raises a Python TypeError exception if any of this slice's arguments - are neither references to PyNone nor convertible to int. Throws - std::invalid_argument if the resulting - range would be empty. You should always wrap calls to slice::get_indices() - within try { - ...; } - catch (std::invalid_argument) - {} to handle this case and - take appropriate action. -

    -
    Rationale
    -

    - closed-interval: If an open interval were used, then for step size - other than 1, the required state for the end iterator would point - beyond the one-past-the-end position or before the beginning of the - specified range. exceptions on empty slice: It is impossible to define - a closed interval over an empty range, so some other form of error - checking would have to be used to prevent undefined behavior. In - the case where the exception is not caught, it will simply be translated - to Python by the default exception handling mechanisms. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/slice_hpp/example.html b/doc/html/reference/object_wrappers/slice_hpp/example.html deleted file mode 100644 index cc4131c9..00000000 --- a/doc/html/reference/object_wrappers/slice_hpp/example.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    using namespace boost::python;
    -
    -// Perform an extended slice of a Python list.
    -// Warning: extended slicing was not supported for built-in types prior 
    -// to Python 2.3
    -list odd_elements(list l)
    -{
    -    return l[slice(_,_,2)];
    -}
    -
    -// Perform a multidimensional extended slice of a Numeric.array
    -numeric::array even_columns(numeric::array arr)
    -{
    -    // select every other column, starting with the second, of a 2-D array.
    -    // Equivalent to "return arr[:, 1::2]" in Python.
    -    return arr[make_tuple( slice(), slice(1,_,2))];
    -}
    -
    -// Perform a summation over a slice of a std::vector.
    -double partial_sum(std::vector<double> const& Foo, const slice index)
    -{
    -    slice::range<std::vector<double>::const_iterator> bounds;
    -    try {
    -        bounds = index.get_indices<>(Foo.begin(), Foo.end());
    -    }
    -    catch (std::invalid_argument) {
    -        return 0.0;
    -    }
    -    double sum = 0.0;
    -    while (bounds.start != bounds.stop) {
    -        sum += *bounds.start;
    -        std::advance( bounds.start, bounds.step);
    -    }
    -    sum += *bounds.start;
    -    return sum;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/str_hpp.html b/doc/html/reference/object_wrappers/str_hpp.html deleted file mode 100644 index eec6d3e8..00000000 --- a/doc/html/reference/object_wrappers/str_hpp.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -str.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Exposes a TypeWrapper for the Python str type. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/str_hpp/class_str.html b/doc/html/reference/object_wrappers/str_hpp/class_str.html deleted file mode 100644 index d0f66ca2..00000000 --- a/doc/html/reference/object_wrappers/str_hpp/class_str.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -Class str - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the string methods of Python's built-in str type. The semantics - of the constructors and member functions defined below, except for the - two-argument constructors which construct str objects from a range of characters, - can be fully understood by reading the TypeWrapper concept definition. - Since str is publicly derived from object, the public object interface - applies to str instances as well. -

    -
    namespace boost { namespace python
    -{
    -  class str : public object
    -  {
    -   public:
    -      str(); // new str
    -
    -      str(char const* s); // new str
    -
    -      str(char const* start, char const* finish); // new str
    -      str(char const* start, std::size_t length); // new str
    -
    -      template <class T>
    -      explicit str(T const& other);
    -
    -      str capitalize() const;
    -
    -      template <class T>
    -      str center(T const& width) const;
    -
    -      template<class T>
    -      long count(T const& sub) const;
    -      template<class T1, class T2>
    -      long count(T1 const& sub,T2 const& start) const;
    -      template<class T1, class T2, class T3>
    -      long count(T1 const& sub,T2 const& start, T3 const& end) const;
    -
    -      object decode() const;
    -      template<class T>
    -      object decode(T const& encoding) const;
    -      template<class T1, class T2>
    -      object decode(T1 const& encoding, T2 const& errors) const;
    -
    -      object encode() const;
    -      template <class T>
    -      object encode(T const& encoding) const;
    -      template <class T1, class T2>
    -      object encode(T1 const& encoding, T2 const& errors) const;
    -
    -      template <class T>
    -      bool endswith(T const& suffix) const;
    -      template <class T1, class T2>
    -      bool endswith(T1 const& suffix, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      bool endswith(T1 const& suffix, T2 const& start, T3 const& end) const;
    -
    -      str expandtabs() const;
    -      template <class T>
    -      str expandtabs(T const& tabsize) const;
    -
    -      template <class T>
    -      long find(T const& sub) const;
    -      template <class T1, class T2>
    -      long find(T1 const& sub, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      long find(T1 const& sub, T2 const& start, T3 const& end) const;
    -
    -      template <class T>
    -      long index(T const& sub) const;
    -      template <class T1, class T2>
    -      long index(T1 const& sub, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      long index(T1 const& sub, T2 const& start, T3 const& end) const;
    -
    -      bool isalnum() const;
    -      bool isalpha() const;
    -      bool isdigit() const;
    -      bool islower() const;
    -      bool isspace() const;
    -      bool istitle() const;
    -      bool isupper() const;
    -
    -      template <class T>
    -      str join(T const& sequence) const;
    -
    -      template <class T>
    -      str ljust(T const& width) const;
    -
    -      str lower() const;
    -      str lstrip() const;
    -
    -      template <class T1, class T2>
    -      str replace(T1 const& old, T2 const& new_) const;
    -      template <class T1, class T2, class T3>
    -      str replace(T1 const& old, T2 const& new_, T3 const& maxsplit) const;
    -
    -      template <class T>
    -      long rfind(T const& sub) const;
    -      template <class T1, class T2>
    -      long rfind(T1 const& sub, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      long rfind(T1 const& sub, T2 const& start, T3 const& end) const;
    -
    -      template <class T>
    -      long rindex(T const& sub) const;
    -      template <class T1, class T2>
    -      long rindex(T1 const& sub, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      long rindex(T1 const& sub, T2 const& start, T3 const& end) const;
    -
    -      template <class T>
    -      str rjust(T const& width) const;
    -
    -      str rstrip() const;
    -
    -      list split() const;
    -      template <class T>
    -      list split(T const& sep) const;
    -      template <class T1, class T2>
    -      list split(T1 const& sep, T2 const& maxsplit) const;
    -
    -      list splitlines() const;
    -      template <class T>
    -      list splitlines(T const& keepends) const;
    -
    -      template <class T>
    -      bool startswith(T const& prefix) const;
    -      template <class T1, class T2>
    -      bool startswidth(T1 const& prefix, T2 const& start) const;
    -      template <class T1, class T2, class T3>
    -      bool startswidth(T1 const& prefix, T2 const& start, T3 const& end) const;
    -
    -      str strip() const;
    -      str swapcase() const;
    -      str title() const;
    -
    -      template <class T>
    -      str translate(T const& table) const;
    -      template <class T1, class T2>
    -      str translate(T1 const& table, T2 const& deletechars) const;
    -
    -      str upper() const;
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/str_hpp/example.html b/doc/html/reference/object_wrappers/str_hpp/example.html deleted file mode 100644 index 53711509..00000000 --- a/doc/html/reference/object_wrappers/str_hpp/example.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    using namespace boost::python;
    -str remove_angle_brackets(str x)
    -{
    -  return x.strip('<').strip('>');
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/template.html b/doc/html/reference/object_wrappers/template.html deleted file mode 100644 index cdf5be3b..00000000 --- a/doc/html/reference/object_wrappers/template.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/template/class_template.html b/doc/html/reference/object_wrappers/template/class_template.html deleted file mode 100644 index b98bb87d..00000000 --- a/doc/html/reference/object_wrappers/template/class_template.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -Class template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/template/class_template_constructors.html b/doc/html/reference/object_wrappers/template/class_template_constructors.html deleted file mode 100644 index 40083f61..00000000 --- a/doc/html/reference/object_wrappers/template/class_template_constructors.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Class template constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    -

    -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/template/example.html b/doc/html/reference/object_wrappers/template/example.html deleted file mode 100644 index d1c9d6dc..00000000 --- a/doc/html/reference/object_wrappers/template/example.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -Example - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    - - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/reference/object_wrappers/template0.html b/doc/html/reference/object_wrappers/template0.html deleted file mode 100644 index 6c92c58f..00000000 --- a/doc/html/reference/object_wrappers/template0.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/template0/class_template.html b/doc/html/reference/object_wrappers/template0/class_template.html deleted file mode 100644 index f21cc902..00000000 --- a/doc/html/reference/object_wrappers/template0/class_template.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -Class template - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/template0/class_template_constructors.html b/doc/html/reference/object_wrappers/template0/class_template_constructors.html deleted file mode 100644 index 3fa57ad5..00000000 --- a/doc/html/reference/object_wrappers/template0/class_template_constructors.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -Class template constructors - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    -

    -
    -
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/template0/example.html b/doc/html/reference/object_wrappers/template0/example.html deleted file mode 100644 index a3299ec7..00000000 --- a/doc/html/reference/object_wrappers/template0/example.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -Example - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    - - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/reference/object_wrappers/tuple_hpp.html b/doc/html/reference/object_wrappers/tuple_hpp.html deleted file mode 100644 index 5f40f475..00000000 --- a/doc/html/reference/object_wrappers/tuple_hpp.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -tuple.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Exposes a TypeWrapper for the Python tuple type. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/tuple_hpp/class_tuple.html b/doc/html/reference/object_wrappers/tuple_hpp/class_tuple.html deleted file mode 100644 index 673c6967..00000000 --- a/doc/html/reference/object_wrappers/tuple_hpp/class_tuple.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class tuple - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Exposes the interface of Python's built-in tuple type. The semantics of - the constructors and member functions defined below can be fully understood - by reading the TypeWrapper concept definition. Since tuple is publicly - derived from object, the public object interface applies to tuple instances - as well. -

    -
    namespace boost { namespace python
    -{
    -   class tuple : public object
    -   {
    -      // tuple() -> an empty tuple
    -      tuple();
    -
    -      // tuple(sequence) -> tuple initialized from sequence's items
    -      template <class T>
    -      explicit tuple(T const& sequence)
    -  };
    -}}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/tuple_hpp/example.html b/doc/html/reference/object_wrappers/tuple_hpp/example.html deleted file mode 100644 index 5df5977c..00000000 --- a/doc/html/reference/object_wrappers/tuple_hpp/example.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    using namespace boost::python;
    -tuple head_and_tail(object sequence)
    -{
    -    return make_tuple(sequence[0],sequence[-1]);
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/object_wrappers/tuple_hpp/function_make_tuple.html b/doc/html/reference/object_wrappers/tuple_hpp/function_make_tuple.html deleted file mode 100644 index 11e6637a..00000000 --- a/doc/html/reference/object_wrappers/tuple_hpp/function_make_tuple.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Function make_tuple - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    namespace boost { namespace python
    -{
    -  tuple make_tuple();
    -
    -  template <class A0>
    -  tuple make_tuple(A0 const& a0);
    -
    -  template <class A0, class A1>
    -  tuple make_tuple(A0 const& a0, A1 const& a1);
    -  ...
    -  template <class A0, class A1,...class An>
    -  tuple make_tuple(A0 const& a0, A1 const& a1,...An const& an);
    -}}
    -
    -
    -

    -
    -
    Effect
    -

    - Constructs a new tuple object composed of object(a0), object(a0),...object(an). -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion.html b/doc/html/reference/to_from_python_type_conversion.html index 804c93c0..ce85ab3e 100644 --- a/doc/html/reference/to_from_python_type_conversion.html +++ b/doc/html/reference/to_from_python_type_conversion.html @@ -3,14 +3,14 @@ Chapter 5. To/From Python Type Conversion - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp.html b/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp.html index 3a9df090..cd683300 100644 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp.html +++ b/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp.html @@ -3,14 +3,14 @@ boost/python/implicit.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp/example.html b/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp/example.html deleted file mode 100644 index 02ea6384..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp/example.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    #include <boost/python/class.hpp>
    -#include <boost/python/implicit.hpp>
    -#include <boost/python/module.hpp>
    -
    -using namespace boost::python;
    -
    -struct X
    -{
    -    X(int x) : v(x) {}
    -    operator int() const { return v; }
    -    int v;
    -};
    -
    -int x_value(X const& x)
    -{
    -    return x.v;
    -}
    -
    -X make_x(int n) { return X(n); }
    -
    -BOOST_PYTHON_MODULE(implicit_ext)
    -{
    -    def("x_value", x_value);
    -    def("make_x", make_x);
    -
    -    class_<X>("X",
    -        init<int>())
    -        ;
    -
    -    implicitly_convertible<X,int>();
    -    implicitly_convertible<int,X>();
    -}
    -
    -

    - In Python: -

    -
    >>> from implicit_ext import *
    ->>> x_value(X(42))
    -42
    ->>> x_value(42)
    -42
    ->>> x = make_x(X(42))
    ->>> x_value(x)
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp/function_template_implicit_conve.html b/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp/function_template_implicit_conve.html deleted file mode 100644 index e7b1227d..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp/function_template_implicit_conve.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -Function template implicit_convertible - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class Source, class Target>
    -void implicitly_convertible();
    -
    -
    ---- - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Description -

    -
    -

    - Source -

    -
    -

    - The source type of the implicit conversion -

    -
    -

    - Target -

    -
    -

    - The target type of the implicit conversion -

    -
    -
    -

    -
    -
    Requires
    -

    - The declaration Target - t(s);, - where s is of type Source, is valid. -

    -
    Effects
    -

    - registers an rvalue from_python - converter to Target which can succeed for any PyObject* p - iff there exists any registered converter which can produce Source - rvalues -

    -
    Rationale
    -

    - C++ users expect to be able to take advantage of the same sort of - interoperability in Python as they do in C++. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_.html b/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_.html index 1f24eb74..7626e6c2 100644 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_.html +++ b/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_.html @@ -3,14 +3,14 @@ boost/python/lvalue_from_pytype.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_extract_identity.html b/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_extract_identity.html deleted file mode 100644 index e33898a1..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_extract_identity.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Class template extract_identity - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - extract_identity is a model of Extractor which can be used in - the common case where the C++ type to be extracted is the same as the Python - object type. -

    -
    namespace boost { namespace python
    -{
    -   template <class InstanceType>
    -   struct extract_identity
    -   {
    -      static InstanceType& execute(InstanceType& c);
    -   };
    -}}
    -
    -
    - -
    InstanceType& execute(InstanceType& c);
    -
    -

    -
    -
    Returns
    -

    - c -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_extract_member.html b/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_extract_member.html deleted file mode 100644 index 4fb4162d..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_extract_member.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -Class template extract_member - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - extract_member is a model - of Extractor - which can be used in the common case in the common case where the C++ type - to be extracted is a member of the Python object. -

    -
    namespace boost { namespace python
    -{
    -   template <class InstanceType, class MemberType, MemberType (InstanceType::*member)>
    -   struct extract_member
    -   {
    -      static MemberType& execute(InstanceType& c);
    -   };
    -}}
    -
    -
    - -
    static MemberType& execute(InstanceType& c);
    -
    -

    -
    -
    Returns
    -

    - c.*member -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_lvalue_from_pytyp.html b/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_lvalue_from_pytyp.html deleted file mode 100644 index 4c294737..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/class_template_lvalue_from_pytyp.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -Class template lvalue_from_pytype - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - Class template lvalue_from_pytype will register from_python converters - which, given an object of the given Python type, can extract references - and pointers to a particular C++ type. Its template arguments are: -

    -
    In the table below, x denotes an object of type PythonObject&
    -
    -
    ----- - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Extractor -

    -
    -

    - a model of Extractor - whose execute function returns a reference type. -

    -
    -

    - Extracts the lvalue from the Python object once its type has - been confirmed -

    -
    -

    - python_type -

    -
    -

    - A compile-time constant PyTypeObject* -

    -
    -

    - The Python type of instances convertible by this converter. Python - subtypes are also convertible. -

    -
    -
    namespace boost { namespace python
    -{
    -   template <class Extractor, PyTypeObject const* python_type>
    -   struct lvalue_from_pytype
    -   {
    -       lvalue_from_pytype();
    -   };
    -}}
    -
    -
    - -
    lvalue_from_pytype();
    -
    -

    -
    -
    Effects
    -

    - Registers converters which can convert Python objects of the given - type to lvalues of the type returned by Extractor::execute. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/example.html b/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/example.html deleted file mode 100644 index 20f22c18..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_/example.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This example presumes that someone has implemented the standard noddy example - module from the Python documentation, and we want to build a module which - manipulates Noddys. Since noddy_NoddyObject is so simple that it carries - no interesting information, the example is a bit contrived: it assumes - you want to keep track of one particular object for some reason. This module - would have to be dynamically linked to the module which defines noddy_NoddyType. -

    -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/handle.hpp>
    -#include <boost/python/borrowed.hpp>
    -#include <boost/python/lvalue_from_pytype.hpp>
    -
    -// definition lifted from the Python docs
    -typedef struct {
    -   PyObject_HEAD
    -} noddy_NoddyObject;
    -
    -using namespace boost::python;
    -static handle<noddy_NoddyObject> cache;
    -
    -bool is_cached(noddy_NoddyObject* x)
    -{
    -   return x == cache.get();
    -}
    -
    -void set_cache(noddy_NoddyObject* x)
    -{
    -   cache = handle<noddy_NoddyObject>(borrowed(x));
    -}
    -
    -BOOST_PYTHON_MODULE(noddy_cache)
    -{
    -   def("is_cached", is_cached);
    -   def("set_cache", set_cache);
    -
    -   // register Noddy lvalue converter
    -   lvalue_from_pytype<extract_identity<noddy_NoddyObject>,&noddy_NoddyType>();
    -}
    -
    -

    - In Python: -

    -
    >>> import noddy
    ->>> n = noddy.new_noddy()
    ->>> import noddy_cache
    ->>> noddy_cache.is_cached(n)
    -0
    ->>> noddy_cache.set_cache(n)
    ->>> noddy_cache.is_cached(n)
    -1
    ->>> noddy_cache.is_cached(noddy.new_noddy())
    -0
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv.html b/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv.html index 25b5ac8b..bd9cd1f8 100644 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv.html +++ b/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv.html @@ -3,14 +3,14 @@ boost/python/opaque_pointer_converter.hpp - + -
    +

    PrevUpHomeNext @@ -55,18 +55,13 @@

    Effects
    -
      -
    • - Registers the instance as a lvalue_from_pytype converter - from Python objects into opaque pointers. The Python Objects - created are named after the type pointed to by the opaque pointer - being wrapped. -
    • -
    • - Registers the instance as a to_python_converter - from opaque pointers to Python objects. -
    • -
    +

    + * Registers the instance as a lvalue_from_pytype converter + from Python objects into opaque pointers. The Python Objects created + are named after the type pointed to by the opaque pointer being wrapped. + * Registers the instance as a to_python_converter from + opaque pointers to Python objects. +

    diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv/class_template_opaque_constructo.html b/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv/class_template_opaque_constructo.html deleted file mode 100644 index c2a00dff..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv/class_template_opaque_constructo.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Class template opaque constructor - - - - - - - - -
    - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    opaque();
    -
    -

    -
    -
    Effects
    -
      -
    • - Registers the instance as a lvalue_from_pytype converter - from Python objects into opaque pointers. The Python Objects - created are named after the type pointed to by the opaque pointer - being wrapped. -
    • -
    • - Registers the instance as a to_python_converter - from opaque pointers to Python objects. -
    • -
    -
    -
    -
    - - - - - -
    [Note]Note

    - If there is already an instance registered by another module, this instance - doesn't try to register again in order to avoid warnings about multiple - registrations. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv/macro_boost_python_opaque_specia.html b/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv/macro_boost_python_opaque_specia.html deleted file mode 100644 index 9c0427bf..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv/macro_boost_python_opaque_specia.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Macro BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(Pointee) - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This macro must be used to define specializations of the type_id function which can't be - instantiated for incomplete types. -

    -
    - - - - - -
    [Note]Note

    - The macro must be invoked in every translation unit which uses the opaque - converter. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt.html b/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt.html index 543c2107..7a15754b 100644 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt.html +++ b/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt.html @@ -3,14 +3,14 @@ boost/python/register_ptr_to_python.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt/example.html b/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt/example.html deleted file mode 100644 index e1c7dc91..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt/example.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Here is an example of a module that contains a class A with virtual functions - and some functions that work with boost::shared_ptr<A>. -

    -

    - In C++: -

    -
    struct A
    -{
    -    virtual int f() { return 0; }
    -};
    -
    -shared_ptr<A> New() { return shared_ptr<A>( new A() ); }
    -
    -int Ok( const shared_ptr<A>& a ) { return a->f(); }
    -
    -int Fail( shared_ptr<A>& a ) { return a->f(); }
    -
    -struct A_Wrapper: A
    -{
    -    A_Wrapper(PyObject* self_): self(self_) {}
    -    int f() { return call_method<int>(self, "f"); }
    -    int default_f() { return A::f(); }
    -    PyObject* self;
    -};
    -
    -BOOST_PYTHON_MODULE(register_ptr)
    -{
    -    class_<A, A_Wrapper>("A")
    -        .def("f", &A::f, &A_Wrapper::default_f)
    -    ;
    -
    -    def("New", &New);
    -    def("Ok", &Call);
    -    def("Fail", &Fail);
    -
    -    register_ptr_to_python< shared_ptr<A> >();
    -}
    -
    -

    - In Python: -

    -
    >>> from register_ptr import *
    ->>> a = A()
    ->>> Ok(a)     # ok, passed as shared_ptr<A>
    -0
    ->>> Fail(a)   # passed as shared_ptr<A>&, and was created in Python!
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -TypeError: bad argument type for built-in operation
    ->>>
    ->>> na = New()   # now "na" is actually a shared_ptr<A>
    ->>> Ok(a)
    -0
    ->>> Fail(a)
    -0
    ->>>
    -
    -

    - If shared_ptr<A> is registered as follows: -

    -
    class_<A, A_Wrapper, shared_ptr<A> >("A")
    -    .def("f", &A::f, &A_Wrapper::default_f)
    -;
    -
    -

    - There will be an error when trying to convert shared_ptr<A> to shared_ptr<A_Wrapper>: -

    -
    >>> a = New()
    -Traceback (most recent call last):
    -File "<stdin>", line 1, in ?
    -TypeError: No to_python (by-value) converter found for C++ type: class boost::shared_ptr<struct A>
    ->>>
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt/function_register_ptr_to_python.html b/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt/function_register_ptr_to_python.html deleted file mode 100644 index 2c244565..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt/function_register_ptr_to_python.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Function register_ptr_to_python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class P>
    -void register_ptr_to_python()
    -
    -
    -

    -
    -
    Requires
    -

    - P is Dereferenceable. -

    -
    Effects
    -

    - Allows conversions to-python of P instances. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter.html index 2f17f9df..f8cf289d 100644 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter.html +++ b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter.html @@ -3,14 +3,14 @@ boost/python/to_python_converter.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt.html deleted file mode 100644 index 6bdac823..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -boost/python/register_ptr_to_python.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    <boost/python/register_ptr_to_python.hpp> supplies register_ptr_to_python, a function template which registers a conversion for smart pointers to Python. The resulting Python object holds a copy of the converted smart pointer, but behaves as though it were a wrapped copy of the pointee. If the pointee type has virtual functions and the class representing its dynamic (most-derived) type has been wrapped, the Python object will be an instance of the wrapper for the most-derived type. More than one smart pointer type for a pointee's class can be registered.
    -
    -Note that in order to convert a Python X object to a smart_ptr<X>& (non-const reference), the embedded C++ object must be held by smart_ptr<X>, and that when wrapped objects are created by calling the constructor from Python, how they are held is determined by the HeldType parameter to class_<...> instances.
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt/example.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt/example.html deleted file mode 100644 index b1a0e1bf..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt/example.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    Here is an example of a module that contains a class A with virtual functions and some functions that work with boost::shared_ptr<A>.
    -
    -

    - In C++: -

    -
    struct A
    -{
    -    virtual int f() { return 0; }
    -};
    -
    -shared_ptr<A> New() { return shared_ptr<A>( new A() ); }
    -
    -int Ok( const shared_ptr<A>& a ) { return a->f(); }
    -
    -int Fail( shared_ptr<A>& a ) { return a->f(); }
    -
    -struct A_Wrapper: A
    -{
    -    A_Wrapper(PyObject* self_): self(self_) {}
    -    int f() { return call_method<int>(self, "f"); }
    -    int default_f() { return A::f(); }
    -    PyObject* self;
    -};
    -
    -BOOST_PYTHON_MODULE(register_ptr)
    -{
    -    class_<A, A_Wrapper>("A")
    -        .def("f", &A::f, &A_Wrapper::default_f)
    -    ;
    -
    -    def("New", &New);
    -    def("Ok", &Call);
    -    def("Fail", &Fail);
    -
    -    register_ptr_to_python< shared_ptr<A> >();
    -}
    -
    -

    - In Python: -

    -
    >>> from register_ptr import *
    ->>> a = A()
    ->>> Ok(a)     # ok, passed as shared_ptr<A>
    -0
    ->>> Fail(a)   # passed as shared_ptr<A>&, and was created in Python!
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -TypeError: bad argument type for built-in operation
    ->>>
    ->>> na = New()   # now "na" is actually a shared_ptr<A>
    ->>> Ok(a)
    -0
    ->>> Fail(a)
    -0
    ->>>
    -
    -

    - If shared_ptr<A> is registered as follows: -

    -
    class_<A, A_Wrapper, shared_ptr<A> >("A")
    -    .def("f", &A::f, &A_Wrapper::default_f)
    -;
    -
    -

    - There will be an error when trying to convert shared_ptr<A> to - shared_ptr<A_Wrapper>: -

    -
    >>> a = New()
    -Traceback (most recent call last):
    -File "<stdin>", line 1, in ?
    -TypeError: No to_python (by-value) converter found for C++ type: class boost::shared_ptr<struct A>
    ->>>
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt/function_register_ptr_to_python.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt/function_register_ptr_to_python.html deleted file mode 100644 index 1ffd1ba6..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/boost_python_register_ptr_to_pyt/function_register_ptr_to_python.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Function register_ptr_to_python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class P>
    -void register_ptr_to_python()
    -
    -
    -

    -
    -
    Requires
    -

    - P is Dereferenceable. -

    -
    Effects
    -

    - Allows conversions to-python of P instances. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/class_template_to_python_convert.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/class_template_to_python_convert.html deleted file mode 100644 index fcf543b6..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/class_template_to_python_convert.html +++ /dev/null @@ -1,173 +0,0 @@ - - - -Class template to_python_converter - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - to_python_converter adds - a wrapper around a static member function of its second template parameter, - handling low-level details such as insertion into the converter registry. -

    -

    - In the table below, x denotes an object of type T -

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

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Description -

    -
    -

    - T -

    -
    - -

    - The C++ type of the source object in the conversion -

    -
    -

    - Conversion -

    -
    -

    - PyObject* - p = - Conversion::convert(x), - if p - == 0, - PyErr_Occurred() != - 0. -

    -
    -

    - A class type whose static member function convert does the real - work of the conversion. -

    -
    -

    - bool has_get_pytype=false -

    -
    -

    - PyTypeObject const * - p = - Conversion::get_pytype() -

    -
    -

    - Optional member - if Conversion has get_pytype - member supply true - for this parameters. If present get_pytype - is used to document the return type of functions using this conversion. - The get_pytype - may be implemented using the classes and functions from pytype_function.hpp - NOTE : For backward compatibility this parameter may be passed - after checking if BOOST_PYTHON_SUPPORTS_PY_SIGNATURES is defined - (see here). -

    -
    -
    namespace boost { namespace python
    -{
    -  template <class T, class Conversion, bool convertion_has_get_pytype_member=false>
    -  struct to_python_converter
    -  {
    -      to_python_converter();
    -  };
    -}}
    -
    -
    - -
    to_python_converter();
    -
    -

    -
    -
    Effects
    -

    - Registers a to_python - converter which uses Conversion::convert() to do its work. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/class_template_to_python_convert/example.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/class_template_to_python_convert/example.html deleted file mode 100644 index 63b0431e..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/class_template_to_python_convert/example.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This example presumes that someone has implemented the standard noddy - example module from the Python documentation, and placed the corresponding - declarations in "noddy.h". Because noddy_NoddyObject is the - ultimate trivial extension type, the example is a bit contrived: it wraps - a function for which all information is contained in the type of its - return value. -

    -

    - In C++: -

    -
    #include <boost/python/reference.hpp>
    -#include <boost/python/module.hpp>
    -#include "noddy.h"
    -
    -struct tag {};
    -tag make_tag() { return tag(); }
    -
    -using namespace boost::python;
    -
    -struct tag_to_noddy
    -{
    -    static PyObject* convert(tag const& x)
    -    {
    -        return PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
    -    }
    -    static PyTypeObject const* get_pytype()
    -    {
    -        return &noddy_NoddyType;
    -    }
    -};
    -
    -BOOST_PYTHON_MODULE(to_python_converter)
    -{
    -    def("make_tag", make_tag);
    -    to_python_converter<tag, tag_to_noddy, true>(); //"true" because tag_to_noddy has member get_pytype
    -}
    -
    -

    - In Python: -

    -
    >>> import to_python_converter
    ->>> def always_none():
    -...     return None
    -...
    ->>> def choose_function(x):
    -...     if (x % 2 != 0):
    -...         return to_python_converter.make_tag
    -...     else:
    -...         return always_none
    -...
    ->>> a = [ choose_function(x) for x in range(5) ]
    ->>> b = [ f() for f in a ]
    ->>> type(b[0])
    -<type 'NoneType'>
    ->>> type(b[1])
    -<type 'Noddy'>
    ->>> type(b[2])
    -<type 'NoneType'>
    ->>> type(b[3])
    -<type 'Noddy'>
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/example.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/example.html deleted file mode 100644 index 1f0f1949..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/example.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This example presumes that someone has implemented the standard noddy example - module from the Python documentation, and placed the corresponding declarations - in "noddy.h". Because noddy_NoddyObject is the ultimate trivial - extension type, the example is a bit contrived: it wraps a function for - which all information is contained in the type of its return value. -

    -

    - In C++: -

    -
    #include <boost/python/reference.hpp>
    -#include <boost/python/module.hpp>
    -#include "noddy.h"
    -
    -struct tag {};
    -tag make_tag() { return tag(); }
    -
    -using namespace boost::python;
    -
    -struct tag_to_noddy
    -{
    -    static PyObject* convert(tag const& x)
    -    {
    -        return PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
    -    }
    -    static PyTypeObject const* get_pytype()
    -    {
    -        return &noddy_NoddyType;
    -    }
    -};
    -
    -BOOST_PYTHON_MODULE(to_python_converter)
    -{
    -    def("make_tag", make_tag);
    -    to_python_converter<tag, tag_to_noddy, true>(); //"true" because tag_to_noddy has member get_pytype
    -}
    -
    -

    - In Python: -

    -
    >>> import to_python_converter
    ->>> def always_none():
    -...     return None
    -...
    ->>> def choose_function(x):
    -...     if (x % 2 != 0):
    -...         return to_python_converter.make_tag
    -...     else:
    -...         return always_none
    -...
    ->>> a = [ choose_function(x) for x in range(5) ]
    ->>> b = [ f() for f in a ]
    ->>> type(b[0])
    -<type 'NoneType'>
    ->>> type(b[1])
    -<type 'Noddy'>
    ->>> type(b[2])
    -<type 'NoneType'>
    ->>> type(b[3])
    -<type 'Noddy'>
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/example0.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/example0.html deleted file mode 100644 index 64f32ef4..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/example0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    Here is an example of a module that contains a class A with virtual functions and some functions that work with boost::shared_ptr<A>.
    -
    -

    - In C++: -

    -
    struct A
    -{
    -    virtual int f() { return 0; }
    -};
    -
    -shared_ptr<A> New() { return shared_ptr<A>( new A() ); }
    -
    -int Ok( const shared_ptr<A>& a ) { return a->f(); }
    -
    -int Fail( shared_ptr<A>& a ) { return a->f(); }
    -
    -struct A_Wrapper: A
    -{
    -    A_Wrapper(PyObject* self_): self(self_) {}
    -    int f() { return call_method<int>(self, "f"); }
    -    int default_f() { return A::f(); }
    -    PyObject* self;
    -};
    -
    -BOOST_PYTHON_MODULE(register_ptr)
    -{
    -    class_<A, A_Wrapper>("A")
    -        .def("f", &A::f, &A_Wrapper::default_f)
    -    ;
    -
    -    def("New", &New);
    -    def("Ok", &Call);
    -    def("Fail", &Fail);
    -
    -    register_ptr_to_python< shared_ptr<A> >();
    -}
    -
    -

    - In Python: -

    -
    >>> from register_ptr import *
    ->>> a = A()
    ->>> Ok(a)     # ok, passed as shared_ptr<A>
    -0
    ->>> Fail(a)   # passed as shared_ptr<A>&, and was created in Python!
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -TypeError: bad argument type for built-in operation
    ->>>
    ->>> na = New()   # now "na" is actually a shared_ptr<A>
    ->>> Ok(a)
    -0
    ->>> Fail(a)
    -0
    ->>>
    -
    -

    - If shared_ptr<A> is registered as follows: -

    -
    class_<A, A_Wrapper, shared_ptr<A> >("A")
    -    .def("f", &A::f, &A_Wrapper::default_f)
    -;
    -
    -

    - There will be an error when trying to convert shared_ptr<A> to shared_ptr<A_Wrapper>: -

    -
    >>> a = New()
    -Traceback (most recent call last):
    -File "<stdin>", line 1, in ?
    -TypeError: No to_python (by-value) converter found for C++ type: class boost::shared_ptr<struct A>
    ->>>
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/register_ptr_to_python_hpp.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/register_ptr_to_python_hpp.html deleted file mode 100644 index 94a9495f..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/register_ptr_to_python_hpp.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -register_ptr_to_python.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    <boost/python/register_ptr_to_python.hpp> supplies register_ptr_to_python, a function template which registers a conversion for smart pointers to Python. The resulting Python object holds a copy of the converted smart pointer, but behaves as though it were a wrapped copy of the pointee. If the pointee type has virtual functions and the class representing its dynamic (most-derived) type has been wrapped, the Python object will be an instance of the wrapper for the most-derived type. More than one smart pointer type for a pointee's class can be registered.
    -
    -Note that in order to convert a Python X object to a smart_ptr<X>& (non-const reference), the embedded C++ object must be held by smart_ptr<X>, and that when wrapped objects are created by calling the constructor from Python, how they are held is determined by the HeldType parameter to class_<...> instances.
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/register_ptr_to_python_hpp/function_register_ptr_to_python.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/register_ptr_to_python_hpp/function_register_ptr_to_python.html deleted file mode 100644 index fd2bee4e..00000000 --- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter/register_ptr_to_python_hpp/function_register_ptr_to_python.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Function register_ptr_to_python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class P>
    -void register_ptr_to_python()
    -
    -
    -

    -
    -
    Requires
    -

    - P is Dereferenceable. -

    -
    Effects
    -

    - Allows conversions to-python of P instances. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/implicit_hpp.html b/doc/html/reference/to_from_python_type_conversion/implicit_hpp.html deleted file mode 100644 index cf35e1d2..00000000 --- a/doc/html/reference/to_from_python_type_conversion/implicit_hpp.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -implicit.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    implicitly_convertible allows Boost.Python to implicitly take advantage of a C++ implicit or explicit conversion when matching Python objects to C++ argument types.
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/implicit_hpp/example.html b/doc/html/reference/to_from_python_type_conversion/implicit_hpp/example.html deleted file mode 100644 index 546b31c6..00000000 --- a/doc/html/reference/to_from_python_type_conversion/implicit_hpp/example.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - In C++: -

    -
    #include <boost/python/class.hpp>
    -#include <boost/python/implicit.hpp>
    -#include <boost/python/module.hpp>
    -
    -using namespace boost::python;
    -
    -struct X
    -{
    -    X(int x) : v(x) {}
    -    operator int() const { return v; }
    -    int v;
    -};
    -
    -int x_value(X const& x)
    -{
    -    return x.v;
    -}
    -
    -X make_x(int n) { return X(n); }
    -
    -BOOST_PYTHON_MODULE(implicit_ext)
    -{
    -    def("x_value", x_value);
    -    def("make_x", make_x);
    -
    -    class_<X>("X",
    -        init<int>())
    -        ;
    -
    -    implicitly_convertible<X,int>();
    -    implicitly_convertible<int,X>();
    -}
    -
    -

    - In Python: -

    -
    >>> from implicit_ext import *
    ->>> x_value(X(42))
    -42
    ->>> x_value(42)
    -42
    ->>> x = make_x(X(42))
    ->>> x_value(x)
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/implicit_hpp/function_template_implicit_conve.html b/doc/html/reference/to_from_python_type_conversion/implicit_hpp/function_template_implicit_conve.html deleted file mode 100644 index b17dad26..00000000 --- a/doc/html/reference/to_from_python_type_conversion/implicit_hpp/function_template_implicit_conve.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -Function template implicit_convertible - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class Source, class Target>
    -void implicitly_convertible();
    -
    -
    ---- - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Description -

    -
    -

    - Source -

    -
    -

    - The source type of the implicit conversion -

    -
    -

    - Target -

    -
    -

    - The target type of the implicit conversion -

    -
    -
    -

    -
    -
    Requires
    -

    - The declaration Target t(s);, where s is of type Source, is valid. -

    -
    Effects
    -

    - registers an rvalue from_python converter to Target which can succeed - for any PyObject* p iff there exists any registered converter which - can produce Source rvalues -

    -
    Rationale
    -

    - C++ users expect to be able to take advantage of the same sort of - interoperability in Python as they do in C++. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp.html b/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp.html deleted file mode 100644 index 2867e7fc..00000000 --- a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -lvalue_from_pytype.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    <boost/python/lvalue_from_pytype.hpp> supplies a facility for extracting C++ objects from within Python instances of a given type. This is typically useful for dealing with "traditional" Python extension types.
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_extract_identity.html b/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_extract_identity.html deleted file mode 100644 index deda0038..00000000 --- a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_extract_identity.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Class template extract_identity - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - extract_identity is a model of Extractor which can be used in the common - case where the C++ type to be extracted is the same as the Python object - type. -

    -
    namespace boost { namespace python
    -{
    -   template <class InstanceType>
    -   struct extract_identity
    -   {
    -      static InstanceType& execute(InstanceType& c);
    -   };
    -}}
    -
    -
    - -
    InstanceType& execute(InstanceType& c);
    -
    -

    -
    -
    Returns
    -

    - c -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_extract_member.html b/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_extract_member.html deleted file mode 100644 index c25181a1..00000000 --- a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_extract_member.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Class template extract_member - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - extract_member is a model of Extractor which can be used in the common - case in the common case where the C++ type to be extracted is a member - of the Python object. -

    -
    namespace boost { namespace python
    -{
    -   template <class InstanceType, class MemberType, MemberType (InstanceType::*member)>
    -   struct extract_member
    -   {
    -      static MemberType& execute(InstanceType& c);
    -   };
    -}}
    -
    -
    - -
    static MemberType& execute(InstanceType& c);
    -
    -

    -
    -
    Returns
    -

    - c.*member -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_lvalue_from_pytyp.html b/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_lvalue_from_pytyp.html deleted file mode 100644 index b928e96a..00000000 --- a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/class_template_lvalue_from_pytyp.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -Class template lvalue_from_pytype - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - Class template lvalue_from_pytype will register from_python converters - which, given an object of the given Python type, can extract references - and pointers to a particular C++ type. Its template arguments are: -

    -
    In the table below, x denotes an object of type PythonObject&
    -
    -
    ----- - - - - - - - - - - - - - - - - - -
    -

    - Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Extractor -

    -
    -

    - a model of Extractor whose execute function returns a reference - type. -

    -
    -

    - Extracts the lvalue from the Python object once its type has - been confirmed -

    -
    -

    - python_type -

    -
    -

    - A compile-time constant PyTypeObject* -

    -
    -

    - The Python type of instances convertible by this converter. Python - subtypes are also convertible. -

    -
    -
    namespace boost { namespace python
    -{
    -   template <class Extractor, PyTypeObject const* python_type>
    -   struct lvalue_from_pytype
    -   {
    -       lvalue_from_pytype();
    -   };
    -}}
    -
    -
    - -
    lvalue_from_pytype();
    -
    -

    -
    -
    Effects
    -

    - Registers converters which can convert Python objects of the given - type to lvalues of the type returned by Extractor::execute. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/example.html b/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/example.html deleted file mode 100644 index 938e8351..00000000 --- a/doc/html/reference/to_from_python_type_conversion/lvalue_from_pytype_hpp/example.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    This example presumes that someone has implemented the standard noddy example module from the Python documentation, and we want to build a module which manipulates Noddys. Since noddy_NoddyObject is so simple that it carries no interesting information, the example is a bit contrived: it assumes you want to keep track of one particular object for some reason. This module would have to be dynamically linked to the module which defines noddy_NoddyType.
    -
    -

    - In C++: -

    -
    #include <boost/python/module.hpp>
    -#include <boost/python/handle.hpp>
    -#include <boost/python/borrowed.hpp>
    -#include <boost/python/lvalue_from_pytype.hpp>
    -
    -// definition lifted from the Python docs
    -typedef struct {
    -   PyObject_HEAD
    -} noddy_NoddyObject;
    -
    -using namespace boost::python;
    -static handle<noddy_NoddyObject> cache;
    -
    -bool is_cached(noddy_NoddyObject* x)
    -{
    -   return x == cache.get();
    -}
    -
    -void set_cache(noddy_NoddyObject* x)
    -{
    -   cache = handle<noddy_NoddyObject>(borrowed(x));
    -}
    -
    -BOOST_PYTHON_MODULE(noddy_cache)
    -{
    -   def("is_cached", is_cached);
    -   def("set_cache", set_cache);
    -
    -   // register Noddy lvalue converter
    -   lvalue_from_pytype<extract_identity<noddy_NoddyObject>,&noddy_NoddyType>();
    -}
    -
    -

    - In Python: -

    -
    >>> import noddy
    ->>> n = noddy.new_noddy()
    ->>> import noddy_cache
    ->>> noddy_cache.is_cached(n)
    -0
    ->>> noddy_cache.set_cache(n)
    ->>> noddy_cache.is_cached(n)
    -1
    ->>> noddy_cache.is_cached(noddy.new_noddy())
    -0
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp.html b/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp.html deleted file mode 100644 index fca45f86..00000000 --- a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -opaque_pointer_converter.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - opaque<> registers itself as a converter from Python objects to pointers - to undefined types and vice versa. -

    -
    namespace boost { namespace python
    -{
    -    template<class Pointee>
    -    struct opaque
    -    {
    -        opaque();
    -    };
    -}}
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/class_template_opaque_constructo.html b/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/class_template_opaque_constructo.html deleted file mode 100644 index ce9a61cc..00000000 --- a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/class_template_opaque_constructo.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Class template opaque constructor - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    opaque();
    -
    -

    -
    -
    Effects
    -
      -
    • - Registers the instance as a lvalue_from_pytype converter from - Python objects into opaque pointers. The Python Objects created - are named after the type pointed to by the opaque pointer being - wrapped. -
    • -
    • - Registers the instance as a to_python_converter from opaque pointers - to Python objects. -
    • -
    -
    -
    -
    - - - - - -
    [Note]Note

    - If there is already an instance registered by another module, this instance - doesn't try to register again in order to avoid warnings about multiple - registrations. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/macro_boost_python_opaque_specia.html b/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/macro_boost_python_opaque_specia.html deleted file mode 100644 index 45f101fa..00000000 --- a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/macro_boost_python_opaque_specia.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Macro BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(Pointee) - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This macro must be used to define specializations of the type_id function which can't be - instantiated for incomplete types. -

    -
    - - - - - -
    [Note]Note

    - The macro must be invoked in every translation unit which uses the opaque - converter. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp.html b/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp.html deleted file mode 100644 index 31f96543..00000000 --- a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp.html +++ /dev/null @@ -1,175 +0,0 @@ - - - -to_python_converter.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - - -
    to_python_converter registers a conversion from objects of a given C++ type into a Python object.
    -
    -
    - -

    - to_python_converter adds a wrapper around a static member function - of its second template parameter, handling low-level details such as - insertion into the converter registry. -

    -
    In the table below, x denotes an object of type T
    -[table
    -
    -

    - [[Parameter][Requirements][Description]] [[T][][The C++ type of the - source object in the conversion]] [[Conversion][PyObject* p = Conversion::convert(x), - if p == 0, PyErr_Occurred() != 0.][A class type whose static member - function convert does the real work of the conversion.]] [[bool has_get_pytype=false][] - [Optional member - if Conversion has get_pytype member supply true - for this parameters. If present get_pytype is used to document the - return type of functions using this conversion. The get_pytype may - be implemented using the classes and functions from pytype_function.hpp - NOTE : For backward compatibility this parameter may be passed after - checking if BOOST_PYTHON_SUPPORTS_PY_SIGNATURES is defined (see here).] - ] -

    -
    namespace boost { namespace python
    -{
    -  template <class T, class Conversion, bool convertion_has_get_pytype_member=false>
    -  struct to_python_converter
    -  {
    -      to_python_converter();
    -  };
    -}}
    -
    -
    - -
    to_python_converter();
    -
    -

    -
    -
    Effects
    -

    - Registers a to_python converter which uses Conversion::convert() - to do its work. -

    -
    -
    -
    -
    -
    - -
    This example presumes that someone has implemented the standard noddy example module from the Python documentation, and placed the corresponding declarations in "noddy.h". Because noddy_NoddyObject is the ultimate trivial extension type, the example is a bit contrived: it wraps a function for which all information is contained in the type of its return value.
    -
    -

    - In C++: -

    -
    #include <boost/python/reference.hpp>
    -#include <boost/python/module.hpp>
    -#include "noddy.h"
    -
    -struct tag {};
    -tag make_tag() { return tag(); }
    -
    -using namespace boost::python;
    -
    -struct tag_to_noddy
    -{
    -    static PyObject* convert(tag const& x)
    -    {
    -        return PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
    -    }
    -    static PyTypeObject const* get_pytype()
    -    {
    -        return &noddy_NoddyType;
    -    }
    -};
    -
    -BOOST_PYTHON_MODULE(to_python_converter)
    -{
    -    def("make_tag", make_tag);
    -    to_python_converter<tag, tag_to_noddy, true>(); //"true" because tag_to_noddy has member get_pytype
    -}
    -
    -

    - In Python: -

    -
    >>> import to_python_converter
    ->>> def always_none():
    -...     return None
    -...
    ->>> def choose_function(x):
    -...     if (x % 2 != 0):
    -...         return to_python_converter.make_tag
    -...     else:
    -...         return always_none
    -...
    ->>> a = [ choose_function(x) for x in range(5) ]
    ->>> b = [ f() for f in a ]
    ->>> type(b[0])
    -<type 'NoneType'>
    ->>> type(b[1])
    -<type 'Noddy'>
    ->>> type(b[2])
    -<type 'NoneType'>
    ->>> type(b[3])
    -<type 'Noddy'>
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp/example.html b/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp/example.html deleted file mode 100644 index 6b9e0c89..00000000 --- a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp/example.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    Here is an example of a module that contains a class A with virtual functions and some functions that work with boost::shared_ptr<A>.
    -
    -

    - In C++: -

    -
    struct A
    -{
    -    virtual int f() { return 0; }
    -};
    -
    -shared_ptr<A> New() { return shared_ptr<A>( new A() ); }
    -
    -int Ok( const shared_ptr<A>& a ) { return a->f(); }
    -
    -int Fail( shared_ptr<A>& a ) { return a->f(); }
    -
    -struct A_Wrapper: A
    -{
    -    A_Wrapper(PyObject* self_): self(self_) {}
    -    int f() { return call_method<int>(self, "f"); }
    -    int default_f() { return A::f(); }
    -    PyObject* self;
    -};
    -
    -BOOST_PYTHON_MODULE(register_ptr)
    -{
    -    class_<A, A_Wrapper>("A")
    -        .def("f", &A::f, &A_Wrapper::default_f)
    -    ;
    -
    -    def("New", &New);
    -    def("Ok", &Call);
    -    def("Fail", &Fail);
    -
    -    register_ptr_to_python< shared_ptr<A> >();
    -}
    -
    -

    - In Python: -

    -
    >>> from register_ptr import *
    ->>> a = A()
    ->>> Ok(a)     # ok, passed as shared_ptr<A>
    -0
    ->>> Fail(a)   # passed as shared_ptr<A>&, and was created in Python!
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -TypeError: bad argument type for built-in operation
    ->>>
    ->>> na = New()   # now "na" is actually a shared_ptr<A>
    ->>> Ok(a)
    -0
    ->>> Fail(a)
    -0
    ->>>
    -
    -

    - If shared_ptr<A> is registered as follows: -

    -
    class_<A, A_Wrapper, shared_ptr<A> >("A")
    -    .def("f", &A::f, &A_Wrapper::default_f)
    -;
    -
    -

    - There will be an error when trying to convert shared_ptr<A> to - shared_ptr<A_Wrapper>: -

    -
    >>> a = New()
    -Traceback (most recent call last):
    -File "<stdin>", line 1, in ?
    -TypeError: No to_python (by-value) converter found for C++ type: class boost::shared_ptr<struct A>
    ->>>
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp/register_ptr_to_python_hpp.html b/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp/register_ptr_to_python_hpp.html deleted file mode 100644 index ef502527..00000000 --- a/doc/html/reference/to_from_python_type_conversion/opaque_pointer_converter_hpp/to_python_converter_hpp/register_ptr_to_python_hpp.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -register_ptr_to_python.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    <boost/python/register_ptr_to_python.hpp> supplies register_ptr_to_python, a function template which registers a conversion for smart pointers to Python. The resulting Python object holds a copy of the converted smart pointer, but behaves as though it were a wrapped copy of the pointee. If the pointee type has virtual functions and the class representing its dynamic (most-derived) type has been wrapped, the Python object will be an instance of the wrapper for the most-derived type. More than one smart pointer type for a pointee's class can be registered.
    -
    -Note that in order to convert a Python X object to a smart_ptr<X>& (non-const reference), the embedded C++ object must be held by smart_ptr<X>, and that when wrapped objects are created by calling the constructor from Python, how they are held is determined by the HeldType parameter to class_<...> instances.
    -
    -
    -
    - -
    template <class P>
    -void register_ptr_to_python()
    -
    -
    -

    -
    -
    Requires
    -

    - P is Dereferenceable. -

    -
    Effects
    -

    - Allows conversions to-python of P instances. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp.html b/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp.html deleted file mode 100644 index 29b58acd..00000000 --- a/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp.html +++ /dev/null @@ -1,187 +0,0 @@ - - - -to_python_converter.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - - -
    to_python_converter registers a conversion from objects of a given C++ type into a Python object.
    -
    -
    - - -

    - to_python_converter adds a wrapper around a static member function of - its second template parameter, handling low-level details such as insertion - into the converter registry. -

    -
    In the table below, x denotes an object of type T
    -[table
    -
    -

    - [[Parameter][Requirements][Description]] [[T][][The C++ type of the source - object in the conversion]] [[Conversion][PyObject* p = Conversion::convert(x), - if p == 0, PyErr_Occurred() != 0.][A class type whose static member function - convert does the real work of the conversion.]] [[bool has_get_pytype=false][] - [Optional member - if Conversion has get_pytype member supply true for - this parameters. If present get_pytype is used to document the return - type of functions using this conversion. The get_pytype may be implemented - using the classes and functions from pytype_function.hpp NOTE : For backward - compatibility this parameter may be passed after checking if BOOST_PYTHON_SUPPORTS_PY_SIGNATURES - is defined (see here).] ] -

    -
    namespace boost { namespace python
    -{
    -  template <class T, class Conversion, bool convertion_has_get_pytype_member=false>
    -  struct to_python_converter
    -  {
    -      to_python_converter();
    -  };
    -}}
    -
    -
    - -
    to_python_converter();
    -
    -

    -
    -
    Effects
    -

    - Registers a to_python converter which uses Conversion::convert() - to do its work. -

    -
    -
    -
    -
    -
    - -
    This example presumes that someone has implemented the standard noddy example module from the Python documentation, and placed the corresponding declarations in "noddy.h". Because noddy_NoddyObject is the ultimate trivial extension type, the example is a bit contrived: it wraps a function for which all information is contained in the type of its return value.
    -
    -

    - In C++: -

    -
    #include <boost/python/reference.hpp>
    -#include <boost/python/module.hpp>
    -#include "noddy.h"
    -
    -struct tag {};
    -tag make_tag() { return tag(); }
    -
    -using namespace boost::python;
    -
    -struct tag_to_noddy
    -{
    -    static PyObject* convert(tag const& x)
    -    {
    -        return PyObject_New(noddy_NoddyObject, &noddy_NoddyType);
    -    }
    -    static PyTypeObject const* get_pytype()
    -    {
    -        return &noddy_NoddyType;
    -    }
    -};
    -
    -BOOST_PYTHON_MODULE(to_python_converter)
    -{
    -    def("make_tag", make_tag);
    -    to_python_converter<tag, tag_to_noddy, true>(); //"true" because tag_to_noddy has member get_pytype
    -}
    -
    -

    - In Python: -

    -
    >>> import to_python_converter
    ->>> def always_none():
    -...     return None
    -...
    ->>> def choose_function(x):
    -...     if (x % 2 != 0):
    -...         return to_python_converter.make_tag
    -...     else:
    -...         return always_none
    -...
    ->>> a = [ choose_function(x) for x in range(5) ]
    ->>> b = [ f() for f in a ]
    ->>> type(b[0])
    -<type 'NoneType'>
    ->>> type(b[1])
    -<type 'Noddy'>
    ->>> type(b[2])
    -<type 'NoneType'>
    ->>> type(b[3])
    -<type 'Noddy'>
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/example.html b/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/example.html deleted file mode 100644 index 23a46374..00000000 --- a/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/example.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    Here is an example of a module that contains a class A with virtual functions and some functions that work with boost::shared_ptr<A>.
    -
    -

    - In C++: -

    -
    struct A
    -{
    -    virtual int f() { return 0; }
    -};
    -
    -shared_ptr<A> New() { return shared_ptr<A>( new A() ); }
    -
    -int Ok( const shared_ptr<A>& a ) { return a->f(); }
    -
    -int Fail( shared_ptr<A>& a ) { return a->f(); }
    -
    -struct A_Wrapper: A
    -{
    -    A_Wrapper(PyObject* self_): self(self_) {}
    -    int f() { return call_method<int>(self, "f"); }
    -    int default_f() { return A::f(); }
    -    PyObject* self;
    -};
    -
    -BOOST_PYTHON_MODULE(register_ptr)
    -{
    -    class_<A, A_Wrapper>("A")
    -        .def("f", &A::f, &A_Wrapper::default_f)
    -    ;
    -
    -    def("New", &New);
    -    def("Ok", &Call);
    -    def("Fail", &Fail);
    -
    -    register_ptr_to_python< shared_ptr<A> >();
    -}
    -
    -

    - In Python: -

    -
    >>> from register_ptr import *
    ->>> a = A()
    ->>> Ok(a)     # ok, passed as shared_ptr<A>
    -0
    ->>> Fail(a)   # passed as shared_ptr<A>&, and was created in Python!
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -TypeError: bad argument type for built-in operation
    ->>>
    ->>> na = New()   # now "na" is actually a shared_ptr<A>
    ->>> Ok(a)
    -0
    ->>> Fail(a)
    -0
    ->>>
    -
    -

    - If shared_ptr<A> is registered as follows: -

    -
    class_<A, A_Wrapper, shared_ptr<A> >("A")
    -    .def("f", &A::f, &A_Wrapper::default_f)
    -;
    -
    -

    - There will be an error when trying to convert shared_ptr<A> to shared_ptr<A_Wrapper>: -

    -
    >>> a = New()
    -Traceback (most recent call last):
    -File "<stdin>", line 1, in ?
    -TypeError: No to_python (by-value) converter found for C++ type: class boost::shared_ptr<struct A>
    ->>>
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/register_ptr_to_python_hpp.html b/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/register_ptr_to_python_hpp.html deleted file mode 100644 index 8931a8dd..00000000 --- a/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/register_ptr_to_python_hpp.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -register_ptr_to_python.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -
    <boost/python/register_ptr_to_python.hpp> supplies register_ptr_to_python, a function template which registers a conversion for smart pointers to Python. The resulting Python object holds a copy of the converted smart pointer, but behaves as though it were a wrapped copy of the pointee. If the pointee type has virtual functions and the class representing its dynamic (most-derived) type has been wrapped, the Python object will be an instance of the wrapper for the most-derived type. More than one smart pointer type for a pointee's class can be registered.
    -
    -Note that in order to convert a Python X object to a smart_ptr<X>& (non-const reference), the embedded C++ object must be held by smart_ptr<X>, and that when wrapped objects are created by calling the constructor from Python, how they are held is determined by the HeldType parameter to class_<...> instances.
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/register_ptr_to_python_hpp/function_register_ptr_to_python.html b/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/register_ptr_to_python_hpp/function_register_ptr_to_python.html deleted file mode 100644 index 37b4c7ec..00000000 --- a/doc/html/reference/to_from_python_type_conversion/to_python_converter_hpp/register_ptr_to_python_hpp/function_register_ptr_to_python.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -Function register_ptr_to_python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class P>
    -void register_ptr_to_python()
    -
    -
    -

    -
    -
    Requires
    -

    - P is Dereferenceable. -

    -
    Effects
    -

    - Allows conversions to-python of P instances. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics.html b/doc/html/reference/topics.html index 4d2007e3..17f6b922 100644 --- a/doc/html/reference/topics.html +++ b/doc/html/reference/topics.html @@ -3,14 +3,14 @@ Chapter 8. Topics - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/topics/indexing_support.html b/doc/html/reference/topics/indexing_support.html index c9eedf66..62aad695 100644 --- a/doc/html/reference/topics/indexing_support.html +++ b/doc/html/reference/topics/indexing_support.html @@ -3,14 +3,14 @@ Indexing support - + -
    +

    PrevUpHomeNext @@ -63,19 +63,17 @@ Python container to behave.
  • -

    Provide default reference semantics for container element indexing (__getitem__) such that c[i] can be mutable. Require: -

    val = c[i]
     c[i].m()
     val == c[i]
     
    -

    - where m is a non-const (mutating) member function (method). -

    -
  • +

    + where m is a non-const (mutating) member function (method). +

    +
  • Return safe references from __getitem__ such that subsequent adds and deletes to and from the container will diff --git a/doc/html/reference/topics/indexing_support/class_map_indexing_suite.html b/doc/html/reference/topics/indexing_support/class_map_indexing_suite.html deleted file mode 100644 index be5df5ac..00000000 --- a/doc/html/reference/topics/indexing_support/class_map_indexing_suite.html +++ /dev/null @@ -1,178 +0,0 @@ - - - -class map_indexing_suite - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - Template Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Default -

    -
    -

    - Container -

    -
    -

    - A class type -

    -
    -

    - The container type to be wrapped to Python. -

    -
    -
    -

    - NoProxy -

    -
    -

    - A boolean -

    -
    -

    - By default indexed elements have Python reference semantics and - are returned by proxy. This can be disabled by supplying true - in the NoProxy template parameter. -

    -
    -

    - false -

    -
    -

    - DerivedPolicies -

    -
    -

    - A subclass of indexing_suite -

    -
    -

    - The vector_indexing_suite may still be derived to further tweak - any of the predefined policies. Static polymorphism through CRTP - (James Coplien. "Curiously Recurring Template Pattern". - C++ Report, Feb. 1995) enables the base indexing_suite class - to call policy function of the most derived class -

    -
    -
    -
    template <class Container,
    -          bool NoProxy = false,
    -          class DerivedPolicies = unspecified_default>
    -class map_indexing_suite : unspecified_base
    -{
    -public:
    -
    -    typedef typename Container::value_type value_type;
    -    typedef typename Container::value_type::second_type data_type;
    -    typedef typename Container::key_type key_type;
    -    typedef typename Container::key_type index_type;
    -    typedef typename Container::size_type size_type;
    -    typedef typename Container::difference_type difference_type;
    -
    -    static data_type&
    -    get_item(Container& container, index_type i);
    -
    -    static void
    -    set_item(Container& container, index_type i, data_type const& v);
    -
    -    static void
    -    delete_item(Container& container, index_type i);
    -
    -    static size_t
    -    size(Container& container);
    -
    -    static bool
    -    contains(Container& container, key_type const& key);
    -
    -    static bool
    -    compare_index(Container& container, index_type a, index_type b);
    -
    -    static index_type
    -    convert_index(Container& container, PyObject* i);
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/indexing_support/class_vector_indexing_suite.html b/doc/html/reference/topics/indexing_support/class_vector_indexing_suite.html deleted file mode 100644 index 09aaee8e..00000000 --- a/doc/html/reference/topics/indexing_support/class_vector_indexing_suite.html +++ /dev/null @@ -1,193 +0,0 @@ - - - -class vector_indexing_suite - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    ------ - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - Template Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Default -

    -
    -

    - Container -

    -
    -

    - A class type -

    -
    -

    - The container type to be wrapped to Python. -

    -
    -
    -

    - NoProxy -

    -
    -

    - A boolean -

    -
    -

    - By default indexed elements have Python reference semantics and - are returned by proxy. This can be disabled by supplying true - in the NoProxy template parameter. -

    -
    -

    - false -

    -
    -

    - DerivedPolicies -

    -
    -

    - A subclass of indexing_suite -

    -
    -

    - The vector_indexing_suite may still be derived to further tweak - any of the predefined policies. Static polymorphism through CRTP - (James Coplien. "Curiously Recurring Template Pattern". - C++ Report, Feb. 1995) enables the base indexing_suite class - to call policy function of the most derived class -

    -
    -
    -
    template <class Container,
    -	  bool NoProxy = false,
    -          class DerivedPolicies = unspecified_default>
    -class vector_indexing_suite : unspecified_base
    -{
    -public:
    -
    -    typedef typename Container::value_type data_type;
    -    typedef typename Container::value_type key_type;
    -    typedef typename Container::size_type index_type;
    -    typedef typename Container::size_type size_type;
    -    typedef typename Container::difference_type difference_type;
    -
    -    data_type&
    -    get_item(Container& container, index_type i);
    -
    -    static object
    -    get_slice(Container& container, index_type from, index_type to);
    -
    -    static void
    -    set_item(Container& container, index_type i, data_type const& v);
    -
    -    static void
    -    set_slice(Container& container, index_type from,
    -        index_type to, data_type const& v);
    -
    -    template <class Iter>
    -    static void
    -    set_slice(Container& container, index_type from,
    -        index_type to, Iter first, Iter last);
    -
    -    static void
    -    delete_item(Container& container, index_type i);
    -
    -    static void
    -    delete_slice(Container& container, index_type from, index_type to);
    -
    -    static size_t
    -    size(Container& container);
    -
    -    static bool
    -    contains(Container& container, key_type const& key);
    -
    -    static index_type
    -    convert_index(Container& container, PyObject* i);
    -
    -    static index_type
    -    adjust_index(index_type current, index_type from,
    -        index_type to, size_type len);
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/indexing_support/index_suite_sub_classes.html b/doc/html/reference/topics/indexing_support/index_suite_sub_classes.html deleted file mode 100644 index 89efc87d..00000000 --- a/doc/html/reference/topics/indexing_support/index_suite_sub_classes.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -index_suite sub-classes - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - The indexing_suite is not - meant to be used as is. A couple of policy functions must be supplied by - subclasses of indexing_suite. - However, a set of indexing_suite subclasses for the standard indexable - STL containers will be provided, In most cases, we can simply use the available - predefined suites. In some cases, we can refine the predefined suites to - suit our needs. -

    -
    - -

    - The vector_indexing_suite - class is a predefined indexing_suite - derived class designed to wrap std::vector - (and std::vector-like [i.e. a class with std::vector interface]) classes. It provides - all the policies required by the indexing_suite. -

    -

    - Example usage: -

    -
    class X {...};
    -...
    -class_<std::vector<X> >("XVec")
    -  .def(vector_indexing_suite<std::vector<X> >())
    -;
    -
    -

    - XVec is now a full-fledged Python container (see the example in full, - along with its python test). -

    -
    -
    - -

    - The map_indexing_suite - class is a predefined indexing_suite - derived class designed to wrap std::map - (and std::map-like [i.e. a class with std::map interface]) classes. It provides - all the policies required by the indexing_suite. -

    -

    - Example usage: -

    -
    class X {...};
    -...
    -
    -class_<std::map<X> >("XMap")
    -    .def(map_indexing_suite<std::map<X> >())
    -;
    -
    -

    - By default indexed elements are returned by proxy. This can be disabled - by supplying true in the - NoProxy template parameter. - XMap is now a full-fledged Python container (see the example in full, - along with its python test). -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/indexing_support/index_suite_sub_classes/map_index_suite.html b/doc/html/reference/topics/indexing_support/index_suite_sub_classes/map_index_suite.html deleted file mode 100644 index 8bd2f4b6..00000000 --- a/doc/html/reference/topics/indexing_support/index_suite_sub_classes/map_index_suite.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -map_index_suite - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The map_indexing_suite - class is a predefined indexing_suite - derived class designed to wrap std::map - (and std::map-like [i.e. a class with std::map interface]) classes. It provides - all the policies required by the indexing_suite. -

    -

    - Example usage: -

    -
    class X {...};
    -...
    -
    -class_<std::map<X> >("XMap")
    -    .def(map_indexing_suite<std::map<X> >())
    -;
    -
    -

    - By default indexed elements are returned by proxy. This can be disabled - by supplying true in the - NoProxy template parameter. - XMap is now a full-fledged Python container (see the example in full, - along with its python test). -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/indexing_support/indexing_suite_class.html b/doc/html/reference/topics/indexing_support/indexing_suite_class.html deleted file mode 100644 index aa2208ea..00000000 --- a/doc/html/reference/topics/indexing_support/indexing_suite_class.html +++ /dev/null @@ -1,308 +0,0 @@ - - - -indexing_suite class - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    ------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    - Template Parameter -

    -
    -

    - Requirements -

    -
    -

    - Semantics -

    -
    -

    - Default -

    -
    -

    - Container -

    -
    -

    - A class type -

    -
    -

    - The container type to be wrapped to Python. -

    -
    -
    -

    - DerivedPolicies -

    -
    -

    - A subclass of indexing_suite -

    -
    -

    - Derived classes provide the policy hooks. See DerivedPolicies - below. -

    -
    -
    -

    - NoProxy -

    -
    -

    - A boolean -

    -
    -

    - By default indexed elements have Python reference semantics and - are returned by proxy. This can be disabled by supplying true - in the NoProxy template parameter. -

    -
    -

    - false -

    -
    -

    - NoSlice -

    -
    -

    - A boolean -

    -
    -

    - Do not allow slicing. -

    -
    -

    - false -

    -
    -

    - Data -

    -
    - -

    - The container's data type. -

    -
    -

    - Container::value_type -

    -
    -

    - Index -

    -
    - -

    - The container's index type. -

    -
    -

    - Container::size_type -

    -
    -

    - Key -

    -
    - -

    - The container's key type. -

    -
    -

    - Container::value_type -

    -
    -
    template <class Container,
    -	  class DerivedPolicies,
    -	   bool NoProxy = false,
    -	   bool NoSlice = false,
    -	   class Data = typename Container::value_type,
    -	   class Index = typename Container::size_type,
    -	   class Key = typename Container::value_type>
    -class indexing_suite : unspecified
    -{
    -public:
    -  indexing_suite(); // default constructor
    -}
    -
    -
    - -

    - Derived classes provide the hooks needed by the indexing_suite: -

    -
    data_type&
    -get_item(Container& container, index_type i);
    -
    -static object
    -get_slice(Container& container, index_type from, index_type to);
    -
    -static void
    -set_item(Container& container, index_type i, data_type const& v);
    -
    -static void
    -set_slice(
    -    Container& container, index_type from,
    -    index_type to, data_type const& v
    -);
    -
    -template <class Iter>
    -static void
    -set_slice(Container& container, index_type from,
    -    index_type to, Iter first, Iter last
    -);
    -
    -static void
    -delete_item(Container& container, index_type i);
    -
    -static void
    -delete_slice(Container& container, index_type from, index_type to);
    -
    -static size_t
    -size(Container& container);
    -
    -template <class T>
    -static bool
    -contains(Container& container, T const& val);
    -
    -static index_type
    -convert_index(Container& container, PyObject* i);
    -
    -static index_type
    -adjust_index(index_type current, index_type from,
    -    index_type to, size_type len);
    -
    -

    - Most of these policies are self explanatory. However, convert_index and - adjust_index deserve some explanation. -

    -

    - convert_index converts a Python index into a C++ index that the container - can handle. For instance, negative indexes in Python, by convention, - start counting from the right(e.g. C1 - indexes the rightmost element in C). convert_index should handle the - necessary conversion for the C++ container (e.g. convert -1 to C.size()-1). - convert_index should also be able to convert the type of the index (A - dynamic Python type) to the actual type that the C++ container expects. -

    -

    - When a container expands or contracts, held indexes to its elements must - be adjusted to follow the movement of data. For instance, if we erase - 3 elements, starting from index 0 from a 5 element vector, what used - to be at index 4 will now be at index 1: -

    -
    [a][b][c][d][e] ---> [d][e]
    -              ^           ^
    -              4           1
    -
    -

    - adjust_index takes care of the adjustment. Given a current index, the - function should return the adjusted index when data in the container - at index from..to is replaced by len elements. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/indexing_support/map_index_suite.html b/doc/html/reference/topics/indexing_support/map_index_suite.html deleted file mode 100644 index 45373792..00000000 --- a/doc/html/reference/topics/indexing_support/map_index_suite.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -map_index_suite - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The map_indexing_suite - class is a predefined indexing_suite - derived class designed to wrap std::map - (and std::map-like [i.e. a class with std::map interface]) classes. It provides - all the policies required by the indexing_suite. -

    -

    - Example usage: -

    -
    class X {...};
    -...
    -
    -class_<std::map<X> >("XMap")
    -    .def(map_indexing_suite<std::map<X> >())
    -;
    -
    -

    - By default indexed elements are returned by proxy. This can be disabled - by supplying true in the - NoProxy template parameter. - XMap is now a full-fledged Python container (see the example in full, along - with its python test). -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/indexing_support/the_indexing_interface.html b/doc/html/reference/topics/indexing_support/the_indexing_interface.html deleted file mode 100644 index f7741a36..00000000 --- a/doc/html/reference/topics/indexing_support/the_indexing_interface.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -The Indexing Interface - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The indexing_suite class - is the base class for the management of C++ containers intended to be integrated - to Python. The objective is make a C++ container look and feel and behave - exactly as we'd expect a Python container. The class automatically wraps - these special Python methods (taken from the Python reference: Emulating - container types): -

    -
    -

    -
    -
    __len__(self)
    -

    - Called to implement the built-in function len(). Should return the length of the - object, an integer >= 0. Also, an object that doesn't define - a __nonzero__() - method and whose __len__() method returns zero is considered - to be false in a Boolean context. -

    -
    __getitem__(self, key)
    -

    - Called to implement evaluation of self[key]. For sequence types, the accepted - keys should be integers and slice objects. Note that the special - interpretation of negative indexes (if the class wishes to emulate - a sequence type) is up to the __getitem__() method. If key is of an inappropriate - type, TypeError may - be raised; if of a value outside the set of indexes for the sequence - (after any special interpretation of negative values), IndexError - should be raised. [Note: for loops expect that an IndexError will - be raised for illegal indexes to allow proper detection of the end - of the sequence.] -

    -
    __setitem__(self, key, value)
    -

    - Called to implement assignment to self[key]. Same note as for __getitem__(). - This should only be implemented for mappings if the objects support - changes to the values for keys, or if new keys can be added, or for - sequences if elements can be replaced. The same exceptions should - be raised for improper key values as for the __getitem__() method. -

    -
    __delitem__(self, key)
    -

    - Called to implement deletion of self[key]. Same note as for __getitem__(). - This should only be implemented for mappings if the objects support - removal of keys, or for sequences if elements can be removed from - the sequence. The same exceptions should be raised for improper key - values as for the __getitem__() method. -

    -
    __iter__(self)
    -
    -

    - This method is called when an iterator is required for a container. - This method should return a new iterator object that can iterate - over all the objects in the container. For mappings, it should iterate - over the keys of the container, and should also be made available - as the method iterkeys(). -

    -

    - Iterator objects also need to implement this method; they are required - to return themselves. For more information on iterator objects, see - Iterator - Types in the Python - Library Reference. -

    -
    -
    __contains__(self, item)
    -

    - Called to implement membership test operators. Should return true - if item is in self, false otherwise. For mapping objects, this should - consider the keys of the mapping rather than the values or the key-item - pairs. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/indexing_support/vector_index_suite.html b/doc/html/reference/topics/indexing_support/vector_index_suite.html deleted file mode 100644 index fd35ed73..00000000 --- a/doc/html/reference/topics/indexing_support/vector_index_suite.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -vector_index_suite - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The vector_indexing_suite - class is a predefined indexing_suite - derived class designed to wrap std::vector - (and std::vector-like [i.e. a class with std::vector interface]) classes. It provides - all the policies required by the indexing_suite. -

    -

    - Example usage: -

    -
    class X {...};
    -...
    -class_<std::vector<X> >("XVec")
    -  .def(vector_indexing_suite<std::vector<X> >())
    -;
    -
    -

    - XVec is now a full-fledged Python container (see the example in full, along - with its python test). -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/pickle_support.html b/doc/html/reference/topics/pickle_support.html index e23ed383..954aa035 100644 --- a/doc/html/reference/topics/pickle_support.html +++ b/doc/html/reference/topics/pickle_support.html @@ -3,14 +3,14 @@ Pickle support - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/topics/pickle_support/example.html b/doc/html/reference/topics/pickle_support/example.html deleted file mode 100644 index cb77e8c9..00000000 --- a/doc/html/reference/topics/pickle_support/example.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - There are three files in python/test - that show how to provide pickle support. -

    -
    - -

    - The C++ class in this example can be fully restored by passing the appropriate - argument to the constructor. Therefore it is sufficient to define the - pickle interface method __getinitargs__. - This is done in the following way: Definition of the C++ pickle function: -

    -
    struct world_pickle_suite : boost::python::pickle_suite
    -{
    -  static
    -  boost::python::tuple
    -  getinitargs(world const& w)
    -  {
    -      return boost::python::make_tuple(w.get_country());
    -  }
    -};
    -
    -

    - Establishing the Python binding: -

    -
    class_<world>("world", args<const std::string&>())
    -      // ...
    -      .def_pickle(world_pickle_suite())
    -      // ...
    -
    -
    -
    - -

    - The C++ class in this example contains member data that cannot be restored - by any of the constructors. Therefore it is necessary to provide the - __getstate__/__setstate__ pair of pickle interface - methods: -

    -

    - Definition of the C++ pickle functions: -

    -
    struct world_pickle_suite : boost::python::pickle_suite
    -  {
    -    static
    -    boost::python::tuple
    -    getinitargs(const world& w)
    -    {
    -      // ...
    -    }
    -
    -    static
    -    boost::python::tuple
    -    getstate(const world& w)
    -    {
    -      // ...
    -    }
    -
    -    static
    -    void
    -    setstate(world& w, boost::python::tuple state)
    -    {
    -      // ...
    -    }
    -  };
    -
    -

    - Establishing the Python bindings for the entire suite: -

    -
    class_<world>("world", args<const std::string&>())
    -    // ...
    -    .def_pickle(world_pickle_suite())
    -    // ...
    -
    -

    - For simplicity, the __dict__ - is not included in the result of __getstate__. - This is not generally recommended, but a valid approach if it is anticipated - that the object's __dict__ - will always be empty. Note that the safety guard described below will - catch the cases where this assumption is violated. -

    -
    -
    - -

    - This example is similar to pickle2.cpp. However, the object's __dict__ is included in the result - of __getstate__. This - requires a little more code but is unavoidable if the object's __dict__ is not always empty. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/pickle_support/example/pickle2_cpp.html b/doc/html/reference/topics/pickle_support/example/pickle2_cpp.html deleted file mode 100644 index 5bd57981..00000000 --- a/doc/html/reference/topics/pickle_support/example/pickle2_cpp.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -pickle2.cpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The C++ class in this example contains member data that cannot be restored - by any of the constructors. Therefore it is necessary to provide the - __getstate__/__setstate__ pair of pickle interface - methods: -

    -

    - Definition of the C++ pickle functions: -

    -
    struct world_pickle_suite : boost::python::pickle_suite
    -  {
    -    static
    -    boost::python::tuple
    -    getinitargs(const world& w)
    -    {
    -      // ...
    -    }
    -
    -    static
    -    boost::python::tuple
    -    getstate(const world& w)
    -    {
    -      // ...
    -    }
    -
    -    static
    -    void
    -    setstate(world& w, boost::python::tuple state)
    -    {
    -      // ...
    -    }
    -  };
    -
    -

    - Establishing the Python bindings for the entire suite: -

    -
    class_<world>("world", args<const std::string&>())
    -    // ...
    -    .def_pickle(world_pickle_suite())
    -    // ...
    -
    -

    - For simplicity, the __dict__ - is not included in the result of __getstate__. - This is not generally recommended, but a valid approach if it is anticipated - that the object's __dict__ - will always be empty. Note that the safety guard described below will - catch the cases where this assumption is violated. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/pickle_support/example/pickle3_cpp.html b/doc/html/reference/topics/pickle_support/example/pickle3_cpp.html deleted file mode 100644 index dafd3baa..00000000 --- a/doc/html/reference/topics/pickle_support/example/pickle3_cpp.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -pickle3.cpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - This example is similar to pickle2.cpp. However, the object's __dict__ is included in the result - of __getstate__. This - requires a little more code but is unavoidable if the object's __dict__ is not always empty. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/pickle_support/light_weight_alternative_pickle_.html b/doc/html/reference/topics/pickle_support/light_weight_alternative_pickle_.html deleted file mode 100644 index 16d3c20b..00000000 --- a/doc/html/reference/topics/pickle_support/light_weight_alternative_pickle_.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -Light-weight alternative: pickle support implemented in Python - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The pickle4.cpp example demonstrates an alternative technique for implementing - pickle support. First we direct Boost.Python via the class_::enable_pickling() - member function to define only the basic attributes required for pickling: -

    -
    class_<world>("world", args<const std::string&>())
    -    // ...
    -    .enable_pickling()
    -    // ...
    -
    -

    - This enables the standard Python pickle interface as described in the Python - documentation. By "injecting" a __getinitargs__ - method into the definition of the wrapped class we make all instances pickleable: -

    -
    # import the wrapped world class
    -from pickle4_ext import world
    -
    -# definition of __getinitargs__
    -def world_getinitargs(self):
    -  return (self.get_country(),)
    -
    -# now inject __getinitargs__ (Python is a dynamic language!)
    -world.__getinitargs__ = world_getinitargs
    -
    -

    - See also the tutorial section on injecting additional methods from Python. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/pickle_support/pitfall_and_safety_guard.html b/doc/html/reference/topics/pickle_support/pitfall_and_safety_guard.html deleted file mode 100644 index b8488ff8..00000000 --- a/doc/html/reference/topics/pickle_support/pitfall_and_safety_guard.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -Pitfall and Safety Guard - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The pickle protocol described above has an important pitfall that the end - user of a Boost.Python extension module might not be aware of: -

    -

    - __getstate__ - is defined and the instance's __dict__ - is not empty. -

    -

    - The author of a Boost.Python extension class might provide - a __getstate__ method without - considering the possibilities that: * his class is used in Python as a - base class. Most likely the __dict__ - of instances of the derived class needs to be pickled in order to restore - the instances correctly. * the user adds items to the instance's __dict__ directly. Again, the __dict__ of the instance then needs to - be pickled. -

    -

    - To alert the user to this highly unobvious problem, a safety guard is provided. - If __getstate__ is defined - and the instance's __dict__ - is not empty, Boost.Python tests if the class has an attribute - __getstate_manages_dict__. - An exception is raised if this attribute is not defined: -

    -
    RuntimeError: Incomplete pickle support (__getstate_manages_dict__ not set)
    -
    -

    - To resolve this problem, it should first be established that the __getstate__ and __setstate__ - methods manage the instances's __dict__ - correctly. Note that this can be done either at the C++ or the Python level. - Finally, the safety guard should intentionally be overridden. E.g. in C++ - (from pickle3.cpp): -

    -
    struct world_pickle_suite : boost::python::pickle_suite
    -{
    -  // ...
    -
    -  static bool getstate_manages_dict() { return true; }
    -};
    -
    -

    - Alternatively in Python: -

    -
    import your_bpl_module
    -class your_class(your_bpl_module.your_class):
    -  __getstate_manages_dict__ = 1
    -  def __getstate__(self):
    -    # your code here
    -  def __setstate__(self, state):
    -    # your code here
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/pickle_support/practical_advice.html b/doc/html/reference/topics/pickle_support/practical_advice.html deleted file mode 100644 index 4fc32d5e..00000000 --- a/doc/html/reference/topics/pickle_support/practical_advice.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -Practical Advice - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
      -
    • - In Boost.Python extension modules with many - extension classes, providing complete pickle support for all classes - would be a significant overhead. In general complete pickle support - should only be implemented for extension classes that will eventually - be pickled. -
    • -
    • - Avoid using __getstate__ - if the instance can also be reconstructed by way of __getinitargs__. - This automatically avoids the pitfall described above. -
    • -
    • - If __getstate__ is - required, include the instance's __dict__ - in the Python object that is returned. -
    • -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/topics/pickle_support/the_pickle_interface.html b/doc/html/reference/topics/pickle_support/the_pickle_interface.html deleted file mode 100644 index 50e426da..00000000 --- a/doc/html/reference/topics/pickle_support/the_pickle_interface.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -The Pickle Interface - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - At the user level, the Boost.Python pickle interface involves three special - methods: -

    -
    -

    -
    -
    __getinitargs__
    -
    -

    - When an instance of a Boost.Python extension class is pickled, the - pickler tests if the instance has a __getinitargs__ - method. This method must return a Python tuple - (it is most convenient to use a boost::python::tuple). When the instance - is restored by the unpickler, the contents of this tuple are used - as the arguments for the class constructor. -

    -

    - If __getinitargs__ - is not defined, pickle.load - will call the constructor (__init__) - without arguments; i.e., the object must be default-constructible. -

    -
    -
    __getstate__
    -

    - When an instance of a Boost.Python - extension class is pickled, the pickler tests if the instance has - a __getstate__ method. - This method should return a Python object representing the state - of the instance. -

    -
    __setstate__
    -

    - When an instance of a Boost.Python - extension class is restored by the unpickler (pickle.load), - it is first constructed using the result of __getinitargs__ - as arguments (see above). Subsequently the unpickler tests if the - new instance has a __setstate__ - method. If so, this method is called with the result of __getstate__ (a Python object) - as the argument. -

    -
    -
    -

    - The three special methods described above may be .def()'ed - individually by the user. However, Boost.Python - provides an easy to use high-level interface via the boost::python::pickle_suite - class that also enforces consistency: __getstate__ - and __setstate__ must be - defined as pairs. Use of this interface is demonstrated by the following - examples. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure.html b/doc/html/reference/utility_and_infrastructure.html index c401f19d..706f82af 100644 --- a/doc/html/reference/utility_and_infrastructure.html +++ b/doc/html/reference/utility_and_infrastructure.html @@ -3,14 +3,14 @@ Chapter 7. Utility and Infrastructure - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp.html index f70392dc..6af91d68 100644 --- a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp.html +++ b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp.html @@ -3,14 +3,14 @@ boost/python/handle.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle.html b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle.html deleted file mode 100644 index 33a54de4..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle.html +++ /dev/null @@ -1,323 +0,0 @@ - - - -Class template handle - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - handle is a smart pointer - to a Python object type; it holds a pointer of type T*, where T - is its template parameter. T must be either a type derived from PyObject or a POD - type whose initial sizeof(PyObject) bytes are layout-compatible with PyObject. Use handle<> at the boundary between the Python/'C' - API and high-level code; prefer object for a generalized interface to Python - objects. -

    -

    - In this document, the term "upcast" refers to an operation which - converts a pointer Y* - to a base class pointer T* via - static_cast<T*> - if Y is derived from T, or via C-style cast (T*) if - it is not. However, in the latter case the "upcast" is ill-formed - if the initial sizeof(PyObject) - bytes of Y are not layout-compatible - with PyObject. -

    -
    namespace boost { namespace python
    -{
    -  template <class T>
    -  class handle
    -  {
    -      typedef unspecified-member-function-pointer bool_type;
    -
    -   public: // types
    -      typedef T element_type;
    -
    -   public: // member functions
    -      ~handle();
    -
    -      template <class Y>
    -      explicit handle(detail::borrowed<null_ok<Y> >* p);
    -
    -      template <class Y>
    -      explicit handle(null_ok<detail::borrowed<Y> >* p);
    -
    -      template <class Y>
    -      explicit handle(detail::borrowed<Y>* p);
    -
    -      template <class Y>
    -      explicit handle(null_ok<Y>* p);
    -
    -      template <class Y>
    -      explicit handle(Y* p);
    -
    -      handle();
    -
    -      handle& operator=(handle const& r);
    -
    -      template<typename Y>
    -      handle& operator=(handle<Y> const & r); // never throws
    -
    -
    -      template <typename Y>
    -      handle(handle<Y> const& r);
    -
    -      handle(handle const& r);
    -
    -      T* operator-> () const;
    -      T& operator* () const;
    -      T* get() const;
    -      void reset();
    -      T* release();
    -
    -      operator bool_type() const; // never throws
    -   private:
    -      T* m_p;
    -  };
    -
    -  template <class T> struct null_ok;
    -  namespace detail { template <class T> struct borrowed; }
    -}}
    -
    -
    - -
    virtual ~handle();
    -
    -

    -
    -
    Effects
    -

    - Py_XDECREF(upcast<PyObject*>(m_p)) -

    -
    -
    -
    template <class Y>
    -explicit handle(detail::borrowed<null_ok<Y> >* p);
    -
    -
    -

    -
    -
    Effects
    -
    Py_XINCREF(upcast<PyObject*>(p));
    -m_p = upcast<T*>(p);
    -
    -
    -
    -
    template <class Y>
    -explicit handle(null_ok<detail::borrowed<Y> >* p);
    -
    -

    -
    -
    Effects
    -
    Py_XINCREF(upcast<PyObject*>(p));
    -      m_p = upcast<T*>(p);
    -
    -
    -
    -
    template <class Y>
    -explicit handle(detail::borrowed<Y>* p);
    -
    -

    -
    -
    Effects
    -
    Py_XINCREF(upcast<PyObject*>(p));
    -      m_p = upcast<T*>(expect_non_null(p));
    -
    -
    -
    -
    template <class Y>
    -explicit handle(null_ok<Y>* p);
    -
    -
    -

    -
    -
    Effects
    -

    - m_p = - upcast<T*>(p); -

    -
    -
    -
    template <class Y>
    -explicit handle(Y* p);
    -
    -
    -

    -
    -
    Effects
    -

    - m_p = - upcast<T*>(expect_non_null(p)); -

    -
    -
    -
    handle();
    -
    -
    -

    -
    -
    Effects
    -

    - m_p = - 0; -

    -
    -
    -
    template <typename Y>
    -handle(handle<Y> const& r);
    -handle(handle const& r);
    -
    -
    -

    -
    -
    Effects
    -

    - m_p = r.m_p; Py_XINCREF(upcast<PyObject*>(m_p)); -

    -
    -
    -
    -
    - -
    handle& operator=(handle const& r);
    -template<typename Y>
    -handle& operator=(handle<Y> const & r); // never throws
    -
    -
    -

    -
    -
    Effects
    -

    - Py_XINCREF(upcast<PyObject*>(r.m_p)); - Py_XDECREF( - upcast<PyObject*>(m_p)); - m_p = - r.m_p; -

    -
    -
    -
    T* release();
    -
    -
    -

    -
    -
    Effects
    -

    - T* - x = - m_p; - m_p = - 0; - return x; -

    -
    -
    -
    void reset();
    -
    -
    -

    -
    -
    Effects
    -

    - *this - = handle<T>(); -

    -
    -
    -
    -
    - -
    T* operator-> () const;
    -T* get() const;
    -
    -
    -

    -
    -
    Returns
    -

    - m_p; -

    -
    -
    -
    T& operator* () const;
    -
    -
    -

    -
    -
    Returns
    -

    - *m_p; -

    -
    -
    -
    operator bool_type() const; // never throws
    -
    -
    -

    -
    -
    Returns
    -

    - 0 if m_p == - 0, a pointer convertible - to true otherwise. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle/class_template_handle_modifiers.html b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle/class_template_handle_modifiers.html deleted file mode 100644 index 5926d857..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle/class_template_handle_modifiers.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -Class template handle modifiers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    handle& operator=(handle const& r);
    -template<typename Y>
    -handle& operator=(handle<Y> const & r); // never throws
    -
    -
    -

    -
    -
    Effects
    -

    - Py_XINCREF(upcast<PyObject*>(r.m_p)); - Py_XDECREF( - upcast<PyObject*>(m_p)); - m_p = - r.m_p; -

    -
    -
    -
    T* release();
    -
    -
    -

    -
    -
    Effects
    -

    - T* - x = - m_p; - m_p = - 0; - return x; -

    -
    -
    -
    void reset();
    -
    -
    -

    -
    -
    Effects
    -

    - *this - = handle<T>(); -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle/class_template_handle_observers.html b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle/class_template_handle_observers.html deleted file mode 100644 index d7fd1905..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/class_template_handle/class_template_handle_observers.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Class template handle observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    T* operator-> () const;
    -T* get() const;
    -
    -
    -

    -
    -
    Returns
    -

    - m_p; -

    -
    -
    -
    T& operator* () const;
    -
    -
    -

    -
    -
    Returns
    -

    - *m_p; -

    -
    -
    -
    operator bool_type() const; // never throws
    -
    -
    -

    -
    -
    Returns
    -

    - 0 if m_p == - 0, a pointer convertible - to true otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/function_allow_null.html b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/function_allow_null.html deleted file mode 100644 index ac18e3d9..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/function_allow_null.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Function allow_null - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -null_ok<T>* allow_null(T* p)
    -{
    -    return (null_ok<T>*)p;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/function_borrowed.html b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/function_borrowed.html deleted file mode 100644 index 46674c62..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp/function_borrowed.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Function borrowed - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -detail::borrowed<T>* borrowed(T* p)
    -{
    -    return (detail::borrowed<T>*)p;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp.html index 07cb1f84..999f2bce 100644 --- a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp.html +++ b/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp.html @@ -3,14 +3,14 @@ boost/python/instance_holder.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder.html b/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder.html deleted file mode 100644 index b887da28..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -Class template instance_holder - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - instance_holder is an abstract - base class whose concrete derived classes hold C++ class instances within - their Python object wrappers. To allow multiple inheritance in Python from - C++ class wrappers, each such Python object contains a chain of instance_holders. - When an __init__ function - for a wrapped C++ class is invoked, a new instance_holder - instance is created and installed in the Python object using its install() - function. Each concrete class derived from instance_holder - must provide a holds() - implementation which allows Boost.Python to query it for the type(s) it - is holding. In order to support the held type's wrapped constructor(s), - the class must also provide constructors that can accept an initial PyObject* - argument referring to the owning Python object, and which forward the rest - of their arguments to the constructor of the held type. The initial argument - is needed to enable virtual function overriding in Python, and may be ignored, - depending on the specific instance_holder - subclass. -

    -
    namespace boost { namespace python
    -{
    -  class instance_holder : noncopyable
    -  {
    -   public:
    -      // destructor
    -      virtual ~instance_holder();
    -
    -      // instance_holder modifiers
    -      void install(PyObject* inst) throw();
    -
    -      // instance_holder observers
    -      virtual void* holds(type_info) = 0;
    -  };
    -}}
    -
    -
    - -
    virtual ~instance_holder();
    -
    -

    -
    -
    Effects
    -

    - destroys the object -

    -
    -
    -
    -
    - -
    void install(PyObject* inst) throw();
    -
    -

    -
    -
    Requires
    -

    - inst is a Python - instance of a wrapped C++ class type, or is a type derived from - a wrapped C++ class type. -

    -
    Effects
    -

    - installs the new instance at the head of the Python object's chain - of held instances. -

    -
    Throws
    -

    - nothing -

    -
    -
    -
    -
    - -
    virtual void *holds(type_info x) = 0;
    -
    -

    -
    -
    Returns
    -

    - A pointer to an object of the type described by x - if *this - contains such an object, 0 otherwise. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder/class_intance_holder_modifiers.html b/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder/class_intance_holder_modifiers.html deleted file mode 100644 index 798712e0..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder/class_intance_holder_modifiers.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Class intance_holder modifiers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    void install(PyObject* inst) throw();
    -
    -

    -
    -
    Requires
    -

    - inst is a Python - instance of a wrapped C++ class type, or is a type derived from - a wrapped C++ class type. -

    -
    Effects
    -

    - installs the new instance at the head of the Python object's chain - of held instances. -

    -
    Throws
    -

    - nothing -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder/class_intance_holder_observers.html b/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder/class_intance_holder_observers.html deleted file mode 100644 index 46efcf11..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/class_template_instance_holder/class_intance_holder_observers.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Class intance_holder observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    virtual void *holds(type_info x) = 0;
    -
    -

    -
    -
    Returns
    -

    - A pointer to an object of the type described by x - if *this - contains such an object, 0 otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/examples.html b/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/examples.html deleted file mode 100644 index fe57c38d..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp/examples.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following is a simplified version of the instance holder template used - by Boost.Python to wrap classes held by smart pointers: -

    -
    template <class SmartPtr, class Value>
    -struct pointer_holder : instance_holder
    -{
    -   // construct from the SmartPtr type
    -   pointer_holder(SmartPtr p)
    -       :m_p(p)
    -
    -   // Forwarding constructors for the held type
    -   pointer_holder(PyObject*)
    -       :m_p(new Value())
    -   {
    -   }
    -
    -   template<class A0>
    -   pointer_holder(PyObject*,A0 a0)
    -       :m_p(new Value(a0))
    -   {
    -   }
    -
    -   template<class A0,class A1>
    -   pointer_holder(PyObject*,A0 a0,A1 a1)
    -       :m_p(new Value(a0,a1))
    -   {
    -   }
    -   ...
    -
    - private: // required holder implementation
    -   void* holds(type_info dst_t)
    -   {
    -       // holds an instance of the SmartPtr type...
    -       if (dst_t == python::type_id<SmartPtr>())
    -           return &this->m_p;
    -
    -       // ...and an instance of the SmartPtr's element_type, if the
    -       // pointer is non-null
    -       return python::type_id<Value>() == dst_t ? &*this->m_p : 0;
    -   }
    -
    - private: // data members
    -   SmartPtr m_p;
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp.html index 879afc38..544c7ffa 100644 --- a/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp.html +++ b/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp.html @@ -3,14 +3,14 @@ boost/python/pointee.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp/class_template_pointee.html b/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp/class_template_pointee.html deleted file mode 100644 index 7eaffc06..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp/class_template_pointee.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class template pointee - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - pointee<T> - is used by the class_<...> - template to deduce the type being held when a pointer or smart pointer - type is used as its HeldType argument. -

    -
    namespace boost { namespace python
    -{
    -   template <class T> struct pointee
    -   {
    -      typedef T::element_type type;
    -   };
    -
    -   // specialization for pointers
    -   template <T> struct pointee<T*>
    -   {
    -      typedef T type;
    -   };
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp/examples.html b/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp/examples.html deleted file mode 100644 index ea614aa0..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp/examples.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Given a 3rd-party smart pointer type smart_pointer<T>, one might partially specialize pointee<smart_pointer<T> > so that it can be used as the HeldType - for a class wrapper: -

    -
    #include <boost/python/pointee.hpp>
    -#include <boost/python/class.hpp>
    -#include <third_party_lib.hpp>
    -
    -namespace boost { namespace python
    -{
    -  template <class T> struct pointee<smart_pointer<T> >
    -  {
    -     typedef T type;
    -  };
    -}}
    -
    -BOOST_PYTHON_MODULE(pointee_demo)
    -{
    -   class_<third_party_class, smart_pointer<third_party_class> >("third_party_class")
    -      .def(...)
    -      ...
    -      ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp.html index 42b6839e..a22143d2 100644 --- a/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp.html +++ b/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp.html @@ -3,14 +3,14 @@ boost/python/ssize_t.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp/constants.html b/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp/constants.html deleted file mode 100644 index 6debfa42..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp/constants.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Constants - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Imports PY_SSIZE_T_MAX - and PY_SSIZE_T_MIN as constants - into the boost::python namespace if available, or provides - appropriate constants for backward compatibility: -

    -
    #if PY_VERSION_HEX >= 0x02050000
    -ssize_t const ssize_t_max = PY_SSIZE_T_MAX;
    -ssize_t const ssize_t_min = PY_SSIZE_T_MIN;
    -#else
    -ssize_t const ssize_t_max = INT_MAX;
    -ssize_t const ssize_t_min = INT_MIN;
    -#endif
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp/typedefs.html b/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp/typedefs.html deleted file mode 100644 index 092ba1b1..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp/typedefs.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Typedefs - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Imports Py_ssize_t into - the boost::python namespace if available, or provides - an appropriate typedef for backward compatibility: -

    -
    #if PY_VERSION_HEX >= 0x02050000
    -typedef Py_ssize_t ssize_t;
    -#else
    -typedef int ssize_t;
    -#endif
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp.html index 2390fd2a..5629b6bb 100644 --- a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp.html +++ b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp.html @@ -3,14 +3,14 @@ boost/python/type_id.hpp - + -
    +

    PrevUpHomeNext diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info.html b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info.html deleted file mode 100644 index 14abc932..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info.html +++ /dev/null @@ -1,153 +0,0 @@ - - - -Class template type_info - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - type_info instances identify - a type. As std::type_info is specified to (but unlike - its implementation in some compilers), boost::python::type_info - never represents top-level references or cv-qualification (see section - 5.2.8 in the C++ standard). Unlike std::type_info, - boost::python::type_info instances are copyable, and - comparisons always work reliably across shared library boundaries. -

    -
    namespace boost { namespace python
    -{
    -  class type_info : totally_ordered<type_info>
    -  {
    -  public:
    -    // constructor
    -    type_info(std::type_info const& = typeid(void));
    -
    -    // comparisons
    -    bool operator<(type_info const& rhs) const;
    -    bool operator==(type_info const& rhs) const;
    -
    -    // observers
    -    char const* name() const;
    -  };
    -}}
    -
    -
    - -
    type_info(std::type_info const& = typeid(void));
    -
    -

    -
    -
    Effects
    -

    - constructs a type_info - object which identifies the same type as its argument. -

    -
    Rationale
    -

    - Since it is occasionally necessary to make an array of type_info objects a benign default - argument is supplied. Note: this constructor does not correct for - non-conformance of compiler typeid() implementations. See type_id, below. -

    -
    -
    -
    -
    - -
    bool operator<(type_info const &rhs) const;
    -
    -

    -
    -
    Effects
    -

    - yields a total order over type_info - objects. -

    -
    -
    -
    bool operator==(type_info const &rhs) const;
    -
    -

    -
    -
    Returns
    -

    - true iff the two values - describe the same type. -

    -
    Note
    -

    - The use of totally_ordered<type_info> as a private base class supplies - operators <=, - >=, >, and != -

    -
    -
    -
    -
    - -
    char const* name() const;
    -
    -
    -

    -
    -
    Returns
    -

    - The result of calling name() on the argument used to construct - the object. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info/class_template_type_info_compari.html b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info/class_template_type_info_compari.html deleted file mode 100644 index 3cb984f5..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info/class_template_type_info_compari.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -Class template type_info comparison - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    bool operator<(type_info const &rhs) const;
    -
    -

    -
    -
    Effects
    -

    - yields a total order over type_info - objects. -

    -
    -
    -
    bool operator==(type_info const &rhs) const;
    -
    -

    -
    -
    Returns
    -

    - true iff the two values - describe the same type. -

    -
    Note
    -

    - The use of totally_ordered<type_info> as a private base class supplies - operators <=, - >=, >, and != -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info/class_template_type_info_observe.html b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info/class_template_type_info_observe.html deleted file mode 100644 index 81e553e5..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/class_template_type_info/class_template_type_info_observe.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Class template type_info observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    char const* name() const;
    -
    -
    -

    -
    -
    Returns
    -

    - The result of calling name() on the argument used to construct - the object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/example.html b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/example.html deleted file mode 100644 index bc13c8cf..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/example.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - The following example, though silly, illustrates how the type_id facility - might be used -

    -
    #include <boost/python/type_id.hpp>
    -
    -// Returns true iff the user passes an int argument
    -template <class T>
    -bool is_int(T x)
    -{
    -   using boost::python::type_id;
    -   return type_id<T>() == type_id<int>();
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/functions.html b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/functions.html deleted file mode 100644 index b9d38095..00000000 --- a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp/functions.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    std::ostream& operator<<(std::ostream&s, type_info const&x);
    -
    -
    -

    -
    -
    Effects
    -

    - Writes a description of the type described by to x - into s. -

    -
    Rationale
    -

    - Not every C++ implementation provides a truly human-readable type_info::name() - string, but for some we may be able to decode the string and produce - a reasonable representation. -

    -
    Note
    -

    - On some non-conforming C++ implementations, the code is not actually - as simple as described above; the semantics are adjusted to work - as-if the C++ implementation were conforming. -

    -
    -
    -
    template <class T> type_info type_id()
    -
    -
    -

    -
    -
    Returns
    -

    - type_info(typeid(T)) -

    -
    Note
    -

    - On some non-conforming C++ implementations, the code is not actually - as simple as described above; the semantics are adjusted to work - as-if the C++ implementation were conforming. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp.html b/doc/html/reference/utility_and_infrastructure/handle_hpp.html deleted file mode 100644 index 9fef95e2..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -handle.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/handle.hpp> provides class template handle, a smart - pointer for managing reference-counted Python objects. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle.html deleted file mode 100644 index e6196703..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle.html +++ /dev/null @@ -1,226 +0,0 @@ - - - -Class template handle - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - handle is a smart pointer to a Python object type; it holds a pointer of - type T*, where T is its template parameter. T must be either a type derived - from PyObject or a POD type whose initial sizeof(PyObject) bytes are layout-compatible - with PyObject. Use handle<> at the boundary between the Python/'C' - API and high-level code; prefer object for a generalized interface to Python - objects. -

    -

    - In this document, the term "upcast" refers to an operation which - converts a pointer Y* to a base class pointer T* via static_cast<T*> - if Y is derived from T, or via C-style cast (T*) if it is not. However, - in the latter case the "upcast" is ill-formed if the initial - sizeof(PyObject) bytes of Y are not layout-compatible with PyObject. -

    -
    namespace boost { namespace python
    -{
    -  template <class T>
    -  class handle
    -  {
    -      typedef unspecified-member-function-pointer bool_type;
    -
    -   public: // types
    -      typedef T element_type;
    -
    -   public: // member functions
    -      ~handle();
    -
    -      template <class Y>
    -      explicit handle(detail::borrowed<null_ok<Y> >* p);
    -
    -      template <class Y>
    -      explicit handle(null_ok<detail::borrowed<Y> >* p);
    -
    -      template <class Y>
    -      explicit handle(detail::borrowed<Y>* p);
    -
    -      template <class Y>
    -      explicit handle(null_ok<Y>* p);
    -
    -      template <class Y>
    -      explicit handle(Y* p);
    -
    -      handle();
    -
    -      handle& operator=(handle const& r);
    -
    -      template<typename Y>
    -      handle& operator=(handle<Y> const & r); // never throws
    -
    -
    -      template <typename Y>
    -      handle(handle<Y> const& r);
    -
    -      handle(handle const& r);
    -
    -      T* operator-> () const;
    -      T& operator* () const;
    -      T* get() const;
    -      void reset();
    -      T* release();
    -
    -      operator bool_type() const; // never throws
    -   private:
    -      T* m_p;
    -  };
    -
    -  template <class T> struct null_ok;
    -  namespace detail { template <class T> struct borrowed; }
    -}}
    -
    -
    - -
    virtual ~handle();
    -
    -

    -
    -
    Effects
    -

    - Py_XDECREF(upcast<PyObject*>(m_p)) -

    -
    -
    -
    template <class Y>
    -explicit handle(detail::borrowed<null_ok<Y> >* p);
    -
    -
    -

    -
    -
    Effects
    -
    Py_XINCREF(upcast<PyObject*>(p));
    -m_p = upcast<T*>(p);
    -
    -
    -
    -
    template <class Y>
    -explicit handle(null_ok<detail::borrowed<Y> >* p);
    -
    -

    -
    -
    Effects
    -
    Py_XINCREF(upcast<PyObject*>(p));
    -      m_p = upcast<T*>(p);
    -
    -
    -
    -
    template <class Y>
    -explicit handle(detail::borrowed<Y>* p);
    -
    -

    -
    -
    Effects
    -
    Py_XINCREF(upcast<PyObject*>(p));
    -      m_p = upcast<T*>(expect_non_null(p));
    -
    -
    -
    -
    template <class Y>
    -explicit handle(null_ok<Y>* p);
    -
    -
    -

    -
    -
    Effects
    -

    - m_p = - upcast<T*>(p); -

    -
    -
    -
    template <class Y>
    -explicit handle(Y* p);
    -
    -
    -

    -
    -
    Effects
    -

    - m_p = - upcast<T*>(expect_non_null(p)); -

    -
    -
    -
    handle();
    -
    -
    -

    -
    -
    Effects
    -

    - m_p = - 0; -

    -
    -
    -
    template <typename Y>
    -handle(handle<Y> const& r);
    -handle(handle const& r);
    -
    -
    -

    -
    -
    Effects
    -

    - m_p = r.m_p; Py_XINCREF(upcast<PyObject*>(m_p)); -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/class_template_handle_modifiers.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/class_template_handle_modifiers.html deleted file mode 100644 index 3fcb35f5..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/class_template_handle_modifiers.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -Class template handle modifiers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    handle& operator=(handle const& r);
    -template<typename Y>
    -handle& operator=(handle<Y> const & r); // never throws
    -
    -
    -

    -
    -
    Effects
    -

    - Py_XINCREF(upcast<PyObject*>(r.m_p)); - Py_XDECREF( - upcast<PyObject*>(m_p)); - m_p = - r.m_p; -

    -
    -
    -
    T* release();
    -
    -
    -

    -
    -
    Effects
    -

    - T* - x = - m_p; - m_p = - 0; - return x; -

    -
    -
    -
    void reset();
    -
    -
    -

    -
    -
    Effects
    -

    - *this - = handle<T>(); -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/class_template_handle_observers.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/class_template_handle_observers.html deleted file mode 100644 index f1a12cd9..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/class_template_handle_observers.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Class template handle observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    T* operator-> () const;
    -T* get() const;
    -
    -
    -

    -
    -
    Returns
    -

    - m_p; -

    -
    -
    -
    T& operator* () const;
    -
    -
    -

    -
    -
    Returns
    -

    - *m_p; -

    -
    -
    -
    operator bool_type() const; // never throws
    -
    -
    -

    -
    -
    Returns
    -

    - 0 if m_p == - 0, a pointer convertible - to true otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/function_allow_null.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/function_allow_null.html deleted file mode 100644 index 48a2d799..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/function_allow_null.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Function allow_null - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -null_ok<T>* allow_null(T* p)
    -{
    -    return (null_ok<T>*)p;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/function_borrowed.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/function_borrowed.html deleted file mode 100644 index ee366497..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/class_template_handle/function_borrowed.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Function borrowed - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -detail::borrowed<T>* borrowed(T* p)
    -{
    -    return (detail::borrowed<T>*)p;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/function_allow_null.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/function_allow_null.html deleted file mode 100644 index b47b9ae5..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/function_allow_null.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Function allow_null - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -null_ok<T>* allow_null(T* p)
    -{
    -    return (null_ok<T>*)p;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/function_borrowed.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/function_borrowed.html deleted file mode 100644 index 3695db08..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/function_borrowed.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -Function borrowed - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    template <class T>
    -detail::borrowed<T>* borrowed(T* p)
    -{
    -    return (detail::borrowed<T>*)p;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp.html deleted file mode 100644 index db736f2b..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -type_id.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/type_id.hpp> provides types and functions for runtime - type identification like those of of <typeinfo>. It exists mostly - to work around certain compiler bugs and platform-dependent interactions - with shared libraries. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp/class_template_type_info.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp/class_template_type_info.html deleted file mode 100644 index 8ed65dea..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp/class_template_type_info.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -Class template type_info - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - type_info instances identify a type. As std::type_info is specified to - (but unlike its implementation in some compilers), boost::python::type_info - never represents top-level references or cv-qualification (see section - 5.2.8 in the C++ standard). Unlike std::type_info, boost::python::type_info - instances are copyable, and comparisons always work reliably across shared - library boundaries. -

    -
    namespace boost { namespace python
    -{
    -  class type_info : totally_ordered<type_info>
    -  {
    -   public:
    -      // constructor
    -      type_info(std::type_info const& = typeid(void));
    -
    -      // comparisons
    -      bool operator<(type_info const& rhs) const;
    -      bool operator==(type_info const& rhs) const;
    -
    -      // observers
    -      char const* name() const;
    -  };
    -}}
    -
    -
    - -
    type_info(std::type_info const& = typeid(void));
    -
    -

    -
    -
    Effects
    -

    - constructs a - type_info object - which identifies - the same - type as - its argument. -

    -
    Rationale
    -

    - Since it is occasionally necessary to make an array of type_info - objects a benign default argument is supplied. Note: this constructor - does not correct for non-conformance of compiler typeid() implementations. - See type_id, below. -

    -
    -
    -
    -
    - -
    bool operator<(type_info const &rhs) const;
    -
    -

    -
    -
    Effects
    -

    - yields a total order over type_info objects. -

    -
    -
    -
    bool operator==(type_info const &rhs) const;
    -
    -

    -
    -
    Returns
    -

    - true iff the two values describe the same type. -

    -
    Note
    -

    - The use of totally_ordered<type_info> as a private base - class supplies operators <, >, >, - and != -

    -
    -
    -
    -
    - -
    char const* name() const;
    -
    -
    -

    -
    -
    Returns
    -

    - The result of calling name() on the argument used to construct - the object. -

    -
    -
    -
    -
    - -
    std::ostream& operator<<(std::ostream&s, type_info const&x);
    -
    -
    -

    -
    -
    Effects
    -

    - Writes a description of the type described by to x into s. -

    -
    Rationale
    -

    - Not every C++ implementation provides a truly human-readable - type_info::name() string, but for some we may be able to decode - the string and produce a reasonable representation. -

    -
    Note
    -

    - On some non-conforming C++ implementations, the code is not actually - as simple as described above; the semantics are adjusted to work - as-if the C++ implementation were conforming. -

    -
    -
    -
    -
    - -
    The following example, though silly, illustrates how the type_id facility might be used
    -
    -
    #include <boost/python/type_id.hpp>
    -
    -// Returns true iff the user passes an int argument
    -template <class T>
    -bool is_int(T x)
    -{
    -   using boost::python::type_id;
    -   return type_id<T>() == type_id<int>();
    -}
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp/ssize_t_hpp.html b/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp/ssize_t_hpp.html deleted file mode 100644 index 91a9a916..00000000 --- a/doc/html/reference/utility_and_infrastructure/handle_hpp/type_id_hpp/ssize_t_hpp.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -ssize_t.hpp - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - - -
    - -

    - Python 2.5 introduces a new Py_ssize_t typedef and two related macros - (PEP 353). The <boost/python/ssize_t.hpp> header imports these - definitions into the boost::python namespace as ssize_t, ssize_t_max, - and ssize_t_min. Appropriate definitions are provided for backward - compatibility with previous Python versions. -

    -
    -
    - -

    - Imports Py_ssize_t into the boost::python namespace if available, or - provides an appropriate typedef for backward compatibility: -

    -
    #if PY_VERSION_HEX >= 0x02050000
    -typedef Py_ssize_t ssize_t;
    -#else
    -typedef int ssize_t;
    -#endif
    -
    -
    - -

    - Imports PY_SSIZE_T_MAX and PY_SSIZE_T_MIN as constants into the boost::python - namespace if available, or provides appropriate constants for backward - compatibility: -

    -
    #if PY_VERSION_HEX >= 0x02050000
    -ssize_t const ssize_t_max = PY_SSIZE_T_MAX;
    -ssize_t const ssize_t_min = PY_SSIZE_T_MIN;
    -#else
    -ssize_t const ssize_t_max = INT_MAX;
    -ssize_t const ssize_t_min = INT_MIN;
    -#endif
    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp.html b/doc/html/reference/utility_and_infrastructure/instance_holder_hpp.html deleted file mode 100644 index a6d605fd..00000000 --- a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -instance_holder.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/instance_holder.hpp> provides class instance_holder, - the base class for types which hold C++ instances of wrapped classes. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder.html b/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder.html deleted file mode 100644 index c527cc6c..00000000 --- a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -Class template instance_holder - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - instance_holder is an abstract base class whose concrete derived classes - hold C++ class instances within their Python object wrappers. To allow - multiple inheritance in Python from C++ class wrappers, each such Python - object contains a chain of instance_holders. When an __init__ function - for a wrapped C++ class is invoked, a new instance_holder instance is created - and installed in the Python object using its install() function. Each concrete - class derived from instance_holder must provide a holds() implementation - which allows Boost.Python to query it for the type(s) it is holding. In - order to support the held type's wrapped constructor(s), the class must - also provide constructors that can accept an initial PyObject* argument - referring to the owning Python object, and which forward the rest of their - arguments to the constructor of the held type. The initial argument is - needed to enable virtual function overriding in Python, and may be ignored, - depending on the specific instance_holder subclass. -

    -
    namespace boost { namespace python
    -{
    -  class instance_holder : noncopyable
    -  {
    -   public:
    -      // destructor
    -      virtual ~instance_holder();
    -
    -      // instance_holder modifiers
    -      void install(PyObject* inst) throw();
    -
    -      // instance_holder observers
    -      virtual void* holds(type_info) = 0;
    -  };
    -}}
    -
    -
    - -
    virtual ~instance_holder();
    -
    -

    -
    -
    Effects
    -

    - destroys the object -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder/class_intance_holder_modifiers.html b/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder/class_intance_holder_modifiers.html deleted file mode 100644 index e987df3d..00000000 --- a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder/class_intance_holder_modifiers.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -Class intance_holder modifiers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    void install(PyObject* inst) throw();
    -
    -

    -
    -
    Requires
    -

    - inst is a Python instance of a wrapped C++ class type, or is a - type derived from a wrapped C++ class type. -

    -
    Effects
    -

    - installs the new instance at the head of the Python object's chain - of held instances. -

    -
    Throws
    -

    - nothing -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder/class_intance_holder_observers.html b/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder/class_intance_holder_observers.html deleted file mode 100644 index 512a6157..00000000 --- a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/class_template_instance_holder/class_intance_holder_observers.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Class intance_holder observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    virtual void *holds(type_info x) = 0;
    -
    -

    -
    -
    Returns
    -

    - A pointer to an object of the type described by x - if *this - contains such an object, 0 otherwise. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/examples.html b/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/examples.html deleted file mode 100644 index bc6b7ea7..00000000 --- a/doc/html/reference/utility_and_infrastructure/instance_holder_hpp/examples.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    The following is a simplified version of the instance holder template used by Boost.Python to wrap classes held by smart pointers:
    -
    -
    template <class SmartPtr, class Value>
    -struct pointer_holder : instance_holder
    -{
    -   // construct from the SmartPtr type
    -   pointer_holder(SmartPtr p)
    -       :m_p(p)
    -
    -   // Forwarding constructors for the held type
    -   pointer_holder(PyObject*)
    -       :m_p(new Value())
    -   {
    -   }
    -
    -   template<class A0>
    -   pointer_holder(PyObject*,A0 a0)
    -       :m_p(new Value(a0))
    -   {
    -   }
    -
    -   template<class A0,class A1>
    -   pointer_holder(PyObject*,A0 a0,A1 a1)
    -       :m_p(new Value(a0,a1))
    -   {
    -   }
    -   ...
    -
    - private: // required holder implementation
    -   void* holds(type_info dst_t)
    -   {
    -       // holds an instance of the SmartPtr type...
    -       if (dst_t == python::type_id<SmartPtr>())
    -           return &this->m_p;
    -
    -       // ...and an instance of the SmartPtr's element_type, if the
    -       // pointer is non-null
    -       return python::type_id<Value>() == dst_t ? &*this->m_p : 0;
    -   }
    -
    - private: // data members
    -   SmartPtr m_p;
    -};
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/pointee_hpp.html b/doc/html/reference/utility_and_infrastructure/pointee_hpp.html deleted file mode 100644 index 64553279..00000000 --- a/doc/html/reference/utility_and_infrastructure/pointee_hpp.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -pointee.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/pointee.hpp> introduces a traits metafunction template - pointee<T> that can be used to extract the "pointed-to" - type from the type of a pointer or smart pointer. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/pointee_hpp/class_template_pointee.html b/doc/html/reference/utility_and_infrastructure/pointee_hpp/class_template_pointee.html deleted file mode 100644 index 57eb6ffd..00000000 --- a/doc/html/reference/utility_and_infrastructure/pointee_hpp/class_template_pointee.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -Class template pointee - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - pointee<T> is used by the class_<...> template to deduce the - type being held when a pointer or smart pointer type is used as its HeldType - argument. -

    -
    namespace boost { namespace python
    -{
    -   template <class T> struct pointee
    -   {
    -      typedef T::element_type type;
    -   };
    -
    -   // specialization for pointers
    -   template <T> struct pointee<T*>
    -   {
    -      typedef T type;
    -   };
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/pointee_hpp/examples.html b/doc/html/reference/utility_and_infrastructure/pointee_hpp/examples.html deleted file mode 100644 index 614d4408..00000000 --- a/doc/html/reference/utility_and_infrastructure/pointee_hpp/examples.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Examples - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    Given a 3rd-party smart pointer type smart_pointer<T>, one might partially specialize pointee<smart_pointer<T> > so that it can be used as the HeldType for a class wrapper:
    -
    -
    #include <boost/python/pointee.hpp>
    -#include <boost/python/class.hpp>
    -#include <third_party_lib.hpp>
    -
    -namespace boost { namespace python
    -{
    -  template <class T> struct pointee<smart_pointer<T> >
    -  {
    -     typedef T type;
    -  };
    -}}
    -
    -BOOST_PYTHON_MODULE(pointee_demo)
    -{
    -   class_<third_party_class, smart_pointer<third_party_class> >("third_party_class")
    -      .def(...)
    -      ...
    -      ;
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/ssize_t_hpp.html b/doc/html/reference/utility_and_infrastructure/ssize_t_hpp.html deleted file mode 100644 index 83d6f96c..00000000 --- a/doc/html/reference/utility_and_infrastructure/ssize_t_hpp.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ssize_t.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Python 2.5 introduces a new Py_ssize_t typedef and two related macros (PEP - 353). The <boost/python/ssize_t.hpp> header imports these definitions - into the boost::python namespace as ssize_t, ssize_t_max, and ssize_t_min. - Appropriate definitions are provided for backward compatibility with previous - Python versions. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/ssize_t_hpp/constants.html b/doc/html/reference/utility_and_infrastructure/ssize_t_hpp/constants.html deleted file mode 100644 index 2946b395..00000000 --- a/doc/html/reference/utility_and_infrastructure/ssize_t_hpp/constants.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Constants - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Imports PY_SSIZE_T_MAX and PY_SSIZE_T_MIN as constants into the boost::python - namespace if available, or provides appropriate constants for backward - compatibility: -

    -
    #if PY_VERSION_HEX >= 0x02050000
    -ssize_t const ssize_t_max = PY_SSIZE_T_MAX;
    -ssize_t const ssize_t_min = PY_SSIZE_T_MIN;
    -#else
    -ssize_t const ssize_t_max = INT_MAX;
    -ssize_t const ssize_t_min = INT_MIN;
    -#endif
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/ssize_t_hpp/typedefs.html b/doc/html/reference/utility_and_infrastructure/ssize_t_hpp/typedefs.html deleted file mode 100644 index b6c3295f..00000000 --- a/doc/html/reference/utility_and_infrastructure/ssize_t_hpp/typedefs.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -Typedefs - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -

    - Imports Py_ssize_t into the boost::python namespace if available, or provides - an appropriate typedef for backward compatibility: -

    -
    #if PY_VERSION_HEX >= 0x02050000
    -typedef Py_ssize_t ssize_t;
    -#else
    -typedef int ssize_t;
    -#endif
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp.html deleted file mode 100644 index f71a497e..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -type_id.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - <boost/python/type_id.hpp> provides types and functions for runtime - type identification like those of of <typeinfo>. It exists mostly - to work around certain compiler bugs and platform-dependent interactions - with shared libraries. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info.html deleted file mode 100644 index 04b5c93e..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -Class template type_info - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -

    - type_info instances identify a type. As std::type_info is specified to - (but unlike its implementation in some compilers), boost::python::type_info - never represents top-level references or cv-qualification (see section - 5.2.8 in the C++ standard). Unlike std::type_info, boost::python::type_info - instances are copyable, and comparisons always work reliably across shared - library boundaries. -

    -
    namespace boost { namespace python
    -{
    -  class type_info : totally_ordered<type_info>
    -  {
    -   public:
    -      // constructor
    -      type_info(std::type_info const& = typeid(void));
    -
    -      // comparisons
    -      bool operator<(type_info const& rhs) const;
    -      bool operator==(type_info const& rhs) const;
    -
    -      // observers
    -      char const* name() const;
    -  };
    -}}
    -
    -
    - -
    type_info(std::type_info const& = typeid(void));
    -
    -

    -
    -
    Effects
    -

    - constructs a - type_info object - which identifies - the same - type as - its argument. -

    -
    Rationale
    -

    - Since it is occasionally necessary to make an array of type_info - objects a benign default argument is supplied. Note: this constructor - does not correct for non-conformance of compiler typeid() implementations. - See type_id, below. -

    -
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/class_template_type_info_compari.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/class_template_type_info_compari.html deleted file mode 100644 index 46f26233..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/class_template_type_info_compari.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -Class template type_info comparison - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    bool operator<(type_info const &rhs) const;
    -
    -

    -
    -
    Effects
    -

    - yields a total order over type_info objects. -

    -
    -
    -
    bool operator==(type_info const &rhs) const;
    -
    -

    -
    -
    Returns
    -

    - true iff the two values describe the same type. -

    -
    Note
    -

    - The use of totally_ordered<type_info> as a private base class - supplies operators <, >, >, and != -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/class_template_type_info_observe.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/class_template_type_info_observe.html deleted file mode 100644 index fa00012f..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/class_template_type_info_observe.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -Class template type_info observers - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    char const* name() const;
    -
    -
    -

    -
    -
    Returns
    -

    - The result of calling name() on the argument used to construct - the object. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/example.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/example.html deleted file mode 100644 index 33c9dea2..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/example.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    The following example, though silly, illustrates how the type_id facility might be used
    -
    -
    #include <boost/python/type_id.hpp>
    -
    -// Returns true iff the user passes an int argument
    -template <class T>
    -bool is_int(T x)
    -{
    -   using boost::python::type_id;
    -   return type_id<T>() == type_id<int>();
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/functions.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/functions.html deleted file mode 100644 index 5cf5273c..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/class_template_type_info/functions.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    std::ostream& operator<<(std::ostream&s, type_info const&x);
    -
    -
    -

    -
    -
    Effects
    -

    - Writes a description of the type described by to x into s. -

    -
    Rationale
    -

    - Not every C++ implementation provides a truly human-readable type_info::name() - string, but for some we may be able to decode the string and produce - a reasonable representation. -

    -
    Note
    -

    - On some non-conforming C++ implementations, the code is not actually - as simple as described above; the semantics are adjusted to work - as-if the C++ implementation were conforming. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/example.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/example.html deleted file mode 100644 index 3dcd1967..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/example.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -Example - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    The following example, though silly, illustrates how the type_id facility might be used
    -
    -
    #include <boost/python/type_id.hpp>
    -
    -// Returns true iff the user passes an int argument
    -template <class T>
    -bool is_int(T x)
    -{
    -   using boost::python::type_id;
    -   return type_id<T>() == type_id<int>();
    -}
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/functions.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/functions.html deleted file mode 100644 index 13d45226..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/functions.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
    std::ostream& operator<<(std::ostream&s, type_info const&x);
    -
    -
    -

    -
    -
    Effects
    -

    - Writes a description of the type described by to x into s. -

    -
    Rationale
    -

    - Not every C++ implementation provides a truly human-readable type_info::name() - string, but for some we may be able to decode the string and produce - a reasonable representation. -

    -
    Note
    -

    - On some non-conforming C++ implementations, the code is not actually - as simple as described above; the semantics are adjusted to work - as-if the C++ implementation were conforming. -

    -
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/ssize_t_hpp.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/ssize_t_hpp.html deleted file mode 100644 index 3389f406..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/ssize_t_hpp.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ssize_t.hpp - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - - -
    - -

    - Python 2.5 introduces a new Py_ssize_t typedef and two related macros - (PEP 353). The <boost/python/ssize_t.hpp> header imports these - definitions into the boost::python namespace as ssize_t, ssize_t_max, - and ssize_t_min. Appropriate definitions are provided for backward compatibility - with previous Python versions. -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/reference/utility_and_infrastructure/type_id_hpp/ssize_t_hpp/typedefs.html b/doc/html/reference/utility_and_infrastructure/type_id_hpp/ssize_t_hpp/typedefs.html deleted file mode 100644 index 68fccab2..00000000 --- a/doc/html/reference/utility_and_infrastructure/type_id_hpp/ssize_t_hpp/typedefs.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -Typedefs - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    - - -

    - Imports Py_ssize_t into the boost::python namespace if available, or - provides an appropriate typedef for backward compatibility: -

    -
    #if PY_VERSION_HEX >= 0x02050000
    -typedef Py_ssize_t ssize_t;
    -#else
    -typedef int ssize_t;
    -#endif
    -
    -
    - -

    - Imports PY_SSIZE_T_MAX and PY_SSIZE_T_MIN as constants into the boost::python - namespace if available, or provides appropriate constants for backward - compatibility: -

    -
    #if PY_VERSION_HEX >= 0x02050000
    -ssize_t const ssize_t_max = PY_SSIZE_T_MAX;
    -ssize_t const ssize_t_min = PY_SSIZE_T_MIN;
    -#else
    -ssize_t const ssize_t_max = INT_MAX;
    -ssize_t const ssize_t_min = INT_MIN;
    -#endif
    -
    -
    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/rst.css b/doc/html/rst.css index 1e2ac122..afd9a98c 100644 --- a/doc/html/rst.css +++ b/doc/html/rst.css @@ -1,5 +1,5 @@ -@import url("boostbook.css"); -@import url("docutils.css"); +@import url("doc/src/boostbook.css"); +@import url("doc/src/docutils.css"); /* Copyright David Abrahams 2006. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/html/support.html b/doc/html/support.html index dbc9a89b..c15fdab1 100644 --- a/doc/html/support.html +++ b/doc/html/support.html @@ -3,14 +3,14 @@ Chapter 3. Support Resources - + -
    +

    PrevUpHomeNext @@ -43,23 +43,23 @@ mailing list is a forum for discussing Boost's Build System.
  • -

    - The Boost.Python Issue - tracker -

    -
    +

    + The Boost.Python Issue + tracker +

    +
    + In the past we used Trac, which still hosts a considerable number of + open + issues. We hope to be able to either close them or migrate + them to the new issue tracker. +

    [Note] Note

    - In the past we used Trac, which still hosts a considerable number of - open - issues. We hope to be able to either close them or migrate them - to the new issue tracker. -

    -
  • +
  • The Boost.Python Wiki
  • diff --git a/doc/html/support/support.html b/doc/html/support/support.html deleted file mode 100644 index 75bfe7cd..00000000 --- a/doc/html/support/support.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -Support - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    - -
      -
    • - The Boost.Python - mailing list is a forum for discussing Python/C++ interoperability, - and Boost.Python in particular. Post your Boost.Python questions here. -
    • -
    • - The Boost.Build - mailing list is a forum for discussing Boost's Build System. -
    • -
    • -

      - The Boost.Python Issue - tracker -

      -
      - - - - - -
      [Note]Note

      - In the past we used Trac, which still hosts a considerable number of - open - issues. We hope to be able to either close them or migrate - them to the new issue tracker. -

      -
    • -
    • - The Boost.Python Wiki -
    • -
    • - Boost.Python Source repository -
    • -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial_HTML.manifest b/doc/html/tutorial/HTML.manifest similarity index 100% rename from doc/html/tutorial/tutorial_HTML.manifest rename to doc/html/tutorial/HTML.manifest diff --git a/doc/html/tutorial/index.html b/doc/html/tutorial/index.html index 3bd462cb..0846ac21 100644 --- a/doc/html/tutorial/index.html +++ b/doc/html/tutorial/index.html @@ -3,12 +3,12 @@ Boost.Python Tutorial - + -
    +

    Next
    @@ -140,7 +140,7 @@
    - +

    Last revised: August 05, 2015 at 11:20:15 GMT

    Last revised: August 05, 2016 at 22:20:21 GMT


    diff --git a/doc/html/tutorial/tutorial/auto_overloading.html b/doc/html/tutorial/tutorial/auto_overloading.html deleted file mode 100644 index b3c6cd44..00000000 --- a/doc/html/tutorial/tutorial/auto_overloading.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -Auto-Overloading - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Auto-Overloading

    -

    - It was mentioned in passing in the previous section that BOOST_PYTHON_FUNCTION_OVERLOADS - and BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS can also be - used for overloaded functions and member functions with a common sequence - of initial arguments. Here is an example: -

    -
    void foo()
    -{
    -   /*...*/
    -}
    -
    -void foo(bool a)
    -{
    -   /*...*/
    -}
    -
    -void foo(bool a, int b)
    -{
    -   /*...*/
    -}
    -
    -void foo(bool a, int b, char c)
    -{
    -   /*...*/
    -}
    -
    -

    - Like in the previous section, we can generate thin wrappers for these overloaded - functions in one-shot: -

    -
    BOOST_PYTHON_FUNCTION_OVERLOADS(foo_overloads, foo, 0, 3)
    -
    -

    - Then... -

    -
    .def("foo", (void(*)(bool, int, char))0, foo_overloads());
    -
    -

    - Notice though that we have a situation now where we have a minimum of zero - (0) arguments and a maximum of 3 arguments. -

    -

    - - Manual Wrapping -

    -

    - It is important to emphasize however that the overloaded - functions must have a common sequence of initial arguments. Otherwise, - our scheme above will not work. If this is not the case, we have to wrap - our functions manually. -

    -

    - Actually, we can mix and match manual wrapping of overloaded functions and - automatic wrapping through BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS - and its sister, BOOST_PYTHON_FUNCTION_OVERLOADS. Following - up on our example presented in the section on - overloading, since the first 4 overload functins have a common sequence - of initial arguments, we can use BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS - to automatically wrap the first three of the defs and - manually wrap just the last. Here's how we'll do this: -

    -
    BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(xf_overloads, f, 1, 4)
    -
    -

    - Create a member function pointers as above for both X::f overloads: -

    -
    bool    (X::*fx1)(int, double, char)    = &X::f;
    -int     (X::*fx2)(int, int, int)        = &X::f;
    -
    -

    - Then... -

    -
    .def("f", fx1, xf_overloads());
    -.def("f", fx2)
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/class_data_members.html b/doc/html/tutorial/tutorial/class_data_members.html deleted file mode 100644 index ac4a1a74..00000000 --- a/doc/html/tutorial/tutorial/class_data_members.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -Class Data Members - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Class Data Members

    -

    - Data members may also be exposed to Python so that they can be accessed as - attributes of the corresponding Python class. Each data member that we wish - to be exposed may be regarded as read-only - or read-write. Consider this class Var: -

    -
    struct Var
    -{
    -    Var(std::string name) : name(name), value() {}
    -    std::string const name;
    -    float value;
    -};
    -
    -

    - Our C++ Var class and its data members can be exposed - to Python: -

    -
    class_<Var>("Var", init<std::string>())
    -    .def_readonly("name", &Var::name)
    -    .def_readwrite("value", &Var::value);
    -
    -

    - Then, in Python, assuming we have placed our Var class inside the namespace - hello as we did before: -

    -
    >>> x = hello.Var('pi')
    ->>> x.value = 3.14
    ->>> print x.name, 'is around', x.value
    -pi is around 3.14
    -
    -

    - Note that name is exposed as read-only - while value is exposed as read-write. -

    -
    >>> x.name = 'e' # can't change name
    -Traceback (most recent call last):
    -  File "<stdin>", line 1, in ?
    -AttributeError: can't set attribute
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/class_operators_special_functions.html b/doc/html/tutorial/tutorial/class_operators_special_functions.html deleted file mode 100644 index c7de031b..00000000 --- a/doc/html/tutorial/tutorial/class_operators_special_functions.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -Class Operators/Special Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Class Operators/Special Functions

    -

    - - Python Operators -

    -

    - C is well known for the abundance of operators. C++ extends this to the extremes - by allowing operator overloading. Boost.Python takes advantage of this and - makes it easy to wrap C++ operator-powered classes. -

    -

    - Consider a file position class FilePos and a set of operators - that take on FilePos instances: -

    -
    class FilePos { /*...*/ };
    -
    -FilePos     operator+(FilePos, int);
    -FilePos     operator+(int, FilePos);
    -int         operator-(FilePos, FilePos);
    -FilePos     operator-(FilePos, int);
    -FilePos&    operator+=(FilePos&, int);
    -FilePos&    operator-=(FilePos&, int);
    -bool        operator<(FilePos, FilePos);
    -
    -

    - The class and the various operators can be mapped to Python rather easily - and intuitively: -

    -
    class_<FilePos>("FilePos")
    -    .def(self + int())          // __add__
    -    .def(int() + self)          // __radd__
    -    .def(self - self)           // __sub__
    -    .def(self - int())          // __sub__
    -    .def(self += int())         // __iadd__
    -    .def(self -= other<int>())
    -    .def(self < self);          // __lt__
    -
    -

    - The code snippet above is very clear and needs almost no explanation at all. - It is virtually the same as the operators' signatures. Just take note that - self refers to FilePos object. Also, not every class - T that you might need to interact with in an operator - expression is (cheaply) default-constructible. You can use other<T>() - in place of an actual T instance when writing "self - expressions". -

    -

    - - Special Methods -

    -

    - Python has a few more Special Methods. Boost.Python - supports all of the standard special method names supported by real Python - class instances. A similar set of intuitive interfaces can also be used to - wrap C++ functions that correspond to these Python special functions. - Example: -

    -
    class Rational
    -{ public: operator double() const; };
    -
    -Rational pow(Rational, Rational);
    -Rational abs(Rational);
    -ostream& operator<<(ostream&,Rational);
    -
    -class_<Rational>("Rational")
    -    .def(float_(self))                  // __float__
    -    .def(pow(self, other<Rational>))    // __pow__
    -    .def(abs(self))                     // __abs__
    -    .def(str(self))                     // __str__
    -    ;
    -
    -

    - Need we say more? -

    -
    - - - - - -
    [Note]Note

    - What is the business of operator<<? Well, the method str requires the operator<< to do its work (i.e. operator<< - is used by the method defined by def(str(self)). -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/class_properties.html b/doc/html/tutorial/tutorial/class_properties.html deleted file mode 100644 index f1c93eaa..00000000 --- a/doc/html/tutorial/tutorial/class_properties.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -Class Properties - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Class Properties

    -

    - In C++, classes with public data members are usually frowned upon. Well designed - classes that take advantage of encapsulation hide the class' data members. - The only way to access the class' data is through access (getter/setter) - functions. Access functions expose class properties. Here's an example: -

    -
    struct Num
    -{
    -    Num();
    -    float get() const;
    -    void set(float value);
    -    ...
    -};
    -
    -

    - However, in Python attribute access is fine; it doesn't neccessarily break - encapsulation to let users handle attributes directly, because the attributes - can just be a different syntax for a method call. Wrapping our Num - class using Boost.Python: -

    -
    class_<Num>("Num")
    -    .add_property("rovalue", &Num::get)
    -    .add_property("value", &Num::get, &Num::set);
    -
    -

    - And at last, in Python: -

    -
    >>> x = Num()
    ->>> x.value = 3.14
    ->>> x.value, x.rovalue
    -(3.14, 3.14)
    ->>> x.rovalue = 2.17 # error!
    -
    -

    - Take note that the class property rovalue is exposed as - read-only since the rovalue - setter member function is not passed in: -

    -
    .add_property("rovalue", &Num::get)
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/class_virtual_functions.html b/doc/html/tutorial/tutorial/class_virtual_functions.html deleted file mode 100644 index 35cc1330..00000000 --- a/doc/html/tutorial/tutorial/class_virtual_functions.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -Class Virtual Functions - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Class Virtual Functions

    -

    - In this section, we will learn how to make functions behave polymorphically - through virtual functions. Continuing our example, let us add a virtual function - to our Base class: -

    -
    struct Base
    -{
    -    virtual ~Base() {}
    -    virtual int f() = 0;
    -};
    -
    -

    - One of the goals of Boost.Python is to be minimally intrusive on an existing - C++ design. In principle, it should be possible to expose the interface for - a 3rd party library without changing it. It is not ideal to add anything - to our class Base. Yet, when - you have a virtual function that's going to be overridden in Python and called - polymorphically from C++, we'll need to - add some scaffoldings to make things work properly. What we'll do is write - a class wrapper that derives from Base - that will unintrusively hook into the virtual functions so that a Python - override may be called: -

    -
    struct BaseWrap : Base, wrapper<Base>
    -{
    -    int f()
    -    {
    -        return this->get_override("f")();
    -    }
    -};
    -
    -

    - Notice too that in addition to inheriting from Base, - we also multiply- inherited wrapper<Base> (See Wrapper). - The wrapper template makes - the job of wrapping classes that are meant to overridden in Python, easier. -

    - -

    - BaseWrap's overridden virtual member function f - in effect calls the corresponding method of the Python object through get_override. -

    -

    - Finally, exposing Base: -

    -
    class_<BaseWrap, boost::noncopyable>("Base")
    -    .def("f", pure_virtual(&Base::f))
    -    ;
    -
    -

    - pure_virtual signals Boost.Python - that the function f is a - pure virtual function. -

    -
    - - - - - -
    [Note]Note
    -

    - member function and methods -

    -

    - Python, like many object oriented languages uses the term methods. - Methods correspond roughly to C++'s member functions -

    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/creating_python_object.html b/doc/html/tutorial/tutorial/creating_python_object.html deleted file mode 100644 index e2ebdf54..00000000 --- a/doc/html/tutorial/tutorial/creating_python_object.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Creating boost::python::object from PyObject* - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Creating boost::python::object from PyObject* -

    -

    - When you want a boost::python::object to manage a pointer to PyObject* - pyobj one does: -

    -
    boost::python::object o(boost::python::handle<>(pyobj));
    -
    -

    - In this case, the o object, - manages the pyobj, it won’t - increase the reference count on construction. -

    -

    - Otherwise, to use a borrowed reference: -

    -
    boost::python::object o(boost::python::handle<>(boost::python::borrowed(pyobj)));
    -
    -

    - In this case, Py_INCREF is - called, so pyobj is not destructed - when object o goes out of scope. -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/default_arguments.html b/doc/html/tutorial/tutorial/default_arguments.html deleted file mode 100644 index 93e998b8..00000000 --- a/doc/html/tutorial/tutorial/default_arguments.html +++ /dev/null @@ -1,183 +0,0 @@ - - - -Default Arguments - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Default Arguments

    -

    - Boost.Python wraps (member) function pointers. Unfortunately, C++ function - pointers carry no default argument info. Take a function f - with default arguments: -

    -
    int f(int, double = 3.14, char const* = "hello");
    -
    -

    - But the type of a pointer to the function f has no information - about its default arguments: -

    -
    int(*g)(int,double,char const*) = f;    // defaults lost!
    -
    -

    - When we pass this function pointer to the def function, - there is no way to retrieve the default arguments: -

    -
    def("f", f);                            // defaults lost!
    -
    -

    - Because of this, when wrapping C++ code, we had to resort to manual wrapping - as outlined in the previous section, - or writing thin wrappers: -

    -
    // write "thin wrappers"
    -int f1(int x) { return f(x); }
    -int f2(int x, double y) { return f(x,y); }
    -
    -/*...*/
    -
    -    // in module init
    -    def("f", f);  // all arguments
    -    def("f", f2); // two arguments
    -    def("f", f1); // one argument
    -
    -

    - When you want to wrap functions (or member functions) that either: -

    -
      -
    • - have default arguments, or -
    • -
    • - are overloaded with a common sequence of initial arguments -
    • -
    -

    - - BOOST_PYTHON_FUNCTION_OVERLOADS -

    -

    - Boost.Python now has a way to make it easier. For instance, given a function: -

    -
    int foo(int a, char b = 1, unsigned c = 2, double d = 3)
    -{
    -    /*...*/
    -}
    -
    -

    - The macro invocation: -

    -
    BOOST_PYTHON_FUNCTION_OVERLOADS(foo_overloads, foo, 1, 4)
    -
    -

    - will automatically create the thin wrappers for us. This macro will create - a class foo_overloads that can be passed on to def(...). - The third and fourth macro argument are the minimum arguments and maximum - arguments, respectively. In our foo function the minimum - number of arguments is 1 and the maximum number of arguments is 4. The def(...) - function will automatically add all the foo variants for us: -

    -
    def("foo", foo, foo_overloads());
    -
    -

    - - BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS -

    -

    - Objects here, objects there, objects here there everywhere. More frequently - than anything else, we need to expose member functions of our classes to - Python. Then again, we have the same inconveniences as before when default - arguments or overloads with a common sequence of initial arguments come into - play. Another macro is provided to make this a breeze. -

    -

    - Like BOOST_PYTHON_FUNCTION_OVERLOADS, BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS - may be used to automatically create the thin wrappers for wrapping member - functions. Let's have an example: -

    -
    struct george
    -{
    -    void
    -    wack_em(int a, int b = 0, char c = 'x')
    -    {
    -        /*...*/
    -    }
    -};
    -
    -

    - The macro invocation: -

    -
    BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(george_overloads, wack_em, 1, 3)
    -
    -

    - will generate a set of thin wrappers for george's wack_em - member function accepting a minimum of 1 and a maximum of 3 arguments (i.e. - the third and fourth macro argument). The thin wrappers are all enclosed - in a class named george_overloads that can then be used - as an argument to def(...): -

    -
    .def("wack_em", &george::wack_em, george_overloads());
    -
    -

    - See the overloads - reference for details. -

    -

    - - init and optional -

    -

    - A similar facility is provided for class constructors, again, with default - arguments or a sequence of overloads. Remember init<...>? - For example, given a class X with a constructor: -

    -
    struct X
    -{
    -    X(int a, char b = 'D', std::string c = "constructor", double d = 0.0);
    -    /*...*/
    -}
    -
    -

    - You can easily add this constructor to Boost.Python in one shot: -

    -
    .def(init<int, optional<char, std::string, double> >())
    -
    -

    - Notice the use of init<...> and optional<...> - to signify the default (optional arguments). -

    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/derived_object_types.html b/doc/html/tutorial/tutorial/derived_object_types.html deleted file mode 100644 index 272cb66d..00000000 --- a/doc/html/tutorial/tutorial/derived_object_types.html +++ /dev/null @@ -1,155 +0,0 @@ - - - -Derived Object types - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Derived Object types

    -

    - Boost.Python comes with a set of derived object types - corresponding to that of Python's: -

    -
      -
    • - list -
    • -
    • - dict -
    • -
    • - tuple -
    • -
    • - str -
    • -
    • - long_ -
    • -
    • - enum -
    • -
    -

    - These derived object types act like real Python types. - For instance: -

    -
    str(1) ==> "1"
    -
    -

    - Wherever appropriate, a particular derived object has - corresponding Python type's methods. For instance, dict - has a keys() method: -

    -
    d.keys()
    -
    -

    - make_tuple is provided for declaring tuple literals. - Example: -

    -
    make_tuple(123, 'D', "Hello, World", 0.0);
    -
    -

    - In C++, when Boost.Python objects are used as arguments - to functions, subtype matching is required. For example, when a function - f, as declared below, is wrapped, it will only accept - instances of Python's str type and subtypes. -

    -
    void f(str name)
    -{
    -    object n2 = name.attr("upper")();   // NAME = name.upper()
    -    str NAME = name.upper();            // better
    -    object msg = "%s is bigger than %s" % make_tuple(NAME,name);
    -}
    -
    -

    - In finer detail: -

    -
    str NAME = name.upper();
    -
    -

    - Illustrates that we provide versions of the str type's methods as C++ member - functions. -

    -
    object msg = "%s is bigger than %s" % make_tuple(NAME,name);
    -
    -

    - Demonstrates that you can write the C++ equivalent of "format" - % x,y,z in Python, which is useful since there's no easy way to - do that in std C++. -

    - -

    - Python: -

    -
    >>> d = dict(x.__dict__)     # copies x.__dict__
    ->>> d['whatever'] = 3        # modifies the copy
    -
    -

    - C++: -

    -
    dict d(x.attr("__dict__"));  // copies x.__dict__
    -d['whatever'] = 3;           // modifies the copy
    -
    -

    - - class_<T> as objects -

    -

    - Due to the dynamic nature of Boost.Python objects, any class_<T> - may also be one of these types! The following code snippet wraps the class - (type) object. -

    -

    - We can use this to create wrapped instances. Example: -

    -
    object vec345 = (
    -    class_<Vec2>("Vec2", init<double, double>())
    -        .def_readonly("length", &Point::length)
    -        .def_readonly("angle", &Point::angle)
    -    )(3.0, 4.0);
    -
    -assert(vec345.attr("length") == 5.0);
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/embedding.html b/doc/html/tutorial/tutorial/embedding.html index 3e9816ec..e5857bad 100644 --- a/doc/html/tutorial/tutorial/embedding.html +++ b/doc/html/tutorial/tutorial/embedding.html @@ -3,14 +3,14 @@ Embedding - + -
    +

    PrevUpHomeNext @@ -124,9 +124,9 @@ exe embedded_program # name of the executable There is a difference however. While the reference-counting is fully automatic in Python, the Python C API requires you to do it by hand. This is messy and especially hard to get right in the presence - of C++ exceptions. Fortunately Boost.Python provides the handle - and object class templates to - automate the process. + of C++ exceptions. Fortunately Boost.Python provides the handle + and object + class templates to automate the process.

    @@ -183,9 +183,9 @@ exe embedded_program # name of the executable

    Often we'd like to have a class to manipulate Python objects. But we have - already seen such a class above, and in the previous - section: the aptly named object class and its - derivatives. We've already seen that they can be constructed from a handle. + already seen such a class above, and in the previous + section: the aptly named object class and its derivatives. + We've already seen that they can be constructed from a handle. The following examples should further illustrate this fact:

    object main_module = import("__main__");
    @@ -208,7 +208,7 @@ exe embedded_program # name of the executable
             handling
           
     

    - If an exception occurs in the evaluation of the python expression, error_already_set + If an exception occurs in the evaluation of the python expression, error_already_set is thrown:

    try
    diff --git a/doc/html/tutorial/tutorial/enums.html b/doc/html/tutorial/tutorial/enums.html
    deleted file mode 100644
    index 43d3175c..00000000
    --- a/doc/html/tutorial/tutorial/enums.html
    +++ /dev/null
    @@ -1,104 +0,0 @@
    -
    -
    -
    -Enums
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Enums

    -

    - Boost.Python has a nifty facility to capture and wrap C++ enums. While Python - has no enum type, we'll often want to expose our C++ enums - to Python as an int. Boost.Python's enum facility makes - this easy while taking care of the proper conversions from Python's dynamic - typing to C++'s strong static typing (in C++, ints cannot be implicitly converted - to enums). To illustrate, given a C++ enum: -

    -
    enum choice { red, blue };
    -
    -

    - the construct: -

    -
    enum_<choice>("choice")
    -    .value("red", red)
    -    .value("blue", blue)
    -    ;
    -
    -

    - can be used to expose to Python. The new enum type is created in the current - scope(), which is usually the current module. The snippet - above creates a Python class derived from Python's int - type which is associated with the C++ type passed as its first parameter. -

    -
    - - - - - -
    [Note]Note
    -

    - what is a scope? -

    -

    - The scope is a class that has an associated global Python object which - controls the Python namespace in which new extension classes and wrapped - functions will be defined as attributes. Details can be found here. -

    -
    -

    - You can access those values in Python as -

    -
    >>> my_module.choice.red
    -my_module.choice.red
    -
    -

    - where my_module is the module where the enum is declared. You can also create - a new scope around a class: -

    -
    scope in_X = class_<X>("X")
    -                .def( ... )
    -                .def( ... )
    -            ;
    -
    -// Expose X::nested as X.nested
    -enum_<X::nested>("nested")
    -    .value("red", red)
    -    .value("blue", blue)
    -    ;
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/exception.html b/doc/html/tutorial/tutorial/exception.html index 52cc6360..1cd8cee8 100644 --- a/doc/html/tutorial/tutorial/exception.html +++ b/doc/html/tutorial/tutorial/exception.html @@ -3,14 +3,14 @@ Exception Translation - + -
    +

    PrevUpHomeNext diff --git a/doc/html/tutorial/tutorial/exposing.html b/doc/html/tutorial/tutorial/exposing.html index 75692ea4..907734d8 100644 --- a/doc/html/tutorial/tutorial/exposing.html +++ b/doc/html/tutorial/tutorial/exposing.html @@ -3,14 +3,14 @@ Exposing Classes - + -
    +

    PrevUpHomeNext @@ -296,7 +296,7 @@ return_value_policy<manage_new_object> to instruct Python to adopt the pointer to Base and hold the instance in a new Python Base object until the the Python object - is destroyed. We will see more of Boost.Python call + is destroyed. We will see more of Boost.Python call policies later.

    // Tell Python to take ownership of factory's result
    @@ -342,12 +342,12 @@
     

    Notice too that in addition to inheriting from Base, - we also multiply- inherited wrapper<Base> (See Wrapper). + we also multiply- inherited wrapper<Base> (See Wrapper). The wrapper template makes the job of wrapping classes that are meant to overridden in Python, easier.

    We've seen in the previous section how classes with pure virtual functions - are wrapped using Boost.Python's class + are wrapped using Boost.Python's class wrapper facilities. If we wish to wrap non-pure-virtual functions instead, the mechanism is a bit different.

    - Recall that in the previous + Recall that in the previous section, we wrapped a class with a pure virtual function that we then implemented in C++, or Python classes derived from it. Our base class:

    @@ -443,7 +443,7 @@ If none, then we call Base::f().

    Here is the list of predefined call policies. A complete reference detailing - these can be found here. + these can be found here.

    • @@ -276,7 +276,7 @@ Namespaces are one honking great idea -- let's do more of those!

    Because of this, when wrapping C++ code, we had to resort to manual wrapping - as outlined in the previous section, - or writing thin wrappers: + as outlined in the previous + section, or writing thin wrappers:

    // write "thin wrappers"
     int f1(int x) { return f(x); }
    @@ -459,7 +459,7 @@ Namespaces are one honking great idea -- let's do more of those!
     
    .def("wack_em", &george::wack_em, george_overloads());
     

    - See the overloads + See the overloads reference for details.

    @@ -542,13 +542,13 @@ Namespaces are one honking great idea -- let's do more of those! It is important to emphasize however that the overloaded functions must have a common sequence of initial arguments. Otherwise, our scheme above will not work. If this is not the case, we have to wrap - our functions manually. + our functions manually.

    Actually, we can mix and match manual wrapping of overloaded functions and automatic wrapping through BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS and its sister, BOOST_PYTHON_FUNCTION_OVERLOADS. Following - up on our example presented in the section on + up on our example presented in the section on overloading, since the first 4 overload functins have a common sequence of initial arguments, we can use BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS to automatically wrap the first three of the defs and diff --git a/doc/html/tutorial/tutorial/hello.html b/doc/html/tutorial/tutorial/hello.html index 3f0c51ab..2022a292 100644 --- a/doc/html/tutorial/tutorial/hello.html +++ b/doc/html/tutorial/tutorial/hello.html @@ -3,14 +3,14 @@ Building Hello World - + -
    +


    PrevUpHomeNext @@ -97,7 +97,7 @@

    Here is our minimalist Jamroot file. Simply copy the file and tweak use-project boost - to where your boost root directory is and your OK. + to where your boost root directory is and you're OK.

    The comments contained in the Jamrules file above should be sufficient to get diff --git a/doc/html/tutorial/tutorial/inheritance.html b/doc/html/tutorial/tutorial/inheritance.html deleted file mode 100644 index 8054369f..00000000 --- a/doc/html/tutorial/tutorial/inheritance.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -Inheritance - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -


    -
    -PrevUpHomeNext -
    -
    -

    -Inheritance

    -

    - In the previous examples, we dealt with classes that are not polymorphic. - This is not often the case. Much of the time, we will be wrapping polymorphic - classes and class hierarchies related by inheritance. We will often have - to write Boost.Python wrappers for classes that are derived from abstract - base classes. -

    -

    - Consider this trivial inheritance structure: -

    -
    struct Base { virtual ~Base(); };
    -struct Derived : Base {};
    -
    -

    - And a set of C++ functions operating on Base and Derived - object instances: -

    -
    void b(Base*);
    -void d(Derived*);
    -Base* factory() { return new Derived; }
    -
    -

    - We've seen how we can wrap the base class Base: -

    -
    class_<Base>("Base")
    -    /*...*/
    -    ;
    -
    -

    - Now we can inform Boost.Python of the inheritance relationship between Derived - and its base class Base. Thus: -

    -
    class_<Derived, bases<Base> >("Derived")
    -    /*...*/
    -    ;
    -
    -

    - Doing so, we get some things for free: -

    -
      -
    1. - Derived automatically inherits all of Base's Python methods (wrapped - C++ member functions) -
    2. -
    3. - If Base is polymorphic, Derived - objects which have been passed to Python via a pointer or reference to - Base can be passed where a pointer or reference to - Derived is expected. -
    4. -
    -

    - Now, we will expose the C++ free functions b and d - and factory: -

    -
    def("b", b);
    -def("d", d);
    -def("factory", factory);
    -
    -

    - Note that free function factory is being used to generate - new instances of class Derived. In such cases, we use - return_value_policy<manage_new_object> to instruct - Python to adopt the pointer to Base and hold the instance - in a new Python Base object until the the Python object - is destroyed. We will see more of Boost.Python call - policies later. -

    -
    // Tell Python to take ownership of factory's result
    -def("factory", factory,
    -    return_value_policy<manage_new_object>());
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/iterators.html b/doc/html/tutorial/tutorial/iterators.html index b3165a35..c4d9e4b0 100644 --- a/doc/html/tutorial/tutorial/iterators.html +++ b/doc/html/tutorial/tutorial/iterators.html @@ -3,14 +3,14 @@ Iterators - + -
    +

    PrevUpHomeNext diff --git a/doc/html/tutorial/tutorial/object.html b/doc/html/tutorial/tutorial/object.html index c9f4f1f5..d5f80368 100644 --- a/doc/html/tutorial/tutorial/object.html +++ b/doc/html/tutorial/tutorial/object.html @@ -3,14 +3,14 @@ Object Interface - + -
    +

    PrevUpHomeNext @@ -166,7 +166,7 @@ do that in std C++.

    diff --git a/doc/html/tutorial/tutorial/overloading.html b/doc/html/tutorial/tutorial/overloading.html deleted file mode 100644 index 51c3e3a1..00000000 --- a/doc/html/tutorial/tutorial/overloading.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -Overloading - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Overloading

    -

    - The following illustrates a scheme for manually wrapping an overloaded member - functions. Of course, the same technique can be applied to wrapping overloaded - non-member functions. -

    -

    - We have here our C++ class: -

    -
    struct X
    -{
    -    bool f(int a)
    -    {
    -        return true;
    -    }
    -
    -    bool f(int a, double b)
    -    {
    -        return true;
    -    }
    -
    -    bool f(int a, double b, char c)
    -    {
    -        return true;
    -    }
    -
    -    int f(int a, int b, int c)
    -    {
    -        return a + b + c;
    -    };
    -};
    -
    -

    - Class X has 4 overloaded functions. We will start by introducing some member - function pointer variables: -

    -
    bool    (X::*fx1)(int)              = &X::f;
    -bool    (X::*fx2)(int, double)      = &X::f;
    -bool    (X::*fx3)(int, double, char)= &X::f;
    -int     (X::*fx4)(int, int, int)    = &X::f;
    -
    -

    - With these in hand, we can proceed to define and wrap this for Python: -

    -
    .def("f", fx1)
    -.def("f", fx2)
    -.def("f", fx3)
    -.def("f", fx4)
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/tutorial/tutorial/reducing_compiling_time.html b/doc/html/tutorial/tutorial/reducing_compiling_time.html deleted file mode 100644 index b49135c6..00000000 --- a/doc/html/tutorial/tutorial/reducing_compiling_time.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -Reducing Compiling Time - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHome -
    -
    -

    -Reducing Compiling Time

    -

    - If you have ever exported a lot of classes, you know that it takes quite - a good time to compile the Boost.Python wrappers. Plus the memory consumption - can easily become too high. If this is causing you problems, you can split - the class_ definitions in multiple files: -

    -
    /* file point.cpp */
    -#include <point.h>
    -#include <boost/python.hpp>
    -
    -void export_point()
    -{
    -    class_<point>("point")...;
    -}
    -
    -/* file triangle.cpp */
    -#include <triangle.h>
    -#include <boost/python.hpp>
    -
    -void export_triangle()
    -{
    -    class_<triangle>("triangle")...;
    -}
    -
    -

    - Now you create a file main.cpp, which contains the BOOST_PYTHON_MODULE - macro, and call the various export functions inside it. -

    -
    void export_point();
    -void export_triangle();
    -
    -BOOST_PYTHON_MODULE(_geom)
    -{
    -    export_point();
    -    export_triangle();
    -}
    -
    -

    - Compiling and linking together all this files produces the same result as - the usual approach: -

    -
    #include <boost/python.hpp>
    -#include <point.h>
    -#include <triangle.h>
    -
    -BOOST_PYTHON_MODULE(_geom)
    -{
    -    class_<point>("point")...;
    -    class_<triangle>("triangle")...;
    -}
    -
    -

    - but the memory is kept under control. -

    -

    - This method is recommended too if you are developing the C++ library and - exporting it to Python at the same time: changes in a class will only demand - the compilation of a single cpp, instead of the entire wrapper code. -

    -
    - - - - - -
    [Note]Note

    - If you're exporting your classes with Pyste, - take a look at the --multiple option, that generates - the wrappers in various files as demonstrated here. -

    -
    - - - - - -
    [Note]Note

    - This method is useful too if you are getting the error message "fatal - error C1204:Compiler limit:internal structure overflow" - when compiling a large source file, as explained in the FAQ. -

    -
    - - - -
    -
    -
    -PrevUpHome -
    - - diff --git a/doc/html/tutorial/tutorial/techniques.html b/doc/html/tutorial/tutorial/techniques.html index 7ba213f1..b713e5dc 100644 --- a/doc/html/tutorial/tutorial/techniques.html +++ b/doc/html/tutorial/tutorial/techniques.html @@ -3,13 +3,13 @@ General Techniques - + -
    +

    PrevUpHome @@ -158,12 +158,12 @@ __init__.py core/ __init__.py - core.pyd + _core.pyd filters/ - \_init__.py - filters.pyd + __init__.py + _filters.pyd io/ - \_init__.py + __init__.py _io.pyd

    @@ -257,7 +257,7 @@ }

    - If we are using the technique from the previous session, Creating + If we are using the technique from the previous session, Creating Packages, we can code directly into geom/__init__.py:

    from _geom import *
    @@ -404,21 +404,10 @@
     [Note]
     Note
     
    -

    - If you're exporting your classes with Pyste, - take a look at the --multiple option, that generates - the wrappers in various files as demonstrated here. -

    -
    -
    - - - -
    [Note]Note

    This method is useful too if you are getting the error message "fatal error C1204:Compiler limit:internal structure overflow" - when compiling a large source file, as explained in the FAQ. + when compiling a large source file, as explained in the FAQ.

    diff --git a/doc/html/tutorial/tutorial/virtual_functions_with_default_implementations.html b/doc/html/tutorial/tutorial/virtual_functions_with_default_implementations.html deleted file mode 100644 index 2c92827c..00000000 --- a/doc/html/tutorial/tutorial/virtual_functions_with_default_implementations.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -Virtual Functions with Default Implementations - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    -
    -

    -Virtual Functions with Default Implementations

    -

    - We've seen in the previous section how classes with pure virtual functions - are wrapped using Boost.Python's class - wrapper facilities. If we wish to wrap non-pure-virtual - functions instead, the mechanism is a bit different. -

    -

    - Recall that in the previous - section, we wrapped a class with a pure virtual function that we then - implemented in C++, or Python classes derived from it. Our base class: -

    -
    struct Base
    -{
    -    virtual int f() = 0;
    -};
    -
    -

    - had a pure virtual function f. If, however, its member - function f was not declared as pure virtual: -

    -
    struct Base
    -{
    -    virtual ~Base() {}
    -    virtual int f() { return 0; }
    -};
    -
    -

    - We wrap it this way: -

    -
    struct BaseWrap : Base, wrapper<Base>
    -{
    -    int f()
    -    {
    -        if (override f = this->get_override("f"))
    -            return f(); // *note*
    -        return Base::f();
    -    }
    -
    -    int default_f() { return this->Base::f(); }
    -};
    -
    -

    - Notice how we implemented BaseWrap::f. Now, - we have to check if there is an override for f. - If none, then we call Base::f(). -

    - -

    - Finally, exposing: -

    -
    class_<BaseWrap, boost::noncopyable>("Base")
    -    .def("f", &Base::f, &BaseWrap::default_f)
    -    ;
    -
    -

    - Take note that we expose both &Base::f and &BaseWrap::default_f. Boost.Python needs to keep track - of 1) the dispatch function f and 2) the forwarding function - to its default implementation default_f. There's a special - def function for this purpose. -

    -

    - In Python, the results would be as expected: -

    -
    >>> base = Base()
    ->>> class Derived(Base):
    -...     def f(self):
    -...         return 42
    -...
    ->>> derived = Derived()
    -
    -

    - Calling base.f(): -

    -
    >>> base.f()
    -0
    -
    -

    - Calling derived.f(): -

    -
    >>> derived.f()
    -42
    -
    -
    - - - -
    -
    -
    -PrevUpHomeNext -
    - -